From 765946781185d6b7de7e0e4f42014d8ccf84fcbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Wed, 19 Dec 2018 10:21:46 +0100 Subject: [PATCH 001/349] Don't call runtime if pool is empty. (#1283) --- core/service/src/components.rs | 6 +++++- core/transaction-pool/graph/src/base_pool.rs | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/service/src/components.rs b/core/service/src/components.rs index d5a4c5bc8a..20f01676a3 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -196,6 +196,11 @@ impl MaintainTransactionPool for C where ) -> error::Result<()> { use runtime_primitives::transaction_validity::TransactionValidity; + // Avoid calling into runtime if there is nothing to prune from the pool anyway. + if transaction_pool.status().is_empty() { + return Ok(()) + } + let block = client.block(id)?; let tags = match block { None => return Ok(()), @@ -222,7 +227,6 @@ impl MaintainTransactionPool for C where } } - /// The super trait that combines all required traits a `Service` needs to implement. pub trait ServiceTrait: Deref> diff --git a/core/transaction-pool/graph/src/base_pool.rs b/core/transaction-pool/graph/src/base_pool.rs index e6ad3cd6dd..2e96cc75c2 100644 --- a/core/transaction-pool/graph/src/base_pool.rs +++ b/core/transaction-pool/graph/src/base_pool.rs @@ -294,6 +294,13 @@ pub struct Status { pub future: usize, } +impl Status { + /// Returns true if the are no transactions in the pool. + pub fn is_empty(&self) -> bool { + self.ready == 0 && self.future == 0 + } +} + #[cfg(test)] mod tests { use super::*; -- GitLab From 2500fa595578af4c9558614396a2048dcbc08e9e Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 19 Dec 2018 17:45:12 +0100 Subject: [PATCH 002/349] Add additional Charred Cherry properties (#1286) --- node/cli/res/charred-cherry.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/node/cli/res/charred-cherry.json b/node/cli/res/charred-cherry.json index 0321a5717a..4f9905f720 100644 --- a/node/cli/res/charred-cherry.json +++ b/node/cli/res/charred-cherry.json @@ -2,6 +2,8 @@ "name": "Charred Cherry", "id": "charred-cherry", "properties": { + "networkId": 68, + "tokenDecimals": 15, "tokenSymbol": "CHR" }, "telemetryUrl": "wss://telemetry.polkadot.io/submit/", @@ -88,4 +90,4 @@ "0x3a617574683a6c656e": "0x04000000" } } -} \ No newline at end of file +} -- GitLab From c3bad71bd9565dcb6f78160f26c1f0740d1e3cc9 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Thu, 20 Dec 2018 00:47:10 +0800 Subject: [PATCH 003/349] Avoid duplicate depencency declare via package re-export (#1287) * node/runtime: Avoid duplicate dependency via package reexport * core/test-runtime: Avoid duplicate dependency via package reexport * Update lock file --- Cargo.lock | 1 + core/test-runtime/Cargo.toml | 4 +-- core/test-runtime/wasm/Cargo.lock | 10 ++++++ core/test-runtime/wasm/Cargo.toml | 34 ++++-------------- core/test-runtime/wasm/src | 1 - core/test-runtime/wasm/src/lib.rs | 22 ++++++++++++ node/runtime/Cargo.toml | 59 +++++++++++++++++-------------- node/runtime/wasm/Cargo.lock | 17 +++++++++ node/runtime/wasm/Cargo.toml | 53 +++------------------------ node/runtime/wasm/src | 1 - node/runtime/wasm/src/lib.rs | 22 ++++++++++++ 11 files changed, 117 insertions(+), 107 deletions(-) delete mode 120000 core/test-runtime/wasm/src create mode 100644 core/test-runtime/wasm/src/lib.rs delete mode 120000 node/runtime/wasm/src create mode 100644 node/runtime/wasm/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 597721c4d0..7a1c5a65b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1866,6 +1866,7 @@ name = "node-runtime" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "node-primitives 0.1.0", "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)", diff --git a/core/test-runtime/Cargo.toml b/core/test-runtime/Cargo.toml index bc5bfe4905..d43cb5d0cf 100644 --- a/core/test-runtime/Cargo.toml +++ b/core/test-runtime/Cargo.toml @@ -11,7 +11,7 @@ serde_derive = { version = "1.0", optional = true } parity-codec = { version = "2.1", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-keyring = { path = "../keyring", optional = true } -substrate-client = { path = "../client", optional = true } +substrate-client = { path = "../client", default-features = false } substrate-primitives = { path = "../primitives", default-features = false } substrate-consensus-aura-primitives = { path = "../consensus/aura/primitives", default-features = false } sr-std = { path = "../sr-std", default-features = false } @@ -27,7 +27,7 @@ std = [ "hex-literal", "serde", "serde_derive", - "substrate-client", + "substrate-client/std", "substrate-keyring", "parity-codec/std", "sr-std/std", diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 03a7ef0a00..7f0940028b 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -1215,6 +1215,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "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-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -1222,9 +1224,17 @@ dependencies = [ "srml-support 0.1.0", "substrate-client 0.1.0", "substrate-consensus-aura-primitives 0.1.0", + "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", ] +[[package]] +name = "substrate-test-runtime-wasm" +version = "0.1.0" +dependencies = [ + "substrate-test-runtime 0.1.0", +] + [[package]] name = "substrate-trie" version = "0.4.0" diff --git a/core/test-runtime/wasm/Cargo.toml b/core/test-runtime/wasm/Cargo.toml index 0d8894e8cf..5efaa01cf8 100644 --- a/core/test-runtime/wasm/Cargo.toml +++ b/core/test-runtime/wasm/Cargo.toml @@ -1,41 +1,21 @@ [package] -name = "substrate-test-runtime" +name = "substrate-test-runtime-wasm" version = "0.1.0" authors = ["Parity Technologies "] +[lib] +name = "substrate_test_runtime" +crate-type = ["cdylib"] + [dependencies] -log = { version = "0.4", optional = true } -hex-literal = { version = "0.1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } -parity-codec-derive = { version = "2.1", default-features = false } -substrate-primitives = { path = "../../primitives", default-features = false } -substrate-consensus-aura-primitives = { path = "../../consensus/aura/primitives", default-features = false } -substrate-client = { path = "../../client", default-features = false } -sr-std = { path = "../../sr-std", default-features = false } -sr-io = { path = "../../sr-io", default-features = false } -sr-version = { path = "../../sr-version", default-features = false } -sr-primitives = { path = "../../sr-primitives", default-features = false } -srml-support = { path = "../../../srml/support", default-features = false } +substrate-test-runtime = { path = "..", default-features = false } [features] default = [] std = [ - "log", - "hex-literal", - "parity-codec/std", - "sr-std/std", - "sr-io/std", - "srml-support/std", - "sr-version/std", - "substrate-primitives/std", - "substrate-client/std", - "sr-primitives/std", - "substrate-consensus-aura-primitives/std", + "substrate-test-runtime/std", ] -[lib] -crate-type = ["cdylib"] - [profile.release] panic = "abort" lto = true diff --git a/core/test-runtime/wasm/src b/core/test-runtime/wasm/src deleted file mode 120000 index 5cd551cf26..0000000000 --- a/core/test-runtime/wasm/src +++ /dev/null @@ -1 +0,0 @@ -../src \ No newline at end of file diff --git a/core/test-runtime/wasm/src/lib.rs b/core/test-runtime/wasm/src/lib.rs new file mode 100644 index 0000000000..3238cca84f --- /dev/null +++ b/core/test-runtime/wasm/src/lib.rs @@ -0,0 +1,22 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! The Substrate test runtime reexported for WebAssembly compile. + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate substrate_test_runtime; +pub use substrate_test_runtime::*; diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index 65c2faa01f..09f533373f 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -4,35 +4,36 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -rustc-hex = "1.0" -hex-literal = "0.1.0" -serde = { version = "1.0", default-features = false } +integer-sqrt = { version = "0.1.2" } safe-mix = { version = "1.0", default-features = false } -parity-codec = "2.1" -parity-codec-derive = "2.1" -sr-std = { path = "../../core/sr-std" } -srml-support = { path = "../../srml/support" } -substrate-primitives = { path = "../../core/primitives" } +parity-codec-derive = { version = "2.1" } +parity-codec = { version = "2.1", default-features = false } +substrate-primitives = { path = "../../core/primitives", default-features = false } +substrate-client = { path = "../../core/client", default-features = false } +sr-std = { path = "../../core/sr-std", default-features = false } +srml-support = { path = "../../srml/support", default-features = false } +srml-aura = { path = "../../srml/aura", default-features = false } +srml-balances = { path = "../../srml/balances", default-features = false } +srml-consensus = { path = "../../srml/consensus", default-features = false } +srml-contract = { path = "../../srml/contract", default-features = false } +srml-council = { path = "../../srml/council", default-features = false } +srml-democracy = { path = "../../srml/democracy", default-features = false } +srml-executive = { path = "../../srml/executive", default-features = false } +sr-primitives = { path = "../../core/sr-primitives", default-features = false } +srml-session = { path = "../../srml/session", default-features = false } +srml-staking = { path = "../../srml/staking", default-features = false } +srml-system = { path = "../../srml/system", default-features = false } +srml-timestamp = { path = "../../srml/timestamp", default-features = false } +srml-treasury = { path = "../../srml/treasury", default-features = false } +srml-upgrade-key = { path = "../../srml/upgrade-key", default-features = false } +srml-grandpa = { path = "../../srml/grandpa", default-features = false } +sr-version = { path = "../../core/sr-version", default-features = false } +node-primitives = { path = "../primitives", default-features = false } substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives", default-features = false } -substrate-client = { path = "../../core/client" } -substrate-keyring = { path = "../../core/keyring" } -srml-aura = { path = "../../srml/aura" } -srml-balances = { path = "../../srml/balances" } -srml-consensus = { path = "../../srml/consensus" } -srml-contract = { path = "../../srml/contract" } -srml-council = { path = "../../srml/council" } -srml-democracy = { path = "../../srml/democracy" } -srml-executive = { path = "../../srml/executive" } -srml-grandpa = { path = "../../srml/grandpa" } -sr-primitives = { path = "../../core/sr-primitives" } -srml-session = { path = "../../srml/session" } -srml-staking = { path = "../../srml/staking" } -srml-system = { path = "../../srml/system" } -srml-timestamp = { path = "../../srml/timestamp" } -srml-treasury = { path = "../../srml/treasury" } -srml-upgrade-key = { path = "../../srml/upgrade-key" } -sr-version = { path = "../../core/sr-version" } -node-primitives = { path = "../primitives" } +rustc-hex = { version = "1.0", optional = true } +hex-literal = { version = "0.1.0", optional = true } +serde = { version = "1.0", optional = true } +substrate-keyring = { path = "../../core/keyring", optional = true } [features] default = ["std"] @@ -61,4 +62,8 @@ std = [ "safe-mix/std", "substrate-client/std", "substrate-consensus-aura-primitives/std", + "rustc-hex", + "hex-literal", + "serde", + "substrate-keyring", ] diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index bf81321064..68e7c1177b 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -499,11 +499,14 @@ dependencies = [ name = "node-runtime" version = "0.1.0" dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "node-primitives 0.1.0", "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)", + "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", "sr-version 0.1.0", @@ -524,9 +527,17 @@ dependencies = [ "srml-upgrade-key 0.1.0", "substrate-client 0.1.0", "substrate-consensus-aura-primitives 0.1.0", + "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", ] +[[package]] +name = "node-runtime-wasm" +version = "0.1.0" +dependencies = [ + "node-runtime 0.1.0", +] + [[package]] name = "nodrop" version = "0.1.13" @@ -872,6 +883,11 @@ name = "rustc-demangle" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "rustc-hex" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "rustc-hex" version = "2.0.1" @@ -2011,6 +2027,7 @@ dependencies = [ "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 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" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" diff --git a/node/runtime/wasm/Cargo.toml b/node/runtime/wasm/Cargo.toml index 400ec9d0f9..ea95bd1152 100644 --- a/node/runtime/wasm/Cargo.toml +++ b/node/runtime/wasm/Cargo.toml @@ -1,64 +1,19 @@ [package] -name = "node-runtime" +name = "node-runtime-wasm" version = "0.1.0" authors = ["Parity Technologies "] [lib] +name = "node_runtime" crate-type = ["cdylib"] [dependencies] -integer-sqrt = { version = "0.1.2" } -safe-mix = { version = "1.0", default-features = false } -parity-codec-derive = { version = "2.1" } -parity-codec = { version = "2.1", default-features = false } -substrate-primitives = { path = "../../../core/primitives", default-features = false } -substrate-client = { path = "../../../core/client", default-features = false } -sr-std = { path = "../../../core/sr-std", default-features = false } -srml-support = { path = "../../../srml/support", default-features = false } -srml-aura = { path = "../../../srml/aura", default-features = false } -srml-balances = { path = "../../../srml/balances", default-features = false } -srml-consensus = { path = "../../../srml/consensus", default-features = false } -srml-contract = { path = "../../../srml/contract", default-features = false } -srml-council = { path = "../../../srml/council", default-features = false } -srml-democracy = { path = "../../../srml/democracy", default-features = false } -srml-executive = { path = "../../../srml/executive", default-features = false } -sr-primitives = { path = "../../../core/sr-primitives", default-features = false } -srml-session = { path = "../../../srml/session", default-features = false } -srml-staking = { path = "../../../srml/staking", default-features = false } -srml-system = { path = "../../../srml/system", default-features = false } -srml-timestamp = { path = "../../../srml/timestamp", default-features = false } -srml-treasury = { path = "../../../srml/treasury", default-features = false } -srml-upgrade-key = { path = "../../../srml/upgrade-key", default-features = false } -srml-grandpa = { path = "../../../srml/grandpa", default-features = false } -sr-version = { path = "../../../core/sr-version", default-features = false } -node-primitives = { path = "../../primitives", default-features = false } -substrate-consensus-aura-primitives = { path = "../../../core/consensus/aura/primitives", default-features = false } +node-runtime = { path = "..", default-features = false } [features] default = [] std = [ - "safe-mix/std", - "parity-codec/std", - "substrate-primitives/std", - "substrate-client/std", - "sr-std/std", - "sr-primitives/std", - "srml-support/std", - "srml-balances/std", - "srml-consensus/std", - "srml-contract/std", - "srml-council/std", - "srml-democracy/std", - "srml-executive/std", - "srml-session/std", - "srml-staking/std", - "srml-system/std", - "srml-timestamp/std", - "srml-treasury/std", - "srml-upgrade-key/std", - "srml-grandpa/std", - "sr-version/std", - "node-primitives/std", + "node-runtime/std", ] [profile.release] diff --git a/node/runtime/wasm/src b/node/runtime/wasm/src deleted file mode 120000 index 5cd551cf26..0000000000 --- a/node/runtime/wasm/src +++ /dev/null @@ -1 +0,0 @@ -../src \ No newline at end of file diff --git a/node/runtime/wasm/src/lib.rs b/node/runtime/wasm/src/lib.rs new file mode 100644 index 0000000000..05d27009c7 --- /dev/null +++ b/node/runtime/wasm/src/lib.rs @@ -0,0 +1,22 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! The Substrate runtime reexported for WebAssembly compile. + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate node_runtime; +pub use node_runtime::*; -- GitLab From bacc1df92abd0b412d7947c68dafe95a3692ab42 Mon Sep 17 00:00:00 2001 From: cheme Date: Wed, 19 Dec 2018 17:51:46 +0100 Subject: [PATCH 004/349] Reformat types string for decl_storage (#1298) * Clean space from types when converting to string * Missing cases. * Add unit test for complex type, complete clean fn. --- .../procedural/src/storage/transformation.rs | 8 +++--- srml/support/procedural/tools/src/lib.rs | 19 ++++++++++++++ srml/support/src/storage/generator.rs | 25 ++++++++++++++++++- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/srml/support/procedural/src/storage/transformation.rs b/srml/support/procedural/src/storage/transformation.rs index 8887a76f70..67d0911c8a 100644 --- a/srml/support/procedural/src/storage/transformation.rs +++ b/srml/support/procedural/src/storage/transformation.rs @@ -19,7 +19,7 @@ // end::description[] use srml_support_procedural_tools::syn_ext as ext; -use srml_support_procedural_tools::{generate_crate_access, generate_hidden_includes}; +use srml_support_procedural_tools::{generate_crate_access, generate_hidden_includes, clean_type_string}; use proc_macro::TokenStream; use proc_macro2::TokenStream as TokenStream2; @@ -577,7 +577,7 @@ fn store_functions_to_metadata ( let is_option = extracted_opt.is_some(); let typ = extracted_opt.unwrap_or(quote!( #gettype )); let stype = if is_simple { - let styp = typ.to_string(); + let styp = clean_type_string(&typ.to_string()); quote!{ #scrate::storage::generator::StorageFunctionType::Plain( #scrate::storage::generator::DecodeDifferent::Encode(#styp), @@ -585,8 +585,8 @@ fn store_functions_to_metadata ( } } else { let kty = stk.expect("is not simple; qed"); - let kty = quote!(#kty).to_string(); - let styp = typ.to_string(); + let kty = clean_type_string("e!(#kty).to_string()); + let styp = clean_type_string(&typ.to_string()); quote!{ #scrate::storage::generator::StorageFunctionType::Map { key: #scrate::storage::generator::DecodeDifferent::Encode(#kty), diff --git a/srml/support/procedural/tools/src/lib.rs b/srml/support/procedural/tools/src/lib.rs index d37831fb1f..1dae39fce4 100644 --- a/srml/support/procedural/tools/src/lib.rs +++ b/srml/support/procedural/tools/src/lib.rs @@ -92,3 +92,22 @@ pub fn generate_hidden_includes(unique_id: &str, def_crate: &str, crate_id: &str ) }.into() } + +// fn to remove white spaces arount string types +// (basically whitespaces arount tokens) +pub fn clean_type_string(input: &str) -> String { + input + .replace(" ::", "::") + .replace(":: ", "::") + .replace(" ,", ",") + .replace(" ;", ";") + .replace(" [", "[") + .replace("[ ", "[") + .replace(" ]", "]") + .replace(" (", "(") + .replace("( ", "(") + .replace(" )", ")") + .replace(" <", "<") + .replace("< ", "<") + .replace(" >", ">") +} diff --git a/srml/support/src/storage/generator.rs b/srml/support/src/storage/generator.rs index a3a9395b06..d33ecd43aa 100644 --- a/srml/support/src/storage/generator.rs +++ b/srml/support/src/storage/generator.rs @@ -633,6 +633,10 @@ mod tests { GETMAPU32MYDEF get(map_u32_getter_mydef): map u32 => String = "map".into(); pub PUBGETMAPU32MYDEF get(pub_map_u32_getter_mydef): map u32 => String = "pubmap".into(); + + COMPLEX_TYPE1: ::std::vec::Vec<::Origin>; + COMPLEX_TYPE2: (Vec)>>, u32); + COMPLEX_TYPE3: ([u32;25]); } add_extra_genesis { build(|_, _, _| {}); @@ -677,7 +681,7 @@ mod tests { StorageFunctionMetadata { name: DecodeDifferent::Encode("GETU32"), modifier: StorageFunctionModifier::Default, - ty: StorageFunctionType::Plain(DecodeDifferent::Encode("T :: Origin")), + ty: StorageFunctionType::Plain(DecodeDifferent::Encode("T::Origin")), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -796,6 +800,24 @@ mod tests { }, documentation: DecodeDifferent::Encode(&[]), }, + StorageFunctionMetadata { + name: DecodeDifferent::Encode("COMPLEX_TYPE1"), + modifier: StorageFunctionModifier::Default, + ty: StorageFunctionType::Plain(DecodeDifferent::Encode("::std::vec::Vec<::Origin>")), + documentation: DecodeDifferent::Encode(&[]), + }, + StorageFunctionMetadata { + name: DecodeDifferent::Encode("COMPLEX_TYPE2"), + modifier: StorageFunctionModifier::Default, + ty: StorageFunctionType::Plain(DecodeDifferent::Encode("(Vec)>>, u32)")), + documentation: DecodeDifferent::Encode(&[]), + }, + StorageFunctionMetadata { + name: DecodeDifferent::Encode("COMPLEX_TYPE3"), + modifier: StorageFunctionModifier::Default, + ty: StorageFunctionType::Plain(DecodeDifferent::Encode("([u32; 25])")), + documentation: DecodeDifferent::Encode(&[]), + }, ]) }; @@ -816,6 +838,7 @@ mod tests { assert_eq!(config.pub_u32_getter_with_config_mydef, 1u32); assert_eq!(config.pub_u32_getter_with_config_mydef_opt, 100u32); } + } #[cfg(test)] -- GitLab From 2939dc80ff6d339b915d66dcbf1d5d24b7dc1d8b Mon Sep 17 00:00:00 2001 From: Mohanson Date: Thu, 20 Dec 2018 20:14:19 +0800 Subject: [PATCH 005/349] Fix usage error in README (#1291) * Fix usage error in README * Flow the advice --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index e35c6f2ab3..4525a86b03 100644 --- a/README.adoc +++ b/README.adoc @@ -151,7 +151,7 @@ Now with this new chainspec file, you can build a "raw" chain definition for you [source, shell] ---- -substrate build-spec --chain ~/chainspec.json --raw > ~/mychain.json +substrate --chain ~/chainspec.json build-spec --raw > ~/mychain.json ---- This can be fed into Substrate: -- GitLab From fe193bd2558012e397f38703a32b81e23354831d Mon Sep 17 00:00:00 2001 From: cheme Date: Thu, 20 Dec 2018 14:31:03 +0100 Subject: [PATCH 006/349] Include default values in storage metadata (#1264) * Add a 'default' field to metadata. It contains code to generate the default value. * wasm update * Make 'default' field an `Option` * Boxed fn is not static, that won't be fine * static fn won't do it to as it cannot get T param, will try fat trait * Fat pointer over phantom data compatible with static instantiation * DecodeDifferent is cool, using it for decoding. * using once cell to do what would require copying lazy_static internals. * Remove cache when no_std (non compatible deps) * wasm bins update * Fuse tooling struct and enum derive. --- Cargo.lock | 7 ++ core/test-runtime/wasm/Cargo.lock | 7 ++ .../substrate_test_runtime.compact.wasm | Bin 45594 -> 222552 bytes node/runtime/wasm/Cargo.lock | 7 ++ .../release/node_runtime.compact.wasm | Bin 661044 -> 988937 bytes srml/metadata/src/lib.rs | 54 +++++++++- srml/support/Cargo.toml | 2 + srml/support/procedural/src/storage/mod.rs | 26 ++--- .../procedural/src/storage/transformation.rs | 64 +++++++++-- .../procedural/tools/derive/src/lib.rs | 101 +++++++++++------- srml/support/procedural/tools/src/syn_ext.rs | 2 +- srml/support/src/lib.rs | 5 + srml/support/src/metadata.rs | 28 +++-- srml/support/src/storage/generator.rs | 80 +++++++++++++- srml/system/src/lib.rs | 2 +- 15 files changed, 300 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7a1c5a65b9..1e201f4ee5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1961,6 +1961,11 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "once_cell" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "opaque-debug" version = "0.1.1" @@ -3025,6 +3030,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4814,6 +4820,7 @@ dependencies = [ "checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" +"checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 7f0940028b..8791d2c1ff 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -508,6 +508,11 @@ dependencies = [ "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "once_cell" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "openssl" version = "0.10.15" @@ -1009,6 +1014,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (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)", @@ -1666,6 +1672,7 @@ dependencies = [ "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "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.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 9ed2d76370c16e6e2bed6555008d25a6bc2b666a..aa06727e071f0aaa33c3c53fbf71a13e70f27227 100644 GIT binary patch literal 222552 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

BCp6IxuC$Vs_A&EBM6xOp{ETp3pdAmkjytRL_)u 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

  • t?O zRW7hc(r{Cfv3q$mgrtXq^??AZbPbj06z}_O9K_O65^QT)+Y((}$HI7kmcqfR`fz1A zD_jj_F_ttbkHvzs%IUpssQ`jJpH z6b|8;)F%Sv;c~F0zRgu^dv&$8?ZooLwl8V6jes6s%Z<%4Q1x-d^P)Vtt*jnn)>ek8 zwucBCj&P!?B3i|Ie0^D{fnmbHArTlylFD?8A>-wwJ?ZQg?bd>!V5lq@E{mfIW#I;l zvtUJ%Qra{c=^U8HAIANF);Q$xdfJT!Svsz4z%=sSafm)0Y6Jy=y0#|PHyc(k#GowE zKs1&J)K`)XAQ>qdm2?T+y%W7eqBOk*I+|3a^p1`y>SMt~w7x!A2?yc{Bq8;+Mk1PN zPK5XDQ{gz4SH>F38WQ!9`brs?7`sz!%&r{f(_TmOV10Q-up$zON1|m_I96t;HLjQ_ zQ6Jd@KEMB{#@5vR1o}MNKD#NjORe4#Ml}AXNnkE{{3~=dn2npOf5+5E|N49iE0*Q*Ma#Bzd z^%Zy|7)6oJy>u}krPAYq&@V2DB+T8I!&HW3(kNra-ntkd7HM)t$wsIMF-4EnM}wH9 z6uEMwaG$6Xt&B3SiI>M>SoKi3t-IMR?h`Sp5~PhVk*thYhQpPW4lz;!%ys72M{4`rN3&9e7f67lZv~9H zOWpk zkG~!xy(iWX$M2Dt1z+J+Li5RxzCwdkIQZkW89zL-E?R8M7h*edDqGgd_AW|7-%91t3bKKI5 zDaOAcWp)%)+v!|=%D2pzTSm+2K*!|DXj7~%xjfz^BT=9VlN$|38bYD+vH;GV^RZ@6 zFwMwXx6OryHCz#*X*2c`D+#x>2@GVvV(}BWbXd5QWME{yYWZ!FoX zLIq-xhDb0G4@9cM3HB+F@0=IVd=j4q_7lr`qOv|#SsxF?%7T$_B+PJ;SJu-#8DBmv z#hJ?~TEguNh?K>Qd@9@x#S@IR6@l_l1h>45AvcG+ss6HL{6AwP%R+edRiUzqIKwdi z?}L#{6MD|x2jNd*+=wAmMM4$982e%*Ftc}tXPLD$e0dGpXHR^wjRCYgP+1v{#$#0t zWoToDfyo>>^D5E+==#|@H;G6^w4B)xMk*eu525imHv?s5xtSe8g?KDcR?qTAuptzz ziq(@~Za!s=QE7H*3t_fnRM^{=@L=st3U!hzB}sj>8>nv}3m&(mvNBc{uE2cvDU~vM zReIq|76^lt`q4ymB)Y>yn#RcTFAI|GT~X0c6^Vvee(75*)tbyvWj8`uZn!_a#OTZ} z#ldkR;<6wqkr}byGFu`5+E8B=NHmbh9W<_^jyj})HBYj&iwb42vI;Cqg5f?Kj>l3U z@-+<^lb&EW#+Df(=B&%HdMA_$1>#|r3@d`=714$YJh-e94kHG-@SIvdHpaYM$0v!} zfNIu)8)<)jKe;P{bTBA^izK^INNW^if(g8`XuJaVg~$>@k@4Mj&ol?BtDPkC>gs%p zm9kiEr0$@fyiGp)qUTXig1AWLzp#!KxMGJKHgx9Yg_t;@;Hcifg}ED#M6v8@k<647#roTWdfuqZd_R|MDA zk-VAI)X*U?)=F4&#`TGY*2Vp5QT zP|ok%d%tHtr$>-~P-%O*`@4Pa>zs4XJx|mfaG#S#h?;=VbhLMXKOs72e8eX^`xtb# zclO@2u_6EK0IJS&i3}|xs@4fAo$646G`1yHYfl!kr>@-lfHDC#)1iT^E!?>~WM3fo z0>Kvu9uUB|2!%X+HVZRsKS>12%fmvQf9u8GeOF|g7J>?N>(I0o3QAo}^)6DWUqp^X zL0ub8;(c{RJDDtnrW?Cg1W=Uao|A^K0)K!&1pbN>y0*jO?*9OO73%yG1S6`yeVF5` zAU@lgAn`1=A#j3NbuUDEYLmvoJrechSib-k!~P(2Ftxhe4$&dhEbiDkzsU8H{s5J+pLiaV ztaN^?OoQzoOXY`y09u}u zX|1GpoVE|f)bU_gWTp$c~a6~qO z=+fOpLt2O>p=oFTfGGj0?*gb;P+TI+z}*!{Xh77`UP(kwkS0C`Y5b4)<6%^&p6W0d zc*ma0koSfMJ0l%ax^RU3vSsxq+#_)5Xph0VQ6%AwDO@LV{D_N*d8D=7^Ia)iXQs4h zE`IXb(K0qAM{{mX`BGdcV|$Ed4YnezrBtx?Tr`song9n~3u-WX`>-aizg`EEYCDBO zJH}RVp(`!h9S1tMk4=ViHX0zn#<{tH7}mN9AZz(>3a^ii4F2YLv7aFRK7EuOwP-3_O(9ABC%ZQqkUiR4V@p0YG zh8S!!h-u8$NPVLtGEbaG7|kwNT-5@9dAB(hh7RN!tX=$BtPDTHEKI#LOI@G%R)ePc zX~U%?3K|YDW@wl4Ck5{>%of{B8+q-}Rf9q>hDAw?e@;%QH%k20{d~&0T~S+QB(a2r#ZrMO<#zJr%Qz z_-!8shbt%deqhR}SOWa3IuE%&c=###{jBe1J#qPHQB2jprv25ZWy(_CPqSXs8}!jR zCxa~SQi}9Zo`*B2u@ z37M`0$g)oC(LLWIbpdt;JO<6d{4^oKOm-GN=a|doD z4Uv>TItbW0dC2=M((d4n(`8tKN>*jH3cJ3L-O#KRhUtcK#XBO)P&p7ezp4YU#NXs|6?Z(FCqeMFQ#zzTVc}0&L5Q71h8vJ|3 z3yJSFK%=vt1JIlS+CvG5ll(wHM*MVWd>JDra@`1zwSJnQi$P&ypH+h5a5p}@noCfc zLf==@A|JXJGH%EM-VI6>CCbJjyi-_y-yz3FKXTAeBykTa>a>vfw1Wmvz&*Qai<{+4z72{LY> z1Jt3JkH5LN04-gB_F7_Y!m~SciZI7;k}yzN%bjv}bO^}e1@+mRk0K2*$Q?M3@stT&Jj471RSrbAbOl-? z#)wt;P8cSAk`tf@v?Dh7`E-m}An6fnH+q~Z`~5VIJUF212Xwb|xHUyVh)f#MEygj^ z!G|PE;~1`R!~;uFOQDt9Z(!j*?BeZ^^;7)c2m;ZZY*kQAQZnG+0fdxf2<3U`_vKuw zNr@H;&6Uj8H`-#oGA({3T2{@?X}GaLCK6dVZ+|40qkfLbeSpF_8)Sauu-AOQ`s($C z?O6Wp_Fb2Qo5-q+@QglGQ$AdE>g`pO@PjZ2;&?#l4@a6=MMFfFkCIi0NSgU9kq}XW zIRLlvJaGco>C5#(9@Ip%gdUrqIGn^c5chP^{YPww2K85f-BoLlHF}E$i%FEl@$J-lk6IX>R4dy8P&J*0ub2O+d@ODFO zI_tbQ);zanO$-HL9UBWK1E`KQGpypywGtUn7$z~zZO z=t)ksKvQh}So-ko_`6F}^`RNcy*raL`C!LTA^6f8+i9Mb;+zQ%gL)daN)aoiXga3R(Pt^;_jW15ETnnxO{(X7pfI`c-B zr|6y>0s;b}=mxPtW22d^r9un2jFnzNDzrvC0#{yxBFfk6Ij>6F%8xKM{Vuc~h^4#w1?Xd~d z+`tWC7Jf#I7TkNl#SP1q;jGH(N(xucO`IkKsQF)XefRbIhxUR$uSQi)*UQd}MK*zM=hAk9yL#%@@ z-Ltp6gzLkX3sIIuq?*X00gT)z%L7Y5Q_HX-k&~nqOInKWqk~mNB7tPwHtc>0&{3sb@G@+BUIQP+34BR3CmAmKeJTmAUyqFCKX+%_N6!yu6YoM%41u*8QZyMazrGw0l_U1tYb zl!W3-h_R46Gy7e#4!+SxZ(vTesT+BPM+kc8zURrAIFhCyloyGxN$!(n#NN1r^CJ=w zC(Nghy<0pkILu4s26h^J*Ss1%XYg+sGg9v~a~t5H*4cS_FMO=8Fy!AL%F@Af|JQ zEk3-eJznABT_kvVh8_-&>>^sLJiEN&%m^|>n=jg+MGqVYjnAY-91cnge${=04~%yn(X*( z^6YTkQs3Q`uL>N%@M<9+dlvQZeQgbP>U>;+{vEChFCi9-{4_Y4^>VpQKk^_$m2uAD zl_G%zx>0%i?_ttKjzkmW^a@f1SP`V7DxD#1RTJ)N+VJ!(V3U!b4P36e=0vpTjQ-IH z2%g~ABrSSC56FLIFS&E(+Bg@`$|fE;iGl$U0phx7&jmBfF*inaPIAo7T{mCac(n2O z3ku@EWsd^uXmrPARuQL?j8a3{#oEkM>~h$b%_bKWyxC@cUFD76jLlJ-6>N-|xx1yh)cKPu>s+>E&q zed&PvSs{@hrK*YN4XTo#ABQPbvo+n|(BXL=Zb> z3w#uXT!M3aEK)WIhRlQIyrq;6t6esO%ShVg;^^xZtV1rg;s&*L56e}l)qwU2BANR* z($hhrliM9*nvRo^YR4g^%)rS)2VyhR)LSh&ys^l`@`mrn=J1_^L7I;7%B&kNjXlC$ zj~jRBxj{a_h|aCGnbGW=?sVCvg{E0(hRDuIPJ^D03XRzAh^S)CKN!7sm75L^U+H|{ zycWJq_6MAkNq(0Xeo$)XEFU^1@>WNJ0UhTtYCoh1zXuXaV2)nLtg-spaaNzkOIP1V zBtj03g9HTd`U}~E-rT9BMyD7BNh%&mslb+|o z=ba%|0$Ybe5TigENQWSW0&7^>(vBTlUTbnb5ZB8{s0EFaCx(-`FapQIJ$bO^gqaK0 zCxkdqz=xC}NJWN4n9KZ-53(zSdr?X2j5V^&fgR{pzO?emKP)tby%~?)9%p?%fO!L5 z9@JKGqZgYx8m8_O4{N)4z}-*Vj=~)OL>H}U5(EP`1x$N;s0eCYrWWq@LZ@(NZD znS>Axl8WhwZXTRQ+%T#Pt5jNzhc}%IO4~I)oI&oAY{w~zlthK*XjmI;$F_=|$xFpS z1RuT_C#@4gw;mCki#@EheM}-avj``AV5NnXR{pM8SYmpUi0sHj!I4u-ymaM3wew4N zs6wHn@NmbX@=Y`#rHtt13<_BUl@BG~u-MeytYz3lm}cnW-#ZA2Lq;d27jfYLt#^{} zBO)R7;gJ&#;(G9S=88tcdMA}F794Xm)l^7{n>G2oa;<9O_ylJJTPsc}AMBKmF-nc? zA+iqoL%gOFj$}Bx_Mx()T!D0&JDib&50{*TTs9~sCAG5IVY@N%;TWS7CdgXKD1(Tc zlZ?;vGNRBWtwzJsYef$jZRaFjy3J>A}W`GELQ6D#czW3>7iI2 zU{*tQ@8iG=dCG&8W)R>jeK5LCB=4vgPOfXW%3$CS;mM7FVt|pDiaTvq0_;mr&TezT zNp-}fBp{ej{G`QwwB2MeSbLkQ)gI5VJ%W zCu!pdx)n9G#zjqs!y|i`uY&3`JjM|ZFf#Ug{K>`Wvv{thV?sSdqpQSEn@rD6fkccr zC@g5vaHgSHcH2X7EFvF{x!AF|ztvKkaRi#X2_?uGGYoLO;9}Uv&V(aWWUg^b0d*w3 z0vf_Oo2(*!E~#Euo8T0RhH(;*+}kB)&k+s$5-`*BqK_p~w}aofprOYj+IiWYm5AO6 z1%T%uY>7835eW_&IoC+o^Owc~>MRY(EfA*rQI_>^j}<4Vg?n#-Of3ybjKFSkBa=uC zJnxQWIk6Z_q>^fg+khW?q^3$TWYgAY=7E`kH#p)KAT`Pff>L7ZcwH|}2hxmNj2RGD zgE&SCFB~~pB^SY>0nGqoXoF);0y^+%j1k@>&SE7nGv<{eh;Y|N-{-~Xj8=uz-SsTv zzAj!WTmy*wT|A!Z0yVYmm~`?UoP+F<%+Go{EMMg*IGFMXdg*g=b9_P^dOW2w#xd{t z#EeRTL8^XUm3#;2_(^y`${wUZlEiW{HygC~p`+j|wQDuMG`ook9=Gp=+8TkNg}vGu zNf!sNB`P(YGy>s5az|*pVaGKy>L)}ecwXT;=yhSEpo(=?I6iO_{C=1ph!B_M=sH5u zm!oFnOk$O_*QY!sCTm~Y0m_~r^u?ONCDX`Bj>H7gl;kHBW~>doHH{t~Edi2D9+8Ty zC!x%;LU!+#jvI%wIwY#s#06og@ZObpppU%OiT)Uxggu#L(i8Djt;N_cNPg6$@R)Fm(l< zww{xAijx^>)+hSMHF$L55nEx)L{zyXc`gu8ePZjxV7+`$Zs;-C*$=GC)*QXpa`YVF4vlw9lwq_=xKcJ)Q9WSm zWp@lOvvN%&;4kW-RL4S$LoHsKlB{TDbfQ`YPN>{RNVAWk4_dV7B%6nDw-^!)Z1ky= zHHf*<^dbkLN%WdLtB|tvH|i4i5`$8GGty>o$^XsPlZgdM-nB70CnofYHOWf$@nj+; zDmUzm`@aO4&ES5=#xACfYnH*Th_vxIox3QP;U*GgCp{SKTCPo=ibY7ca_1;JBSOY8 z`daP$x835(b+`b!?u>v}+$?$1 zFFlGo!4Ahq#wI^aN$`bLsm~2NAeolorzMScM?bZ^Q#6X-9I1H7!GYGOmki8ZCA7&K zy5MHBL~4LfF6>WqVVVYpU|SzcglQnL-V!lG{xyOmIb-C3MheRcmUh#XC|j%m;~%l~ z6sdBeJnV@l*$lS0_L^%3z-^@`p?uUXBVmqp3+poXV>1A|tC|7y3BTo(iUz%6kc3|A zLNw)NIeQz}0wGMBD~;SBvi1Xs6stES?=-0SXA7&+%j@y(V?r z$jBF<<0ouST;S!((dd5a2aBn&-XbDcD3J>uJJjBC#A8KoQHh9li@Jz-tS!Q(hw8jX zFs$p4!pz(st;TJ|Q{b_B^Jnc$5{S<=>K!!ena+bJ$H2N{U%C?kIRLnF4bnb0Vk(#{ zp$Aw)z&~B1nH;JfyItu3AoLomsky(o9m|cgAlBQ`*lGQ3l5zG_Ehew*@;s6?jE$WSxIXN z&A^*W*y~Yklw$?oF3u(qKG2uv`-^oap=o3PfI>L6;JJh?01GY_D=v_xg;3+&Wd`GU z^4RQgTXD4+PoQn9cq5aZn>e$uM`)OMvd8IYg>=-?iZN=hl$1av{MTHR#oTSg`GW19 zf#8kg<@%RmVJYw?^a^eiJrc~jIaqzD#!t+RpKpMWR=&K*g6U*)WZWm?0L6dIjeFq; zOjc*fz%smUw5j-@=iog)<>>lQ`I!WXRSUeAc9th##v^ZMU%xOa&SWYmqU=NKCr;JN z*TqH0JQrblyOBBa+k?xvYm#vY`(rpDhd5`(R4XM3uzO3#8R%x_Rkjmt0eR!y9`2SnfWU~; zWEGT&P}N{{oCO>x5F{hD-RAWPv09&&`9m3A*aF4|Fs03K-0h)WV=rd_wXFj;ZBH zWq#TlOI8)hQ9(cs^{cs~a(P5?^aPoruDS=y_eeJj^ed1!ez7UCFt80W;(*+s+6wC{ zt$cX_2IVIE48@hRTrw^RpIc>hrC`Abhb(yo%z&6S@qX=7vX2^;5Q)vYzHp~K8p%Hy zhf5(|RtB4exI)c6X&RfNiyQ=|)PdwkBAy!yBma}^O7x@4IH3KhC!T#xf+xpNNDeNX z9-w)0jGtGn7BaIH7Fk;P@*=B~5OS|wmr2|a=RgFzmyXY)k^IxELs}6DuSPP$aR#n& zjiS)YK`=#{nODFhDVa0LC(uuwB%zv%fB_GdjsyTSGp~T5E)h3;%I}baKX!6-EOb&V zg(4(P06s4QLv)hG0KY5BoZvN!p2pKmiUy?d71dD3a4lDTgq=ol39;Lfs1+Zwkir|1 zr$|l_`KEe}F`S4)p%qIk^VJ#(&r5v`n{k}77StLrqIE1Fp+Io{*_gd{1bSJ5K*t|x0aGTse0AkCKvAS$0h$rV zi{dclzRMZs0hA}Mvy?dXq2icV0TW6!36y)Jr66XWV zgd!KxV(D-QAh;_3WGFakB`7SVULKL;oVI+wd?11*g?<5s!<7x8GV+Qd&O?ub|4@qF zFC9jpo0(U@gnb-W$%us+E@dz<9Q}OxU_#T*{?P*>=~qf-PsxPtNKn-(eAuIr`~$!s z$1F~XLr9uR%n}JM3~1?uOZ{Ac1aXUIBw{v*17=B`0Bz)N16Mq6*LoV05!UzXFC-)f{x7a)cC%(Rul5 z>EcrQg`d0p7C%>#%HW`tt#Y|C1*Oa@0LT=`)e5^Y;yl%|VYmfO+{@8LTKV!KgTO%w zPcx!ZaV11ZGB8$I3Vu%(Ie7()XvJX&cunR6xk$K2rJ0z2>er>9NQslC*c!2DqEHC9 zm=t^Q(uq(dE^gV-NVJY^n-UZFM^mjAuD(oM6cF-{DUfjj`%E9<2VRm!ti(z`Hd<-Y zn2B#8+&@7vBWE8#m#-qb0IACh1BkF%fLcBWQchI=3evJK*E{{f&rxlFilisU!91s; z{R-np6p-3#ObfEzni-4fheB9^ZXoub8@Ni;$FtsjUaLB3fzW{C_W zQFts#nA%NN2C9Rn7=-{8hZ{oVV}}r1H<75_I(kZ)tN_%cu{Tj++GmJR29J{7BrriG z4JT?2l)#)7KsF}N4`iIw0Yf!ez~CV1G(<41CofG_25KV53{bR2)L*4sV@@Ix`~{km zH$cV4Wa6%QGtx2dI`z!r_-k$aYAlOk3ArSN!O+>`CXe+-#1qNxuNRIM3ud6qBUti)C*!E76@Ts>QI{1>*pven+qaM2oQq5n=}Bt(JM1k z11XqnasV`z0fjrGh82+llrm}LW)OvDbJVn0unbcGP0j;ktB5+)6r#hNl1X$=y{@!i z%o6o!c2R;M%{vJ=Ts(dgY6<(Ob_p=D?szBn$R2{$k-$i-xXliw$$}}&f_W$~VRM{| zgs0%!O?+vKVKCB_VH))22f)O%4zrNtoPLJN80k?@rD`JKUe$I=5TgD-P9+@$W|m1B z*mtIZ#(dp?CpH7qjB`OFfWWl8QFkgIIa)XpuuG#>@WVV7DWx73Ef%bv-vww8fTNuX zgiMqq;v5tlbTvSY0P8xOb$#$jB8&M>3KU4{5}QD@G!Lw1*0^B2S^7u&5(J`)zecc1 zYTf75!J>q-u(tA{EX7*jQS?b=!4eLO?jhQu`;baKcx*@|%T|j$vU2}8vpU2PLJQG*m5jRIJn^<)Ij9xu1(942%i(y1+RUwTRMb9oB-@zd}H`z zyn7^WoH+DI(lTmV=#r>#i0bM3;eF*vw+ zVSx8mLKq+J70vZI-j=qO9ZzEPA$=0ahv++{8dANR#{^p~tZ)``#}{6jIGBeCBQY|k zC7|PiZ7g=LAV8BMTOL|JQv04@v<<7ESzjUv(}pQ$2^g2_OVdrrVofbJ1(FmnQB>L-hk;9#G z>7y1BQQT;NbBPO)d{#B=6>a;L@wwf@0be+Zd0^bdzk`JA#t2z*Z0CN`)=;K$p(L6dL5F(^SPr-0NNwpqK^+PXo-hJ_vBHb)dRseHiaNbET^ zvK?nR6+Yd#!$mv7Uhyi-g z^}$YaIKtWqxbR*AT7s?SagDt<<2a!|EWva0Wh4~rnQ3G5UBe_b9& z8)g5L@jEMsP*7BSqIm66t$U;j6``$8wm6g zaE<4%f>WPl+%0!cGjud4gv$7&^d)^c6||b*kBQPP^aum|NWB8rb`P{GT6B0^xJ~pR zLXwzsk6Z_6YO3tCW~q-2w{f(%xX+U-k>s>wyhKrcf^}$Yp;=?Dvebd_aNg?SVQFg~ ztV!Rszon7Pbp;M_$th z!U?+4wodv2BwbOtJ&>2k<+tX zR@>kkBb7y?bVKgp%SPEGakw?$Z5-W-M}8B&%^6sDc-x919A8ij%*Ik0tPi%k*9a4+ zQxhuH5u5`%KIyPsx4kSq3J^%T3tXhQ^oa^sq>6bZR+cZjT^5WbeK3@uauPN4t<~)W zV7tpgDK_#LMP&UCrEZhGI;=nJGHoR$K0FmfMaS(AZ-J98M|ZhX3gnOxq=#P{nt?KJ z_xj`Rq4kf6a^T>Gt1o8 z?_+0HA1UdM{E!+M#1o4rgPDh=sx{_eeDSn5lbr>%sY9GvDaA(|J-O6R*n=qLN`EQa z1C>)K3P6cnC>IN@q1^RD2ZY0RdLSH*QxO>$4@r_Zn2TN5pB*(mn{->dEnKkE1wMw{ z_~AaifLsAqxLm&rEhKfiAa@k`KS&`;+EuRWb|(zZuBhv5&0-cl`A#m$9?9cI_81hE zO}bd4kC`}&HV*Gnypze*MIGrD&aTmiO>oe}*#SBBh-#5al)(VYO%rF==s|wc*$cG8 zNTQVFAsj4+37)ivX`IEin5=USig@lrW4*K%cnS@7p9x3izl)9udx7sR; zvukuQ3ugllS9r=?B!%xIUR&C>e0DVfZz<09i3TJ4Z-0>D*^Lz6#Mu>9gv~x?;w)So z_pSotH6F>4#O}&@VfpMD^O)Z6I7BGQaR{b-J^Dj)P_N&^3@(ViGt3558FEM*jFPg6 zQERNzER3RbZGiMhg(YghmQlkc7d-wl&B7>rHHj?62;orjTvy|+Pwo|k>*j7B&EkT% zZOD;tSBl4M zXgQSSv&To-SyX`|Uxc5zM_3WQ9%WXEwY!)_6%NVs5T8P)pdua$eZAL_&5N_*rEMu$ zQ2dbMS&(>|ATwL#+zC3FNf!wjEC?#Ys{``G!KcNg)|tul;q9dq+reOuO_0JpxfP_W zIJia^Gbn?=1ri#PbrNQX{NKVVjUp@Ppj-Pfjkumi&C|d`5#USd(-SY0kkgca5Rvdc z9dIN`u)VqSmN%F+7HSr8cqID8Gg z{c(3=)}cY&7IeT-lJrTuUM9n})Ui${GpU0xABt?@o`5F^m94EDVp+*LJ2FijDef7l zf-z_h2!$+#=k>doK^+l=;7I1<6LS%B_!$jWDR{0ki)qvyP?@X10*m-bkcxyx30j?C z7Sml&oQ!;!V)e$K2%)Npx$A8BEb1VjILPpwqeL-z>?BC3rjB*`(7)+WIT`pdE;#to z5o?O)IeiRuo~rSV1VohYv+8};_&(dIzn?U|pESM~r?eW9e5!v#v`*_;6W-B&6QX=F zzuUPnF2*}DGI^I(?onYZ~9<}c=kaUo^3cmwO>4WTV8f|4$C+mqg8nQQu!UnCS>tfI z*N0E$soLZ_iNaLdym``9zs{fi(Y^!=t8=`6>~Lq2t6%3A@$T*@RVm*QHF$wP*X7Yr z0R91wlgVM8tMB0ZgUO+KlyAn9LrP$%&-3>DgBP#7ZFuS7hp!ADdidOV^1@o%TIgOND&@2A7@BtD$X8MI27?LM@5S})m_dJ`R&DD^|^(s<`UW3gGi zM=oA$tlleLW{0ev^QBB~JmiOY3Fsp%{>6tMbDb*>_kvLUDBCGjR3>Bf0%oeaoU`-q zqA9?HGR*Ab!<*`r{7CNsQ_AuiL)aRnUpq#1)ZJ{fjV@LN z#4RJ{$u6P(`(XD`N^LXs9~c0%_?~*-NwstSHp9g(f|oF?&zD^{w*C;pf6}dqe@lHQ zOH>Vd=%|0iBnah#o#+h*&0j@d+2QDbwHqGn;zN1bvJtb3o0}K6V;-&O(D%Nj5prpPK>y{Z29i@>y_ef1#* zC@aYPN&R*(Vm-=DYoH0cvZemwOEfZ%M|%}zd_UNh9PR9az+?47W+Gc?_TqDF=%^@& z_nJqqKW;{;$Mzmsr%BNt3bl;(C&T0>oApn?B4JapY|8J^Tyq@*|9fGN<83U_hCzO4 zK91}5Tk7xEyNUFxZe=#IMw6Qd`EVz*gVY>!bMrm#G32zlISW5FHy;{ZjBk>5KHE|g zkVuY{mjllpDWB%617Tu^`|8;o5%#$JB@98r+3^b@b0RsL;i^+t_G?$&!>N0qOuU*^?8G+e{r{7@*4aTti9}v z-li0k=i0Y)u}Er!kM#I z&R-gyec;UH%j&bRKONHzf0bHlr>mNuZ(~6Zv`BAyv0yk{`e(!%Iqyt%16*xbA%{ahK@6LCv@tfbdCO&bLJ zdf~1j2KHcj&4D6S?F4JhG|-_I!8iF5v<`%|6k!iqX~ zztQx9a|Wlt9RjJkE`4$v>GMH}GQ8c6Mee{`>c2B@t~7+3wX62Zd1+I@eEq8hlDU9A z$nh~8+6&Vi@25Y+@NF%ZpMUGc-hEfp|7ieh)~5ZG{-wQGU1kh*gAohcYpHr_JyU>2&PK>SL_ZAw>s=PmXru$7a1np+a#3yCKw1QGSvQ;i%dXhzWUXB zWO?je@z3v)4_ut}WtUs@Pd*~;ud93Bsnlf&tNnJN#5CSbNIUUM+-=OxOAz2kz&H+_ zMkYKt3~LdHAub_QObm5kCq#>ReIk1G4j3RwnxWUADo(V6LKM_%4>3yWwwL z5`j8CIFM?DV2%1PAg-vZ44KU)5BpesKmCg+rXJ!;37b>@MlWZq{_>!dnoME)Pw-or zoBBRZR(!p6o*#Ak^{u|ygr5>-BFQd(?tKhmqQ3QBX<_f}Z+^2}IQHZO{@^+8PJ@>7*)ptIThDSOx`X7N*OBl~1<@w0MIQul&c^b6W( zH2&QRclF1_*9&8a;aeLs)7qDZ%HLYX0J1jRveap_E`r+>A$|^mOHIH!F85P#7)>bV z_m2av(L&Juo9p>#qWeWyg`pN8{#RzYKw4DBUXn)F9C#vfw~jG*+(knlc<`#$_G z-QGmvJ3y;a$5bFsu^w7t`i16tf}r0C*VI{(*?097W;2A&==qo16Q=Q3)l5R`8o#Ca zndkp7w*!%ZzxNIDL6d@2Mt+DBSMQz9L*Lt%=eDmq+l^sAzt7H|Gezxxo;{bDSXWiG zW%iDrNl)i4YxgldH^+D#ya>)6=rTPdx zIu+eZxf=3jTYaqDc3GBFw@%Ack}x(08|E}9GR*auj7pe54+;L?!exG>@^1g%5Hi_4FFcPIdqxOTD4{+mSjbQCWSOAAw$EOa0@i322IW z)}9O#ytm8qqiuSbP948pqJchkpT~SG&gfnGPZ~|j1RB2s5ucGvF<)!icB_ud43`S2U%m@2+8Ugxf0c_QZ@FL zC+!b34(d!9KYWj-arJ+pI!P{fpa$<~HG%_uiuD{0%cA2y^KSWMGhm1qIf8C#L(CsN z&rpxL{x&+6A}>B8C{^$xH_8ley+c-s^UX**k)a()BlHVXyVAIK4gW3+gevUpCHc9r zqo|MHLXTSNR)3FKnEbUHh@nk8%k$w?`uI`b3Qx$NP#-}qX2}fFo-?FKZox;H4Crfy z^&^~7Rg9|oN6+9>p6$^8#qziUM?}1TXLVNEF9z&0%-gb!AAr7fuHem=>itnipktZu z8#&-->8E0k5Qut|`L$C{JZOGdsIRt=4atAYsEGo?w0{HjdJe+TSdhFOpT6kynk=8tx#8?%~IqxiKNsk0dz*l z{?DMFBUuYG;?HX~UX~nD|B~H6*YRf+7tomfIrHN~bsH2RQrr=?Ajz1Wb|WsvoIzP>p_7IUOd8SK)@s=h$WdU^EY-!pJ-z*&A90ujtsH(n~YjnpMZHi0H07_Fl#hAEU$6K#yR^#klP*jPgU9j46hz#8>m0LjinlbBOR#c*rNDcbG?>hBNv5?;KZKu9gJztdP z6q>_GdCPO&xUjIS0q6vtwi-x#mCfi{;w`ESB6l z&_zD$h4ts{{Km6iBp)T~qy5oyZj&!k4*SFMtLMI0x3NGEN2AH}Uf%o$g&fMe@lc*T z{{`}dmANs5e7>mB8O-tpuak$#ZhS584Y70$bG{U{F5)6K)m%e(;fHV0F8zAO8ynW1 zyRmU8zW!*Qo}%pAl~ZR=Y5Vk<($#5mQ?~{XbKcw>o;r#Wn($(knY_>Bi|o|q<~Diw zSvb71$=jP#HT{k^Z0znnxwqkpJ9wWY`P4-kxQ<5!ue-k3*N{a|sqM;}n^U%2AX0dO zgk-&p?1351($0$>F;NL^J33cGu>p%3INjK=f6i+)u}oxh6Vd}`jN&*0Y(&*y+!`qq zNt88iJTHE(<`<*U-feH!9h^D}l2b>-ZwE5Fo^vW5>px3-vdZbnh+c|-q_nu{Ny0^H zxH&J`X~XtpDS^$Z9=DtBgz!)y$T7+NnBjg9;DUssGK*~W&3Er9KMSWa=C zV`&E|Ev-35g&-uT#U|4xE?&&@FI#W5^s%Sg;{>%*oCkI5Rbs3a&7nwWc$( zr;UvYa0i>yoXn^s<;6R=AO5 z!k6LO8MU`PQq1Q5t6!oaU1<^gpjHLsp^bTPUfHOh&2bb92R^T{Rqns1ngOXHhk2vO!|29Dgc zKZfD4DEcOb##i7KJ$PoHz+@6)6hU5|Rb&Yskjo<=(KWgAIJUy@uGiX?GY%dcCtC8e zegMFtDNx{pPE0w8*niz!W~H@xOk5#k%W?3bY3c+4p0<*g8$OtLr_L=$vz;;S1vi_B z<`TL^?QTvms?Wv2;48m+c86k`qthTGD~`nHNU3|Ay6?PQ@9fS#ctN4vvEAI)-}YcW zAxqmN9^&7l-@M_+Zq?(Pz1GMMhJag}TcJj}yMrGUl7?wCj1P9|4{(WH@fjMHeQs=& z?}Xl46tI9B&1*N!y}7BE?7H(KQO{0b{Tf}bT&KQAIHzTGIAogP!vbo?FN3b8-lYnT zkp@&5iuE$BI;wu!WQ-klRsLvmv)msxm!j~!JRrF?2V9SGAa}j-N_-Wg(UltQ-*S{6 z!5G+THaABitO(+(zD)D=dyOXuJ9MynQ>-F}r@!%4t*6Bf?lu*++#PGo5X7_mu(Y6$ zWdlKp2+2mK*`WMJ>vPj+ow^=@sGJ$p8B1`g|LQwh{iBA>55cH;Br`AVq`QbhzFBZyq)mDH=NnGEgEl;Pw3sF}L zXt~n@svyfPg?NdeO{IckzyI}(j=9KpMc^4sRHj%8^7c|^-I=$E=povJlx;n6cSK5rWJ$EbQYBt{2R%JK zzzha6U{4Q4I5L4a41=U(i%H}%vr%pE!BteHmQ_qvANWD*f_J@%vT?jj;##R{oeip% zTc#_nEqa|~xv_S&zyEX2z1=++kdUmTc57E7;@*4ix#v9Rc|Xs2&gr1JdpQh(Ap8r5 z&d1lTT??VxU;j9S5+iO#^vy+P}&$T-n>sN!4 zUVKO|R=1j$+EXi2vvVtL2G;I0yY01=ZfB$Iniz=}7YgOV@NgUthlOH178ZiA5Qc?9 zWthLhaACMyDOB`drCbQP;s4{6f@oP73a^BtqeF2R93Fl!z80p}uipyF*Mju+%YE14 z-;NItUv6LC>0FJ12UkGZ+D50{f+Ty}t?tIo_DZ+8y44PY^2*A^cJs>0YIC<8hozO3 zwPv>o*lTe#_NkptTcg{he(<5HJvR5c7k4@v-HrBc@KZ;usQrAqwbyMk?48!7;3M~2 z;l?&~np+#YS^25MpKo`Y*7{|C6P*6&GtCPZ+H22rn%lcggX?Ga+Iw`$msD+owERsl z`S7xOSl-*%T5ES!npduDU0ng+aMkWcE0{h$@Oph?yTALHWZ><__QiIm4L9cB?*$*Cy|S|&eEj}&uhUGg zY^>~V?Q~bxco5=)PmYdT*o>J+Pl`skTpf;2gszE(|vNA*s9+HT^ z!sm`xKlM;DR1L?Xva1*C&R2~oOX4}}wy>EL+?@eXQ+;4D7*q}zn@PA71c%Di@qi}M zuzDycmxA=&uiXl&_XXujVBDG3t5Fb?|NFZQkpX3cEL=*WFEUPm-K+z%#u>YD4rvU% zaWXDH&S3+7NaGwzcyJhT;~efA=TJ6Is@gb*4jyO0k5e$H2Hi5wBm!@PBmDfks6gxMpZiJA_zl1O#{Ie zCWZO<7zN+@>$fPVCgE~84+tSe#|(>%dp@4fVCUn+%9G9N2ZHiTVHjR>{lxSGQwj7q z32n$}vdI8b|M2i;%3CUd0u}oQ-kzZB#tqkXtnx7mUj7vojEEoRq6uBV=vQgwFmL(;RP^TQAoy4yPIzGxE-j|tq|*MEF)azb=?{PFd#67KhKFi= z0cmMVPh8+2_}D$eN8Eg&5|)!8fE)d+z4LI(4K#>MkC8~`=?2#lq z6$I(6@Y(cw_~}hP4b@DTjHX~>)WmOC8gb+jZL8lAUZRr3W?a%kFx*kQ8{w|n&s_)K zs{`r$09Ka)2$SK@qdto1$g?O9o-Wl!(=Z861r6SXY5eKqY5Z(Gd=i}*rs$Ly@T0LI zm;+&l%O9$Y3of`GB^jg-t5tNt;UEyCh??kfsIPkEo~pwmOF@GM8v z%5x5?NJIBa(ioD|t1nqHC7ypUo_&z)twZ*dakdPC^_snQt@d$t z1bAqawml8QIB}!j6D~G+~rQDMV-N{Q)f%8(V zrCZdKqw=St;h4-HM3=+FXsWfsofbqdM(_{JgcO`(PijT|b55s3`<)lPqtm|gINDncLV>L_3u=uV7 z*5QTP7_H#W7iuNGd-T~_#eGg&x5IPJoe8KkOj~!nM?IC3v80j?cRP3Oui*LEp z*@O=1S^PjWXALtX)+rpvY(h8PP_F5PgAU6A;|orRXg*C60Wu##+>*mo?$hw>hKQNi ztfOpzDoRS1U=rto6ak^HDc$~v%~AhSQrxTok@H*%^yxhp*poqIo=Z_C7A9s^0T6@k ziY7-Uqy>cZUh0&MxkWM1?A(l^?w+eL#JHypX{&%g?{p&8&FRFF(}|RuPNY0naTVFX z{W`H%-|58u55}_(GIi!!*ryZKf>q3F9kQpMPV~KIuU)JAbYe-?-m36-^3{aYy-4F7KHBt(v-(XKwm8o!|}? z440+vdc|86A^_2JZlU^c`8P-6Atp5yY2#ago7Z?r(IieY0GuU0z~pklNNK8btX9-h zwFXwxna#TVEmOgD;F2-H5HE0HihBY#OMNPMPy!&{E??LGm~2bx89~Ec1ay&!H4>>N z{0O;J2^7TLn%B(H+1_7*xMAhe6I;Mlz-k#l$tIdON*6ZK(we-XO%0T>%^GG|KoNZa zS-LyASv$<#vCY~ME)$!z`(S`!2{EMnG~t*rA&ar2m33Egp0NA4Z}!1_r6Ns~FpXp! znC=lx;O%aV37gY64syLchHn$17g1<2y2D0603=H8qnG+o^EOp_Uvd;Mg|?$$KaD>_ zN8A}jVyqSamq(yaMs$h4SScst-0@x9-K=L{MSWkv^%kCqXJG zxa2Ub=-&w$$KmwnU08}IaW32f;e}JNOvVC-L)@_d1uqv1mb;G&AB-erY7aTvBtD{6 z!Ki9r(uWI)idx>ki)r$CfTJre0afVH9Nj?TCaEKqq(Ual4u;tG9@D#+Q#O=&Yf|3) zG)hbG2wdSs|0w)$LM5(4(|Zx(o_XilJ^CxXjix}G#?_-iIeqh2@z)4~rf;hBXja52HU67$K0a;K;2Zr$z7z3!4ZQkRRJT83gmO@TamwWyxUKgvurc%NA6&FjxlA z6!Pyti{G_U{>@5JQt`-q{D%BnZt47WcN)`FE@w^IHc zD1Fy@|5xhbi%s{Qyd-|_; zmqZiME2tD4F(f#Y>5bAGgmUalc!#A#j)G6gS?J$T-OQu)XUH{A&sO-KMGh@P)#zm$v{@9t-S{$bu@YYci!G%G+e?sH0V z-=ig32u&0dcuW6~RgHAI`aulI!M7{~X<-LJ9JnTUt4jeUSb-f-k8QzZmEVnH*&AEx zaA6}};U~gjtk_^?LevUz_Bn1E{strsu7*Ts#Q;o{bRo!aDIL+G-H;donb4vglZ|e@ zh_+#=gGD<+3tF7SS1Yc52RPH6p-FmWx`y^Is`U z;}*FHF5-EK+t9g)dq8_bEX&L@Xc@8|0pv;d$E$WaGm5ocqxW=o6I!;`>kb)g}xy~)AAS{N|g3B(Y4pnt2I)v~Qn z@EP2oe^``-B|t7pEJ%X%#lNblisG#(`-=Qaw5qI=3TVP?k}MV_ZuP^(tNe-|0~2G2 z6uSQYNI2@_Mi#>Ar+WG~=qiPr)f4Hj>6UR+PY9Mf{~YO2^&)-YQd+R}T0Aol+FP#` z#)ROU^tN8hHyPFGo*tO0#Pj+4+LCjGXMEwIe(0$F`KqG)D8jAjp7r zpca#ucEqI?pd1pY&^xC+ff)Wq02Ny%F2#;ORiiz0(Q5~1F&PkS-PI4be9e;EolvnTFQ{SsSu&|T?GII=bz=e$Vspv_cHtgl9eHki+$ zZ4^nB$|(tLLrKZdW{L;2p^X5LI2V5dhuX!QCKVr%vfLoEq_B97Aeg&Bfz-?feccKheu_pAC*b$`Oj51 z*%;70s8#jrv02;%e1n*bf#LLRkP3k%K`z|=+H&$zGW6PuUVD@VwTINCX%lZ|M5uo4 z^1lqTe4gRJUC~gVbSna^Ms}-;Cm_{wcr`_{klNq}{ZD*+{dy?XqOa;sg6-3~yxlsQ z+~T3biY%kp&s7dNxeG>aP8w z@DM9OW&MsH*e|8#iQY@U5(d>PYONLr&!g(VLDM-C*}U_y13RZwddq8DKj`YggJx~j zcP=I7zyKiskp+OII}9DpzKVXTM}5urU6Kr_kV%TVY1kpnLAdlyr~^|!cW=Te%3c#u z2S!zN#y4S#?7gArZ-S4_j*6e0mPI20G0HYEmLejMD_b-Fnifg<9(&ctCYnyi7_gcsX-)~v+_05+F~-EKKgksTFgiPt4{`5A5V(e+(0EvwGSmDzJz70 z>|G8k?NC-HFsoIYL%Jtg!a`Y6(*0on7dx1k0Zy0WXD zhL|>UsA%42lf$Yk(2(Lp>fAlxy&H7)1~*aNyEnwy&Yrar;gk`uf ztrCF-%U^>JvsX`6&;r;#gj?1)Br-f&2`v!K%3~6<)Z|wFsN!@s%fgj3QnOE1D*jWi z7u=+Wde^VZab)F|)mv9{Jge!%UsGCMpvk0RHHk@ws4RY@S*Vc=oeD_aF~3=#&IRCw z0cmNeatSsa2B4wtW-@k3i+&8gQY**O2}~nk0vVSI&KaIUA}69G>rAJ_+Ch_^kJm>f z1Va*+q%0{JrFXcygbP8BGz2E43kX1BL6Q=QApoITz=-A>)%wy%QXvmZU7(oh&btny zB3y}o@@HsQg4Ob8kq?IP&&Bk-giqK2-XSyIf?tMPbijjP8B)vcrz1YSM2)Di|N~HyY5vCuLlkIux}o!ywB9DsPrF8xKC-O3f@hNrT@8f(qlGx zCEvsp8_un+Y2>edc9Qz{segYpjCzaQ5U=1=RuTf0at!+eQ|N5g3t&twfGSyl)IhRf zU0AB{dDtBHVa%pZex}5n%H_7k=KK)4?ai&Vf&$V$P+d1ggIP(?_ft7D>ZmXvl( z=8Xu;!zv-MZ#E9<$Zu=oGji1(D+s)jH^}t z{Q(dXEU!KR<J?e;YmAd6l3 zvDX7{#_SpUL1fp&SC^aer@>KGrt7vtW**hD0o#~1?C-4_}Ux4)ge0(H^J=sU!s z-lY6w{H@TevSW{WsUH=xo&C==HRhjnxfzR?zMCW&UB32J9)v42xWKvY0A?nbp~H%3 zw$H*_5iO%yvsxL_uH#201z*a-kH3ot-Gl3}<(n~n2eQaCRFh+d^(HYPR9?+eE@Z@1 zDi#iEOk~L`&ak6K^*TMAm7%D!vIny=Bqu97sWPD}Hynj@GAqlCOCep%%5no#NPo)~ zGH%70$tk2-9g5O_)GIMH3j3F!A!@M1+c!cfjL%4T5<_hPz8Arz`RXwbEY5ntg748l zR18w3ws2utR`THzOe7I@_Zg<@Ap900FfRfHEkZGEOrOdK~!Vr!#BQJPuffiVy@gk3~C#7 zZ_KO`jao7v5qT6$767BcAiH;0D{co`uRIjsTXYrI~_)_z%czkvnhX|StB)+d z9KKK=wW%Op?yES+*M5e00vs1Ao>s>dCdTF%Ht=y|t(u(BBKSznR;3K{FOy<8hO(&0 zR%$(k{-!+eGFSqB4AUrYXmmOJ5^@`*S|WBD%w9nB5rLA70Ej}8M5Z)9Gk2Z)E;F-n z{tlfx{u)3F^s0eAlvH13l9xO1CNSfGe@MZRLr5`=(D@eXo&_H7#+S{Fw@fkBWvI9a zBR1Q)@|Tm*7quLx0wB`20u_M$7+k&TSD6@B1Z71bKM5<%gwzxULcNnhpAq2Z8d<=do7|gGWWKRi{rdd5p>lqKDIVi;X*Z zsLmo2v?rM$!76Z@InW-Ato%K;IU*c?*2O9Y3~T>CZ@Eh0ZV~X$wqRv(8e+)K6V7Wh{c( zOqorE7-sjEgeU~%rZIZU$>4#QfNVR~VW>8OqGiF#gW{8+M)X#T0naN>8+jY%j$Mms z{2WTkLOv{()F4`|$oFokKktzbS?04YXtq8k+7}Ym5b$KrK~#p+m7?RX0_iJKxRi?M z6%^>Wlr4&uP|FB^6;rd=5_HQ5Ib{S*Ne?Hkp*z(_OXJm5q-ODrQE`McunzJjm|AE} zikixH5XgjQR551en9Z6rqbH1MlMk)w)O|?MPnxtoMGUMu2GK-u?>3tzHdh|f8#yif zrw2D#3ZRk(g~s#lMy}UlOn**r)V_%Ja_I6?l@=Nhi3!p}N@)zzf5%MGR6Ge=7N-!) z1Z0@GJp+P6#kR8%7kMsvjJIyj06P~{aFoltUso$tfD7P#`5(G-*{iy9*{jyrjhCHI z@?RBPMCE35P)H-_4{5+5_|K*kBtt9(KhEG$p*MUS13`%N27z*M468-|S%DKF=rc0+tE9#%m+AU9#T)6#{A@=-ub}{zvfk4W6&{dA=w+ zq|upGd|l_?0yCRWyi3d0Tz?1Cd_yR_VO;aFZkRsCJ ze{^(|4Z&J`P|kCBt-uwp^-af4?kkC57Mw7$_e3#ggP{R7aNn8AkxG-5E~W{pDmhml zA^d8hk7gOYRL3F}P=6R1v>#HFDX88x89_XW=0IBjLCP~mvLawXGY%A?9nc3^k(gHO zc1!WCQA+D&u^}c)_hY(e=~(v_V^4YfNJ8%cgJHEIy+OIy=OFYXO{%Q~>~b*z5V*E0 zxRyCfgU{4s4VJYfg`uU;b$_XD22aC|!L5`96Ewu-6rY1C_Iu)BvA*^iUN@msWw5e? z;xkIc)6UkHB!I!k!WVUYQ8Qvq**LuD zYsq8e9?@h}W@a{~uE4mIN?%hrV`r95!TU{16IGx&;yulXBo0t z)gZo%lM0TLFwf*6z(&k0JsXip&|@Qd60!&s#NBk^+1Fl5#$Kck8mEZa3yufO#6~YI zue+_9chC#$SC3;bNN%tzqH0%%#!+OM|8NUfaN%1XiVY z8j%L{q3JYD)!|?^yvwEX^r0n3v%bXwM^j&(E1ry=zWmiOx1rCOr&?-Bsf=9qtmpM9T`Ud27I-sDZxj^e(KBgEPsjnJVt`mBQ7aPoxq znFh;ll3noHk9cQKp!@8?=PG{1>>$BOisOYK4w+%or)D*I5D1UJfCT-mnJO9f9>uxs_k& zaXNfC`dE0KyX1(~yn$Mq2>w=7yI;im^{Dm%CJO~it=XsInI16&CH{E>BWbEzDq+7_ zDWpY7lz9hOSvT|{X1{33TR~4yDKO>s$pe&|&BgbPeklEsLW1cFdTzBwErEra|47NhT~uMW-N_2CxW2%fPY(5%e7-*mTi=^ z2Q_(9Tr1hx=r0 zGP+9=tW53Z51_x8JxC4U*9R;;fshY?ko!SMK`{hYZ&>6((V7aDw#CI)@+ck@5fkZU zxCcM#5C)YSFTwVO%Q#bY3>J|AG^Kc*B+BxOrY8L89iV-j?2+Kg`}kPp{R8V~1$e{N z@8e}&Oh zP#E>&<{Xrgn2L}(#65LJ4Dl>y zq5OxSlE`oHD5mDzHus(oKA}*-MySe#@Ueltsf@?&{~M?}DE0{VDRhQOUncOqVdd(_ zc~qu39lH*^LEB1mI))v1gSIXCH+`I{*3h;}k#S5r@D1Ab5&vd@TTy2{4eOn*%vGp= zFezqA#4D>h=e^|ZIun6F_cW@C0KDf8J1qyqka*xjKrJN?4-^68!^tCAQKoONd-boV z!Hp2MtcY3R!OE*SZ$Bah0auE*ljITp@aK^r=o>}Y4N3NZb}_?b52zqRvOS=uj0pCCGJ8}g(}TB?fwGVv zoDZJzkRoTKWlGM*lfzEV7>MkQcm{G|(XiXxWw^H&OyFdtc+san^#$fjhKCpXM3Wa5 zs$i+jTJi^7|OKx4zf>mf&o!wxQQ@0XvLY5Dt+ndLHgxelwun7u9 zxmRbrgJQ3K8(Ldv%$|OSC!?Z0{Si+_dV6|{C!@VRY2&LA-=2PtCwjmc;xQsL=t4T> zS6K@{)4E`#b3g9XLLvbY+D9DG6Ql0R`;h54!#2SXJ+G;c?nwH`s%jm%0xn?& zp)%MPI@7AEt)?=ivH5Zqnt8-Oqk^oQRXrD~apglnwGos{Bp`g&%)+E__b1Uf4U9V_PR!^^7=8*Hc^~!97d&Og>c6?>e zZdVwxtFqu~JnbKiO*NHQh8G^BCPnB@Q%dTLEWoTqy=gdesW+&I{x{elIqQ0Jeeewi z%cI)XGczxd)_`1T`ugUb9^~qW;VSoCZ?wYM_YD}=xgL6hX3F0960LQruGR@|7t}#- zamES|x4zs$YG4d{(;j_--RQ;KRRAUW?6gWCK+jC;6qC218d(nUZC%0SmHGG`fBQ7L zQiRiYV9e<~o9n3rO!b*^l~|HQHY)oH%=9w(tOShob|_m3m~a{OdCOp8FnC6Y?{&{X z4xIf*3uyZL-PoP15lK{)&ZsT6DkKwBsks4J_u3wlzMNNcQUS?oHlU% zrFS`9z`z&0;yCLkOXKEr0j*DmYVVa$?x%D|z4&u>ewZs|DVRBLsF3&at>CMFp3}C_ z&6a=?IO8)wh9qP+eNGCNsl6f-E|tuRTCr_s%n)rFW68d5qy)2ZrN-`8xx3a~blik7P$Si)dN4Zfy*qlo}e-}{*8jR-80 zvjGQy<#dd;Si~o2st(?W~((I0=VM z$qHPaQwZ;e*6PgcJ%yYIgb8|FfyA-<6j@@sTn%9IzNA|EdT`r!b1ESr`M^1S>BprK zf@xF&&Pjj z&Gtay*b$tXn!v>*!1rD6Sv3XCp_f)euN<(zPBL*Z*RaUC-*5nPku9(dmH265FuU0 z0&qnA&&HSJ?A$Y79{I8O5`(9CwhWdt++wgas2qtr$wlyt-jw-yhP1YbFY_pR*PwTn z4eoThPj}L32Gmo1CAz8p5R!GIf9Dhk`#0EbWJ<33AN6iYK>3cTcxD)Lm@K{hE4r1Z zr}}T{>awbx(0Q?YZi&V?J*#E6=XU!S%B5rDoi` z$zT0<*VM#6Jtovu}O-z&8eR8 zw0w?QWY7EjshdI(^^7)z8X(c#6Jtt!i7`ss%=j28yM!2d56lhv6Jk^Z41}~ZN6j2f zz#u;}E0T4%Noeb~6l!nzoB1O(vV<4~1G0pen`XkZ1#dkufA=XddSd?2%Za&dIWadw z^cjUWqm)3UA9X2Ba2d1)j;#pzOIY!QK6%=JP^0*+B?gkwpd%f6xiY*VJ|r$Ixy5jp z$a=5K3&_Zkjndv3F5EkAd#f(`4y0)Er0=*LNDj!cQxX96L!Q_R0A|`;}dO3OEuPEUWQS9bQ17g&U87Q7vA=O`>ECzTMXfju}YO z5@?RhyP}eYkN|5)6Hq2e0vW^@>^*ea^xBvAg>6*dd<@m^3-jE{%7ue{rH#N)nSY}p z!?AL+9g+v$h|m3-zSbO?jNu)kvu}jd^Ns^`dsb>8Ive@Z#L+u$!-036JbK5iEoR!#JyH8KQkJk{EbBEA=aE7Qr-X#aKBGqc1G*={P<0;AJ;~d;Kc@Rpr@xO{B4E__3~&!6R@c2}AjcDH z$2~LXhZF0=J%gY}66@bRgUk;m2Ag{Z@sD~PDdOJ_HHh<&pUcgNgI2YqkPYmEeFM|# zOg1nr-edziu6sYQhji};W@j|mK*rs8M%*xl9rQyE=z@bab|8|)ZkRA(5D>S+95U{l z5YUH1qdn)cwSQg09jEInD;F-Wd7Ot{Tw8r5J;9^x^Z00)>0rB$&H}b%b}uW;H~=IM zjVT-4EeSxw0OrkOc*-5OkqF#CIwFs81s0VPy4*V=p@|S_Pwt>N+X0?O6G&2La+HaC zkY490^DW$7rA+j7Y)Mb{*_h2!Cj5a|ESLU3n=Kp@s9*TQuP6kWE0q;E8G?001SiS4 zFiC=7vZ8;}$Thsl9qcH==$nbbH!!a0VUyv3)?o2FEQ*5wVYtJzxHltC4LIq|T4QY9 z#vp(h`}>y$FY=bdYhY54gK5xFkYsRY#sS{xGjr5{v-->&1%qbpym8kcQp^A2a9FYx zfCKjnRAsfY6#$!);>GJU?QcPMvGPGH03zkL!YtlzHvDz4o5efbr^k8)#6n$Oe)Yrh zylqPf*D+0STvvXNy&T6=L8w4ddJC0rU{rrPExM=?m6wb2(OXE z86?FQossx9KU1V<2I56Uwm;h+FM**Id4@K23kb46Co?>7n9XgB?VIXAFSWsB z)HXv{cu%uF@MF7R7>p&HKU)hZqTk=P{l}Uuf@P*sSl8Qq`znNQ_Ej*oBD!K|X2Y?f zAw}k23Z~k5G0ZPV=u^vS6p6>EVZXH0S7WqSL%|$ymJI2nOXg(K4@vNvErKWRH2w<23Ge{@&_|m@wm+{*Gf#BC$lZw^fC8oxxL1paMV6mdOmDz>plx zLlhw56zX5S<&LB7ophqke)K=Tqx7}qu@{)bDsz{ugZ{XvC^}16z|I^I6TSk`!;UQ) z04%4zArQ7_%aVBFeVv=Q5|`vli7VPfyI~b1=i`1^t=1|IZ1LSu*2(Pj_JQ*qIV9(t zQVu1koRiMq7=n68kwZ!)sD}WPy=lX|s@P^=vL#&Xjq{ZxqZN+6FV`%;!q;UcLAxw5 zIRVw^5V3)iZzI)^rV!XvK+f3n<_#yT#Nq`4=Et;u5hUar`2H2KoEGg|6Y!Ed%7zoU zSY0NQGz~vjbHCn$)_WzYm$eNdh%UygbfkfFVvEz!$`%-cfyOv0?D*&48tb)$cB`R^Px2k6 z=MDzAC)!s>pcc63PMK+z9I&*~3`_A&2zXvA!B) z0J80pZQdJ#z1i@uyB_Q^_J2n}~`j&g> z`p$)`%7Np`JV6642Pmm>A7>2W%?ojFcz!eC-G_I;ur!p{qfHG>3?$`H9e5hap6(cZ zV#m?(8!Dehy7>j9&s*}WHag;ID%7IJxXlfH37x_ZNbiKJv&&WeDJ_|!lVP`GKSVMx00U3{B2 z5Gsc>FGu4Zg&s{dLOb2)`_@y>T}f5IJSbPMRscubG1l*+W%AI&Xg=F0CDjZ-LGuRC zfR*=xMr`fTnaI z7?E(5e4q5TCur4%m>e-1q7*!TrxQBhS>siW*5Lg&d7;CK6)LgL)pXM_73!c=^Epoj zuh7q01iMW{U&E6NlEWx`o>})~-9f84I_;1>fRr7yIwSj`^9(sGpezew-|1ingZ z!rRc?0{M$lk_HWT)j4taz5K!bpZqd_0Nr=g!Y$j6tWyc4S6Btb6r8K@d#Cci_`x^+ z^3wq*wOne}#Y3Dd?fS>AeuOIW#dJJ`of7bnETi^Q7Vzgo53NY>yh5ntMmQTBfsjyr~s|3O+)JZ`t`!yy2rZ$ zV0nDj{ow<j)z-GJ}Xy#m3$dlDbmp>*}tG=A<<9q;N~1d%aK7?s(x|)4lVBJsKamw|3lCguZt2Lx%lOkE@;c87jOd=FSJp z4`6oFUH$wq-=ZR331b9S)1h&>$(bN|qE$S#aHDbw(V2#pWY}fe;_KSaVvG-9SKTW_qB%p2_xr{I#4J)TkKDlX!r#U7 zFu&6ci$R&H@(Z~)Ie~MI(-4xv)9efcaj7zhy$a!~Ea80$C1>1Bbd@3B!-GFUW*^s5 zs=1mQUe2{25UTFf6b!x(51y(=-;b(qm~p^F4-oc9o-c7k>b961!K7}vUp{lD63HmK z)08qQ|0q{?0ux;_M>G9xlQlMCf5y#f%&JH|W6PD>0vc*yl-LAQ6<9@_q!XsBo}>tO z8b#*v(pUkp#d@xGmL4AhbM?d+ERI?IvD>yE62aSe3Jw9&-;Bhz#?zLxBQ-2nT8jS> zCG|@Un{Lh2Fr}8hq{*S?mJAHVc!EkiKvG!SsbNmBbyL0{A6VN*s+pP}{oL4tI%vue zf)scZ*>92F(Fsu2GAwhhti!TLJ~Mp7HW3Aa8 zI{ug4^&o>o4W3e|w@Dy_{beA7T;XGVEmGhm`H@Z4wnLvPt@pa}F~1eKHL& zDvX;k1dlR?*71YPB2Brd<6OB=%3cw{YaL5r(D6@M$J&2S=Z*^MSQ{E0xwP$99b*i? zsAD0F0eW3i$T>eUgx2)~2X;-Vr9=*Ped6G*QBj^lG8J#rbX2tFj;74a$isAEY4}c4 z=Ky(fe;&jhkGgZKv}xCK=`lx`eOyYZS33P%njFlfPU#q7xb^U6rtL29(tidp?ggrMB7CQ_^#9axnMePxuNCOC6K6Xqe%*9WzQoYjnC7 zHM(V`*lAz_P-RXg&p~yrga{*k^t@|lFe8?CY1O$9d8<7S!hik&0d@D!o#)W|Ja-)Y zn9Ri7%b4sC^L^YoAV9=|asg6y$DOiEX^%IVOghwhOkbCr<$E10VNQuW zCyb5a)@TZw9m9>ua`HdsScceZ?-!uZ;^)u>C{7sw)9RT4ptK)+iHj*gPH)5jNK1JG zAk~wDKdxI}SG&aXh@I2KnJTCtO48?m>@)&^IE?@*pC?*^KVytU)Q-hh$NT-{_)dr_ z^|53(u8IyjlU>EqF(@4HM~-jWI+jEXS4z;AHTJRIHx;rk1bD{(R;bGM0kD9hK@~(B6IB5(-I7 zE&zk|e}Yqqk|DggvtP4QwnYBS7dj~~duIQVg|7X1jj^NopA_PVEpYY|1lL1%F0azl zYe9tM^!{vQ^*F6Qi=NOI^ zFS9DnFXtvPI)JuV02q3e&fZe4ynIFn9eEiV1HhPw3nHd^nzSE!mfDRDJ${eLTb%Oi z7jkX`URxi98_HN^s~!R!q<;zbQ|#~uzkG|8TN@coC&8ua1JsU`{-Kpvjsw1j4(ET8 z{n^k9bwBtoWQP=A4{gt506gw|Dh9#H`wW$u#q@_ij5+0M8x#oD99E@*efTE$77>0+ zM?VX(!JOvE5L62)4TS(KB_eCqiU;W>esw=xK?1=??!Z+U@mmbaY{dNT*PX)o$1%UD zrIVo@2U_fY0HG{R&-^9VHVLvynP{2e4d4?I4 z5{`JQGz7_-cDKTO%A4n9c#6}4IhiTn-CDFtxuNj-0YkC>oO1m#42Ah=!Ff%U%BH|F z{`7PBimsUF(yt42+QzM3z>@H*Cd67{H#kFpW2LkFn?;&3Gs zP>p00n6hXo+oAtql;1!f(u!Vxvv*5^z<;6kZ$b$)v~FF3z$?DjZ|Le$1YYKr2eMZ< zE?mXh$do0lXSNL5o-x|q_O$&cg-Dxhq3-ScN1X8N!!*%<_)D=%X-txMAoH0zfpJk1 z9=8PO=&UG|9fHR41Bx|GY$3u_o2^Fqyd;Xbvn4t!X11<%LW;S|(+{;YkZ6elN+=Z0 z9V*-3xkSNy0fV;*JJalhD8{azoYhZ0VW^&_VJMvbijr)!ca2yfk8}ip6VabHoGYHr zmQL{>FC8e_7iZfTpvgq^gcx=rI%_{?Os+`Z;t;3-M1k+JS*-Ouxec0}j2Xt$h9C#a zU6vvf8WE_1F#$xs-mYIXW=yog*+d}O_))xR)skZM6Y{YpwBR-yCFC|l&{7!N~Cu27#0K%NRe7eaLhs{Q3jSkpb2)BGg z^K_hwf-vMztx2DbXLlBED$>#OuwV8gu*;zv52wFqJWf&AF9TvzG@SB3ibLBIo_!&) z60@;EP=*`2+BOApQa)23GVfGKliw_rqIKo0a;jos;k%CC4 zFu(g+R0evleVsXEDP`GM+(ElEsX^!$^*AY#vrl^o`B<2I5c;(NI82Pmo)8Z*Yun&O zhFSS-qPh7@QjB(}CJ>s@^E>~I9)F52{Z>%^cVl1L+wN{$ZYP)9mv=f>llJo$n|r(6_S)k~y1LWpZfsv@HLo;V z8{MnP&U5X~`qs`@b~~-pTN|s*t*xEb=}z-2E6=rCk9T%Aw%6LvCp&xHWM@5D-Pzk- z+g(b!7u(5Jdpp_KO_Eh!>Dg7Jq|s&Dv#3wmfgAGrT{?bGX*yQeSjtbx1TtGi3jch|sa zbGy}ET59ffFD`+%XD+ro?WC#yw!YH5N>jYp>1=d2+PmN}>9%*fr#g;=YGZrvvMyIH zHkaDZcRL%~yBn<)!}n9o-HXZgPB&>kyVu-$GJBb{JDr`*Q|;zjyOXSKT%f&Vquai` zn_PwslFQ9*>mo#B1g+*)Yj3M5*3cN}hH8NR=ej$c=7o0B*`e|G_-K1aBYURP+}>@r zx*IzH-`VK@Y_**{*WB7zdz_xO+H1-AFJ4i#rKP>?uXLJMCQhDD_^6qj|H968`@HJz zwfnKTW7UOB$Df8`BaKIL5PBLU{u&=}U2d*{*ekH=TC>|su5@;u+gJmd?hdliZtZp3 zE35GRrHyTf0JyvU*+2(7E8X4*n^&%EU0ulu(Yn}fU4j~->2`P56MJQ6eU(0UH!f^9 zyL+9sNP49SiLaj0?Z4XmCl~*A@%-Nr?DPNgum9kyf8*c2rTc&WomYPSe|_`o_v`-b z|F!gc;k&=~pXvS|{^6^w(Leb+qq_f>&;H8K|F=`Czo&bV{%RZIUcR!`zD)n^HIFAS z#(UM#{}TH*2oA!H>gd1ss?(4BPJ4H6t4sS!$;8QB&nL*eVAw2p~d!TIHz-A=X9riVPm)3xq4c# zT-fMd+*^ITwR8E@WV_Xxn_664TU~6o7N(|8do;Ip*4nL8Q;$zRK5L)Yv%`uq47 ziR*vOe;V5Y&w}hJu1C54Jl8{9FZt^)a#j7ex!%V$`~G{}GqgL(|MgwU|HPMPcxZF5 zpT_w#SHbzm9v_wAYB0z1Z&LmXT>q5+gr_&b-^aOrgDcKQ@LOERxc*bFV(F}Y#Gq6^ z_&<`ucJp#O{Nv=wpoB_XxorMJIHLRYPP-kA>+T9RtGlw-U0;YRy=Tl?VN8$Ruk1X( zGC8#{bW~3l+T9he2vDoto#8_&-R+eY``WnJetzVz-nWo|PWIhs)jn~$X+<`ybgaLm z1*c;a?M?ZJ-n7@IW@jfCae6u%>sQA!&gJUT8Q%a-+S1aO+pROteBu*J@(yrK zK>W_-6|<4F(wLf&$JCyiYA!aWXVwpY>40yOCb~eL-_nw`_~)*)TTfbJXP$X1Ij6R* zQJjd5+H5SY;W5ojuFDIXn>%vYAX`O6Z?9n3@lEbKDN79+n%f()s~7w&Ur)8x8Z*-i zb5khpwbo4Y=-k0oSDd@KViuO~)>`xH3+=^)`MG9mZn3p+|2g*^4%d==q@|@ZvV%!q z=@T2fSGJm06O2)^H$A0csPe^jd#yFS(3qQ9m|R_5Z7qJ_)LlSu)msZQtLxK?jmg$z zV{vwE=7HJ1K0dwEL9rTQt~A%gvh53<<`%uI&P}!FXIstbX1g&nH#dE(;d|+V#7?`p zwX%jr<%<=7l!JJ2dVO&Y?{{_)&$KZ;zxLqlnP)^B_Z`}LX(`>l$}l7(GNvmVYkbz6 zS%lcJK30NF0L=kG*|Jh=bOhpRXiWr z1yGp{tn75~D_3O2^xf3d!g_0FZ5^+Fc4nsa@MCxFTeVw@IN!}?V{(1HH9NQV$V^}D zv~vM5+wOjOa%pMz;?7rA_I5XZQD~WMHWy~*nrn^8)v0!KdiH}@eleGG4#oHID+r?H<+RWN&Ykg{Zu{HbX)R_DK&AV{vABZDF>ZJay&( z(00#!WaSe*iX7NdtA)r-Hl|y1?YY_3+-&U&yL+p+F6Kw#{H=J`oreXlkuhUq5rV29a4eJrIby9Vy<+c(l*8cbArE9G78fX?Y7O zeo9_zb9JlD_%r!JqUR@9n{?4!Y__MSJ~Z|zuq>6hi`R1EQ)m8@y@g*;!w2fUC(S3I zIp-X#baw!K5-(wDadmROF*P-d4E$8pn(UkJe0YAhb9rlJckjv-CZ?doDQ(RUE;6~n zO%kuu)cVXEs%#Nex`1mv)%eH}YbryXx$hINhx-P7p}mbpN3GfWrKOc~pMUyiR-SnB zQ(t`I$(2uk@k=Yqa{DvQap1t7XiKx33VEN#t*tX|+VxnH(?Z%4UzA2PjMY|ivCXt~ zZEb#GZD#)DlV{HL_{r(lj8f;Ye&jaRGKMQ&15d8D8jDCmYqGrxQ!M=S+<~w= zqGU9o`$lUH*_&;(CR=ms?MCyXO#4x~ouS!4!#9 zF37DddEuyWH%(t@UfJk9K<%v+Y|cv7&(czMch_-y26a4ikI31Zn|bW+VvhIn%vW}> z&v(?xrNYGqmX>;W?ZZO9@{lY-6KjlKKk*6L%yFR^ZBME7@jXPy5G>Yj&fy2OW*UuY zLNYV$$&WtMyl|nt_DpYX{j+=RJv5F22K#2+Q@wi>vLK zIVPMa`S!xx`t-v_v*o>wEt$oA;enas18>(iw)?^hv!Ba+vD^{-Qu8b3&OMf-(i`TK z2^AZJOa={hV{);*MwG14ZqKaGtA-jm@^(i*qyWRrE98HV&|l?bW>t zK;S%}W_yNE-TdO@++1^Ny0N~H3=As^fAqp4yNh3s`*>-PMcz}QR;7_wRvkLQz=49* z-@8m2pLhcNe@Va|BLX8XIRO30+x$Ad>cU#1J-a@$I^UXK8f4Ucfvb-l>&M~>GP$N% z1fKGlzxw}E68SgN^B+o8W|ZthyC{fpZ{n37rCY!-dY}J5rf(P zr*v&yx%z}%FJB4%!YJ{mwY?VZX*2>hF6*`Fy??B1FiBGYN|C z2?-EFxWg%6fPe@A2_lCgXE^1Qa43fy5di@~qN1Xr{C~f%s=B9pdpF&i#i;*ev)f(O z-SwUI)mK$tRaw(!A7opWWxr+D_HpOVoommPi?xp<_x4IExW$j~G`?NFbsH6DT($A5S;*Y``e5{@#&&93!i?UjfP|3N> zl#d*NM_i8r#>hqnF-Gx7D7=m$wnrf$UlgU3xt8-#VSRV{!Cxs&KVr_*FVC7j-Ex_1 zXY!zF2OfCHzE&$UI+*dL1E|xBF ze#DH~b7qI{JA8knls@g?{k{Zr4w`<@A+x?V_2B7WwdCQLl!tQwa=$~qdaxo`=sR>4 zu$_ANoG)*yfO-5(WgakHBOrJg;$|Ik$Q<>38hEh5YU>X-FhV^XCAevB?R&tqgZH04 zd#V)N&TkdL`)&1+k8HW!)UQmRHRH=)Q{S!MOw){mXU~~-@SGXb=1jNB;b*foJ7ygG zl|yDuw<>(FQQyz@ojx_rj7|7XB9bJwepBbnnlW8rC(>);5Z&MYp5Vu2yhu?douxqC3oSJBoJE8D4aY#jfFQaRgrK8s6m&cOA#I3(Urs zt+s6!ZQFI-BL2%iyHzfpBy}Dh;x+u>GyLF+yY)tT__)|&GXpR3KYrKeLkA@~qspyr zivw`TH>JyKe1nC_Kc@w+x3sj39zELK0Js3KGkP?hjvhS*zoSR<51tqBEB}fc7B?ui z8jN`*0Vs=51kYljXcs`43m_X2I{t$fB$SzW)9P?6$Jv;F90&HuS`Yumj`hcmEwtE& z+WYU{;@VbMakM+v4(82UZk6X+!OA=Cimt6sy2FY}`yFfaRMfuxX3UztFRJ$82k$#) z#vun!oipuA2Tr%G^3)Gtk&J>9k2r%v5(+MH<+^nR{W`NSc!rc>2s<9+KT zyDI5vhtE0SkXbY4%$Ppgdf6T(dDD-WzVG34rbAT@*>|S(ioKrX&NvuvO*?SLZ1Z51 z-L=Q`InxBfLHfq}jlJPyem42=83*n+eb&@zhaP(1*HE*eU2(rSGQ9S1wUsT zy#G{HtF6D;8>hU~%-Hwr^@77^Ng1;bJY>$){g9y4ta(n`O}1?XcKOR2-D)509OE48 z9Oo=>j&~M1CpafMCpjlOH#;95|LHyMac)K{_Kfp0=N9`0`#I-v=UHdV`OaoHINe|R zzq6gmm)rYZW?$g^?>u|%QAd9LB>TJe)%G&`JNA|K?e=xf_0F}<)y_lCXYR1?vcKUR zV^6=tx!gI`zSz0bzRkJax!%6czSFtG`Bbpf{LOy~{lS+%yns(_1U!&S!qT614W#Ja;F*>=*p@ z-nt#Qz2hwFqZU5(?ZECGZ&};h6MP$)^^V{wduPwV$Cci|>8*GAk->Hs5W~Iln zCb=lj_jqTm@4MqHAINO5i`U{8{q~^RTW{aRvnqu$sHoe1>n@&Mams**=1K) zqv&W4+I9wS+CdKAbopk9I0o>#GwW4AGqFi=%@=JVP;1es@0Gz7Wxbxi} zw>rtPaR*{7JSz1f&su+yW#Jo2Dmb*)Zzo_o7}Z;|4MxEcK%eX_E40c@XeDv_dNWQn zTWBY_KrBQHyjyPdZfbQ>%5qo!&Bbm@E7ZurZ((kvBkS(gabO(>)^T7R2i9?59S8oE zIUtTtFt@kv23Ojh49c@ob5k(`0jK5<5b&i-(~&({rcqN?5}O!^M5DV zrH=0L!$+TOf5YD7Jo^IsGW&nNWsh2HPaFH+!!ELy*tIk5uYRS{)!6kzBhR%r+IOq7 z?9=U&?JYK#biVzu5AMIm=MUKL)AQ_4%-!-7d!hZ|)9iC>e@ZZ6kv;3<^`q@C?RMk> zd)zi#Z@1H-QxBPMA8T)WyuH`I9b+FcWBO4C?z6+*JNABN=Y#e<_zN??{Hg!^_y77L zTu(=NthkDIU3Yi!9XJpi*d$lg@F(OtSO#Bqy$omehFlkNVY=cDaUVxM_p_4OQ5;f@PI`TosyE! zT+%eRf##&~mKOoLNZ8D7c+WU~3t#c$yN(Imf%8g>b= ze1fmc|OT+ zV3E%67uF1mUu$+GuwZt>TbUV)pRXAfZ>D3x?1uMZW-NY@LH-6*LjDTWOL^q~@|w~7 zMmo*RZg{U`ruml{X#SN3m7tl~4e!-FG{0tOM(rMF*{GANtJ<$=*omsm?1uNcuG(#; zYD;B9Dps{=R(`dnWWJGy%r_00tlG-j4`@JP`loom3@L3vTM!yCW;eWFYk?{wh5;r} z+5+<#r<6wQtqhbJPzix5P`^u|^oIV7*xSvNiseL8VQ5~x5qm|`oG>5EZg{^>DlxD~ zH)4M9_0Y-67a0kb0%HfYRlcxRxiqk06|D;LXg~dPU&kmh!$joB|ei~95GeFF4c;_Tp4A|)g=o=X*HJ}odDp2RW;eVG^FX^O1GLA|p)tGREy)Az;tbGM zq(ftN!@DF8v~LNt*r>p29K7%7;R(Q+;yt1fNjP}SZg`jLnh}l)+}NLkw=|t*14_nS z45&oSP@t|zp&8K9$6c;mGnyYxrm`kzA6LF22_G(1!`Fyny=0P?IBHA0vfX$ z-gomryCws)0crbQ9%$EQfHoj)*X4nBeFkU`rgM_n4ey3L(7vAm+5_p(nBDMxkO$h0 z8KB*t4vpCj?}vGy-IM{^z3I@H-SBSC1MQX!(0-H-joA(F);!Q|%K&Xa+HTJSZFvT0 z_oUOt?1pzo9%y%FfOdB}G-fxvyYfK0I|H=4(xEZC;oXx5+Pwm8(Cy*v8j(bM$n1vq zqs(o?eQSorZRuDrTc#-DWA**E%Kgkw#9HO$8dRdqV0OcMFc0S+${=UM-UKwo-iPx* z`*8+nhK&hmij9xtfwp4JG32?1uMvW-Ok_!1-G=s08Pk z-SB>rhx0$p0L>7VfTjq0G7q$;GC=!bI&I8ucu(hn_RN|>`&k}n&t`!3gLK-M-SD2v z1MT??(7vAzjoA(Fg*?z!W`K5GIy7cCyr1WR_F@KT*QY~ccEkHc9%wHKv_ZFM-_wXB zS~O-iyq7cA`d2d0d~G_-%x-wU%tQ05YYOePJkVax0PX5@+L+z&ew7E>8yTQ|Hys+Y z8{V6Fp#3@nv;k>*D-X0)YYOc*d7%9^1GKBsImzsX_q#mM-WF)6hXW0;#(b+QH0;DA z7PB#XmKF;0h%E!(cmh={*(vWpVt)HU-CeEHv_b# z>6~PC!~1IQ^;?pLt}QsJDOAAiO{Ehhv1G`Q)tKL zfi_>D=_YW1c@;yf%&RQX#3trdnBDM>Dx2%#A#-bmzOrnYbcfR-3!yfGrQrP zswssqRFGG{uuscCsbOk@QpMCoc_=-7O`)BU2iln#pbf~zv+_VYI|H-}(uKxs%#7uM z_KghC7NJn(XlJKGV|K&4G!L|IXMi>!ZI|VNc6kP9XQtD} z?1r~A540;XKszHH8nYYTm3g3jXHB79l?U3g4A2&()5h$EcXb|U-^~E+v~+09Zg|(^ zf%d%&&`wQ<#_Wc7Z60XXttqtY^FX^H1GH1pX=64b&GJC|K?Z0ir9)$O!@DsLv>&c1 zw43rkyEy~26Vqv9cEh_R542k|KwFp&joA(Fwmi^o&j9WCbZE?Oc+2xZyCVa%W7DBA zyW!oL2ijd3pdFVEjoA(F?mW=$5om)Rh&);&lIRIByW!oNxhM1^gGCgGni{1Z>zf$Z zi4KE;eP2OEpsv1ea=(F{c?f8pCOR<$#O#Lm0G1!cV(g?-lr{wPUeD)bZE?Oc#q|Q_IL(pe@TbN?1uM5 z9%w(w0PWA|(3p+&XnCMLnE~3L(xEZC;r%QH+D-ipNj#eY+JLk@mj~MO8K4bF+Y5Q1 zt;_)Jopeqz8?#q=puLy@+8@)QF&nd2d7!W^0MbpKMbHsSj+8_T}15+mmO3hXrB_gI15XVrJizkfAdip<6;uRN3eC%bZE?Oc<1GTc76tE&!$6THl|!spxxS^PF|D& z+H>j9n2q&Fd7xb^&~i?mKdr$hCeN9TIT&5nVF)mpizU0DG=1{?TNx-dpc2+pfx0vg zrQgl~?WuIWGP~hjkpk_u{-k(iGhg!u20W<|Nmx^6V--@;ngWY-YkJk1(!4AW%~xlD zW(Z5jQxW#vJkYLLGY&tV&S7RZyzgb^@U?4(#bfDMFdN(KWX9t944gNh5}a3{Zpg#= z?>Eyd8|~CO;Q1*n?+kswYM-DGY#R!nf!m|ju}kU{Zv`DjY_^055&RUe^G|_0|1cX% zn>6*n7j^{ffR-aF4nZj>!Y}BZe_F6<#*NMR5rQyv-IvSu_toK7>dVX!mPd|NXXSwpWL(y$Y)2eTXA?HYF2dO+&wt;g~V{C-e_ zO7NT6SQV9r-**m%(g)HhWj2;cWv2A*43yrVPARjoMk)`b_i9Sn|0-0LVUu22P*kjZ z7q`+YD^$LRThl)*RIZEOxgom!L3I1W*y}e(4{nV;xE(1C;EvdXyUZ6Ym3v|j9xxAz zm4|SvKmKv-ofWavW3kkeNXh;pEtRKnD}=UGeinP@xmfCjSnB7o)GuPGmyyy1{t~wu zx7T9t{3?3q&DevtVyWN6QooC(ejiKyF_!vMEcF+pv?%`?d+=WL;Ap)Uj}rc|vD9&~ z)bX*@39-~kvD7KC)M>HQ>9N$AvDDeI)HhwVyWw5sT*RcAH-5WL`qX}bL_#bvDEFc)E%+ZU9r?XvDA-Z zsr!-AD*0gS!NalCBeB$@vDD+S)K6k5vmK$*BW??*s{(iF(?qU}eet4sP^i2Vd+-t+gQqMgQbu)+fk{M+9OIgZ56eLlS!#PmQ3nzu`=gLc(-|W zOe{4&mRb-?EsUj3jHOPFrB02d7R6F$#8PL)Qs=}{=f+a!Bc-LY7`I{?3zZ9Tt94~b z?Db1xsY_$2%VH_D1%zRT*`h(QSZ$SHo_#O&-F30l4YAY@VyPd-Qa8s^x5iSp$5MC1 zQg_8t_ry{^ily#HO0(+0==R~*JCDRtYH6gQlS>yhQ`Ndc^FXcpGbyz$&!o6+&eWb* z*)PXZzl^0`i=}=QOT8IOy%kHDB`vyI;F*AKsi;LD1}C*h!=&CbuN5mt>tTNN{jsss zaY$)Gj*o6nh`qz8c6rCGFyvgnt|Gt7u22V-w0!HC<8Z&Wj=Z=y+I2PF<_B;ThwPvA*Ha8VoD)(?3=2K z!N_TEumjIMAn=+VMz5$N4!F~>R6)N47ILRro=btglZ>}s02J7F;-EM>|L8m6tcqPd zW;Z+>-axK*_-*JqVZ+vo8Oe{7^t0M@*QowEPGIj{VaUv& z^cfL%N$*R19wbPfpqq>z7d&yv6J}G~Vo89TLJ6@G2p$4Is2XllPZ^xhHV1e5<);n) zuF}(9BMC{z6zSjh%ee<1WJo*@kzVd5vOKQYo&{lVz$H>oKD)t?qqfAF#xJ5zte zRQ9buKmo>cK+{k;mGwtU-9$mEflKLs>QfGEwsbi&4cB!AUwxw=JOGrINS}1iW zbatszp@%~13n_KoOqgiST+PIzY$+>T<*6-(i9pS%J0BU8?kr5#9cK5{9hlhcx^u?b z)*VAyLU&@Mg}QTg9^Ij5Fci9jg~Xxmm?-C5x^s`{4%b?1Z%qYh!_i-jw-)yY0|&YT zZ`|zGn&!1)^|v%FiGUVnH#`ht)6vBK#>zu`PH0DyThY=j2yH zIlF3l8de49$0*mGomdx#y$kILvn3CzVXc8cv$*i$f?(mjFe9N_%noZ!s9IR)oZT$J zoD7L-Vc&#MDa=ZV)hI>C7}WjV$;*#EcEP(Zy!W@S`=!906Zo^2O@7BdcH!m0j)&p+ zxLLGW+=4>O&@BDPrM-`d4B0E!md`9#$!Yl}hBD04!^Hjph02vHVa$Rq}eQH_qAEK z=doF4(O52he?#=0n+fS!^Fwem_pr=MQpzv1<--v@KQN^XZ1ZzhZ|*Cl5jCp~bCLTK zLG(F|D7shI^+hy`iS7!kH*}UJx}#|TsSWK;a+F0(^hz!J60{pLtQb*{BY&99>Mdix ztzvk9*>5@Xj+C@l=ER>?HGrfi&@iGvD}|T2&kr`O;BZ2RV#uI+iRGpSx9LD1JqQLB zpW;2MX-LfPG8<9fjv^vlxpg&P3~=!~ePzv+O=sDSwhuxGAVsJhN3m zPQ|MYO7XCZXPV+MyRYJ5+r8|HN5eK0ig#~QQ)u>VXkty;IDN7ybfqa&qpbrv@z}&Q ztwCfqxe<5bu_FUrgT78YY)CZBsy+TojhYT|BgE}`wf0?NK;)?jzZLD{oS4==j*&~7 z8zGv->}@(I?YlEw`(qfHBl)X1Iq zqayTNjzV-di*piENWO`P?yw5*bNFGICi1S-RUk2u$Lz2Qgx##=oYToVk#`#?TC3eG zLt3Jn6(cQlYOqOp_S#K*H56^jx0`A=CMEK#&cmX`Jk>+%&dH{fe7ZAXP`Yzzy6!N$ zukPHEM|W;o+qz>&OXyCFv`}|$&7(Vv4H*jExu{8ZPBc=_(=t3Ry2G<|wDIEDR&L|< zV=3j_s1&s)Vb0;gze*`QKS|@Fc2&$-%3D$jqmOhcW+%v84)Hru3XjXurEt6`H($;d ztIn7yT?$8mbC-g{jnTmH5Hwwi*(Ed=MNbGtjP%l_sGymg++8HN@SrJAP%$p+F+b!mc9LEJzA^nH%^>P>l-pVBrUYTXXmlOJQi*!Z1C?Lc;{N` zW;5%YQvcAPq>fWY)1=PqkTs##c4i)_^QgYHDs@9zqUDW|7D^ooo!x7rLJx)15xyH* z46|W+E{pMJv0jW2)^^8i@}8@dOU3T+aAIAG*_b|8DHlj7jBD0<%<=C*^ggy7lpf<` z+)v_4vd*ddwj0q0nQ5wue$z2RWeq%-3)D*r25T zTDsJk-B;=h^GKaO&RUhaAuS>G7-^x@q0rf_7ZrLaq>h8?LyKV!3&~|MzAF~vg~;x3 zA}Y6M`>xo)XQNUWT%Nm>GX)ne@X$6;1+3@v1HUJw{4^>>1;OVmi3il`Ju>gVRm1HxS{rqQ^l=>MD)9VfUvfKqhZ@R-3RpOyIdpsd7?)2#%v`&tRi zwq^Hh-vmW#)k+xB5>_HcT4*I!@hzmXO}9~4Ll7c+Uz3$sVWggCbm2|Wz`G+2c%QP1~8m{&y%u#A~w2rtkIo3PQ$4x69QM&FUgMso@6P}t~mX`^+`<#bqvn#p;EmWOb z^QaD6pP^8lGn$%rwE#A!Yj};+%~OGnuHkA??P^O&hDO|}n+|Vs>+$vWJ$>(TY{IhK zI;>H55A)k6&;2*woi#ha&MkV4BG{HW#OzG1VTlkkW``Q4bRSV;D<}ps7n4`M2{9`- ztx=SqCRP-@{A19aJ;aRFqy2I$OKc~RUaj5t_QVn;L#3yv1c~M5n6pG9DnWCnYKjtj zmoU5GJ*<~qhI^O%n%zroD?^e@ly?avafb@MB$c;Xf=f;9&(n_16FpcM>A_`#DdiR^ zg*!ZGT-0Lj)oN4BoCP;ZDaS;ms0HFVOSw%-;ieQCmnDOt=yoaP-Kdlc2UE%~#7p5m z8XA|ygDK@XDdi7QDd!KSlqEtDcmL41aLzBcXK=NYvMMU&oWYdxbD@ZPmS|kg8cZqY z2rjQjrEq{aH$}e_Tx5?G<&Q2JOex0*E-yv6oI03Nz9Xe@TNuq3&Ohd+=q4%U`KXi= z2UE)5gfHC8M&rU^%iOpeEx0@tmBJCe+@)M8rTio+W&U7FxmHTy7CxGyV+K>o52chx zqEa{)nwz3!Qi|+4q_j@$|B=(y-5{mhAK{|*6v7*i<)t%qZW!V=xZx;v`@$8qj1kYUU#ZiN9!^tM95h>*&l%n-Y?LP)w2G*+>cYPVLSsbDA{9sVIUr;$ODuuIfxd}Q~M08G6 z$}@v0Vq3g_~2Q#4;nIVCFPiNTa|wv=*WRLWz6DP^gYa(q+@ zX9ROo^eri6epCtvE^?Q0iIj45RLVnxDdj=Yx}!qt!fD0asGKLL{9jlIrm6B5@@*;P zh_H}*2UExiQpn+Z290bxVo*v*b2X6_uEz$Xn#;9p4qCwV-fLnK`Xc=j0ZZrakM10*Z|n0LxQ{=UIGk0?(P;{Q7=kfnnugw*O9oTOZ={eNm1V_P3L`Lt zoXE0jTNMj+2<<8cO}OnL_CjS_u|tT=g{GW5mhKrrX1lPE#e*s2FH*?FkfQTVAp=v? zG!90Zf_iAAP>1LsuWk=lnJC>(8L32FMs8@N!n%Aw4zB{u=TOw-Z6c=vF&z2TcBQa( zLMWee22lt`6t%L93(H|BNbWlHGePEqVPk~Q0#!)9#%Q}x&ip)UN9e<;jS+G~IfrB1 z|D9uq`@hz5H%OC}P~T>VdpU~FN?-(8mir?gDK<{DWn#v z-N~kqd}_DVpww>DRJB8HU$xsihuVF1Evua-E1`DHWQA(?A34zcW1)6>Chf$* z347e2gk4J&Hgfw4`*S&j{qJj8*qW?_u$##Wg}rwUVMB+9qKVuvvM~%U%H1kGFXmws zwpmAy50YA73ej^n*rrMQ&dQ&HkIqfL>T)EQ_{=yWtT*VO##H^zz?suq>k>3DRi*q8 zzq95x?Q|yl$+M?fmuNLPW(p!RP%}4P$xncZO_lVF?LKpRav+ETQHo#pCiOMW@A zP~AY?GtX~RX&@r`Yn<+{oKgagdCy#j8jsbL_kO`0Y`I!4i2uqa2Ls1k4Sx;YrW})R z%EyEhKRrkteR>aVD$~-DOqlR@t+H zw_d)(3hLD|n)+Y6Zu?yOD0}WERxn{^-Px4BW(_B~2d(JE2RPgWzeW7E;d#{SfS_mPLI_&$r>wn zZfTM`3SI`bpr?z`ivD;VvCdOGuCQabg2Mo%Ws?gF>Xpg8|G8)vE32`?o!|@Es;3j+1*YFrx4;&sTU{i&zGNw-Y>zl)lAf3qHT*E^uI1elXG59hX%L??lF)6mYODhWxtat{ZosM-KVT zGOHWo`nbhZmGof}-Kd1Mn|$$z)himLRK?mAssc9SbWSo|a3EhPtrldEp<0d(=u(VF zrGXHY!mj(<9|ySfVP}Y(qi(3f&;f=H6{N6aXQ};d`*Irrm*p;#Wv-XmuDKmH>RfxT4OFW3 zZ!KFFFR~Zdhir11eW87+y;aFuXixg4eTiMLw+#-Pa_DDIvYob1j`+$EJ05KxUf=wy z$J?!y&9B%q9rVQm=h<^Va;*L7&m1-T%hUdM#(!`3?>p?j`zLz$nE4+E?7Pd}dw%{u zxvM@b$}Zm3Hf%f^lS#Nd5j7tTaw45C0TAsQ)26;WZOyhr=%(QF`5$F znq;HRK`UXiDG6F?cI7+=zC_K&ZyWp>I~cp0cdbpVclI8`%mU5g=`tHZ$D}aDI|J+e z{T6K)v9yY9d8^DA;M>FI_-(UlZ72qwlkFGaJ+ub%?8E3R*nvOATkQC)`v(W~iW7l| z%*9UN)mkcC_zIA6Htx54H{R;PQ43q$ZpQ~|;;=~bDc(y}pOI}%K6>7~ zc`M+;(FM@$XwXq>tzfxNl2_MgUOlRLwWyg_VB8w;>ih(+&R4v8w0|Vt2Z8m21O(O} zCmz?FfTBR8T5DvV*gw54M8FW6dS-~4D7Ypv-&AEN?yF%l)LTlA&&02-Z zHmLd)XIYa$n&P2$L2cpwFQxDP&+q>y51kiE9&DqG< z8rQRMeUKSgpcmZ9n=^3pGH*`DjTLW_F4b!AuvUYULp1=}r$lNnRA^)GnxG0)a8^L@ zJaIa$FHYZD3pfo2DmZx{_%U(9a>C$Gyg3;+kMrgv+|09agEfM|J7&j+e8UKPFN2k5N_sJ|M9jkU`jb5}C#CA2LTLkU2U;h7Hs% z9+ndPqdI550i$*V!;Z!EqqrV}>uVG%R!jyz&dHug~@H<}rw+xpC*RPeapr?ix9`7(ckmWz z{GW30D_;M*99%>izgP|~;q|}D!5O@Mp&Xpa>wlJmD|r2UANkE;rQF%OOpEX3P<&{e zUx~ywRIT&n5Z*8#g7YbpwLxQYxyA&*BXjY~2$MmyX-_2-=_#d1#APwL^11S4jP4U3 zcPI81Vd-|<&4c<0Yx*M8HpOc~h^)b2I`=KX+KGC389zU4*#f_PKBf$Gf4WWF{!w#+ zQHR&tg1Ni1TipgTe;D!w+LIu=;o&c~H`E2-^Weik??>R(8N&vNh`UO!U~9^reRE(iDXx<@%UnfbeygY$XatsFee{7;pGW0;;&4qjk-*K+U; zrgtd^zh-*pa&Q^bjdJih)1NE{Z}R$ya&QjwCzpc@c@4_Jw|U*E9Gu7Nj^*HDUO!$A zzQyau%E2kT?obX+;&uCS@Hdw8(LS>Oykhk!TJ{e&%O3k*uYnQ4{y(wy>Q*ItI$)4D ze%l~(53?;YesYC4QagKSyTqCScBF)lD`8_F9aHNXq<#$RXya}Jw> z(U)KxxWk<{0dyB{hkp%2^;3#`VmUaQD)5nV@DrxDDF@r)vUNGw2A8eM!S=XpSq?se z%YelxBd9L@9=GFerSuPL>>saY*=&aIZs!+IFAi`9>% zs(!%7+yRKx`XCa#Ux>iW#t^wYMC2D_$=Gu6Hm@6t6lG2LW=fFn<7i{^c%mM1bVgym z6XTBi26Ya~*P(8oA= zvEn40;wOm7sB-XgUe_;U$vv(k%fUOmu2&B3=5<6lc#hZM<=|dkhn0h0^4ishf~^$= z2Pq1!4k>`^@ZE@lp>iGIs&)YlY|CZ~s(BzU1Q=p$p)$0ofWs``j7V=EYe zBM#v|wPMXmQsq9>Pc?ks&?x~89KIJ6Ypvx9_tmrl1O!I`7eNbRTU69^6l2lG>8_UG zh|hRWvsz+l)-$R`B76h>d&y_8MlbR=0aY;BMJ0dDo8M1bMj zScFyyzK-*{QLS1qzl$zGFQUI%WR94NSOpi;cl)dk)qQ=6*GX6gbjnVE2!d4UVf3p{FG;9&Ctf14M$-@L#Z=LOC=FYwiQ zf$Po-9C=>g*7E`KHO zoXW=leiMJ&`sJ_iQk;T_zrypsGk^ct@crk}-+o1p=+o8qxz<&#c;)(sX68EN1`0YJ zDE#Rknsc<|K76Ki2L1hvef#Gz=>MGh@XyBIb@;wtv8MkY8e6WI8NBi8yIdye?PDhy zEP27SW(&H_f3GgwKTnGUwv;PsN5sEF*Y=->FRCS3XX)0Ya{iOMmFtB6ehGh_o3?Ho zv3XqXAKL9%Bjf@M;9}UAYp6D!WOv9N7T~(2%F!4u-$K@imn+y4F!+$Z$JwL(e}t`n z`hSSiIWca}Rp%Iz_ujQDf0Ya_N5@vh7`jIY&?XquFYN4n6q5~Ds&ym7&A8;Zj`^`4 za*uSihSkPYgDl9lWvLdv#8R#DEKD@CaH$rSX|C0bEpM}fLiyzQ}y zd>LG?Zn$39%L$02A+x)8}5|OAeL;Xk-^U6BBmOU!7f$( zaArq^4B$t|+&1*c?4*&Y0~uAl(iC_ng$&?F$lN~k$e{BgoEZURuv1k(oCy>%fFB{V zeCUyxtdZFe$o#QiWF{+Q06#+JjzJ<5__fvnY|SSWLKU1Y+z)3yp^yRm2$?$viOc|q zU|TW~)B51d@B2mOlL{HYkC3@*=#jyR0)ot@K<4d!k!dJo06#+J?x9C!XN^n`kojG| z$n30;0sIJ=dxjpFT{JQu1Tw$v7nxlYGJqc;bMMe2gVQ5KOzQy|tl~l2y4;%Lbuh@H z1M}(cS-W_hDi|(if9k|)XYcQfe@`oq}?0t)RRC zP=2$okTo*9Dj`Fzk&u5h^g_l?kRs$wfXo~HA~QuH1Nad#_YFNV+=G;^*+xL-SN$UM zDTNH+N66ei^vGc6P(fxhAcIrTllEJSX*Y!o;77Xa>RJ9#5S8X70?!c@Vt7!=&qMzUp%WGFc6Ce-_yI5wKM1c+1_4$9gm0PP+D=pi2k|?v93ZSD@0(|u)LKE)XqUi z)~Ts`ZVe_6*q`UNV0^%P?hGam*q>jdAMl>La#i#+>#4Y(ixaPWtYpIRFV&hQY4rS6 z7H-z%a=v#RA4Em|_4vS1F41+~gu1>iS6PC8Sw6_t_Sg_cM32EuZTW^Y4T~Bp4t8jkyqf_Tz#&ii*p^(x*-e*pUH_2$YGn=CPVfZAI5Q$oMXgslU(WB zs(|ya2@|sAs7>r?Uk0*ucV`dFkzpke_2V*bsKC+uDL6rbJKy7Mbc{}8xvJjxQ62E9 zVuo60VP`8HGvubm3%SwQH4d==y~`&13w&=GH=@GP4%o{r|BU~5?MK37ZilgjkP?nrVy)nxsk>QF32okNx2K%q?Woo!BkE_fj-IUr3f11nHzGx zDfT_U5^}B}w}TNx5U0SYogBCcn&fy?{92LvU%;e^z-SFRIl18i6h2_ZXvGO0e(PtD zfV;K$PLf9DK9g?E~$QUtRT3Atw6*a>CYIThjZ{MxL}N%%eyh~RAsCl zzMklez!e9NKoBKj>HgpEHY%eUo@=d(BdaI8*6p`PmcNS5S z#+RU84RPsXM;>#aEA#MKfS>9Ya4Os;R{5{3u4fLMS+33>0kPN~fc2Phcpy>8k4vR* z3es>H1c<#P0Jz?&4wWsjcH>Z-UhXi!+6~*|W4pO_RlC(WG^pEZ!?}_~1fm#31Qut3 z)7x!A@6TsnIz>{Q#n_I&23g^Wd-@w^pIL^4$so zDR87A`Z{PYOJAu~@mU8x>Q(#cdVUepde{Vp7SZKLVi9><&^F-_GdqNLXh5mB>adw^ zzN=23QHRY;5bf@Sb}K!v;*KkEWc5rp&YFQagf(Ub0KuaFk+!0l#`0)X0-)cwadde) z59|@@3(wkw1h`3&60x*OoC2*RPXa`fv0K&PA1?{Ktii*=%Z&<2T5zcgsNC{ zoW9IG0VL#q6i#ijYE^Qe(#nlyTpXMUi{2&{9koNdOeWpJw769;d~%du=)S-}L`NJ& z23__?#*xTD2^&z(A}d5;s1Ht{2{(7;6Kp$n))e=B0J^@m9KIYjBnS0UTHs)y6B~wi z$k-I+Exe8g4^f=RfVB(md+iQnhz3k_d{K!)coKq-yHR)vWuA)_0-)RKzMHkC%FyADrj z9?x43ethh53-*jbZfu7p!}Wt#TSrWGk9+8m^$x$o_xAQX_MBBOk3k?fjSQ?s@JIF8 zChD_xu$?GXH^UKHTl5C6!hax^?OZDdn~Qb`XN5@yjs-!+s3-#(w+&vD_Gz*-R_)lm zj4z?7GGC#zQF!Uqo5+U^eHeS5fYI)|^2R5bff7)EVe%$A6Oig=s)l30a7L9b)<><~ zN%#QobN-&NdF^Oh!Aqdb=noh>;!)jPS#KCPynzN>Xq4}es@8E1tmMP=;r+LPDzz>| z^yNMLaJkBAG?D!TX_w zQ8MKBOKcVZ{bkf4(RrLO@Ba9HB;($Pm#HCQ3+vJ0un_!4%eI&l8o2MDQ7x zz}ltW3I2){-uwxpViT4UsZ_St5& zQGl7^{UQ+q-VfU#6e7OXB640M4qrr75ok~y)Jwu3oQ5m##5cY>-Y&A44c;kIR*LfQ z`)oJ^3+Re+StHy{F1VraMTMmo+)N3fgKh2DcO7*`5ik$*D)fam$QW3lifBr4qc~!8 z2i4J;1ID6-S%{*jUyDS)VY>>RR>n=1;cv0)t9O`)$ZEIQk>}^{T&s7EFfvv$0=~Sd2On z-{Q&M{s=VoZK|;cM5XP_I=<9#OB0T*?0T@DG&=TQDL4xr%RWR7r{x zE8JHnPB))8Z6(fjh!dfX5GM_G&5ntay_XE)9AQ{hTTh7-Mo`3w#yKHQCI1n^6X*^Y zS*oo^aZ;I};o#tUe#?>dk-}NOcqEgbU3MgxK4Nd&kJxJrclyLxor=X935$)SDgRdG z%hVyl34Y7oKy6!*?+CvLS^34i#!y0kRiBTQ&x4Jj?QZo$^)?;=2&HNHdVPI=_-E^F z{xHAzb-!)d*CFg-pT+0H)aQ$j69JD?pF`I83@(w_7+4|JD!~PrprpD52rT&P`y+5y zqAF6yj9UjyQ+eo98Q(9=11F7VCwb6q)Essp#f1v<@NGf+jbR>O6sX*ApO~k-KX)J8 z$yu~6Y>xT?&o)(d5qCcC*ew?Atg`0~|B7AY4!??@4)l(_Ws{$>j;fE4?s3T;Q7mL{+1+wDwV)3^7a{VxR{>m6@d+Y8ViNyd&Q_P0u_ zQsoui86K>-&%^Z{3b-Dox~!K!=JAf)tFJJjj6w@i@1 zr2>ce=DE_^01MSE_`F}DXYoa&1gpOWdd!2W;lPI(XDxg-;MgW?+jwiivjHiSqYIwG znA7BAadO^-NzSv5vlB+-WK>&TzckMJT7Y9GP;|F*DC-`s2f_sc@XiQ$E70z-?phR3dO*9! zx<%bbXrBhOSD_;*cyk9$aTf3{kK`4+=i`m#s!sKfI7R`Q5Qm`pM;zPl8q62M6btI} z?S627tO@rA2gJQE&%0?ml5Drq*p89XChX502>UA{?3Wnq7i;WGA^Rr3yz0@v+;G*o z-+x0YPQ>noVCFo-?$+>qP6r^UK9JfX%;zX1l;(Jfr-}Kg=%ZuOgg%_y{+WMAg#L{N z{p&UQ?GZW{CxMQ?xJYzd6z7>F^G^h3==dqcSsf)x6q$&D$KFKDeFG8mbVSSwL(D_{ z5%We9F)s~Bj1%!eUzI=u$Rezj7e#e-mNZ;6ZXIEAA1NM zV~Wzk$vXi|Q&TU~Vq06^w zHaf#y?0CQG)YZ5Oo|*4a>rvg=tYC<$8&?cb;g1Ya35FPxVi#7S%LH$sC*Tm?ZemlL z3{WknvWevCwi>brjsinSZ-ShLG%&?izGX(J&}jyD6!Gm%-)6!Z?{nlu#@9kpOeV)7 z1Y?MpLpRN|5WFxDpW_h-F%&oJ#BvOr)2ri-oWyMhD2FHvj`%=v>Q*>G-m6D+FSlW7 z;;$JQz{KsU^z11aj4#2E;3a4+R^y@kDh=vz-i@eXo~eexi5lcyYsc>}%rp&`!6r<6 zTQ&4MyPZ-E+QyU~=%8vyHIpX9)}HEd%2P!TVZ3#$@>DT0v%3Ue$k2oZYlE%|20x&L z7KU{;faVR`#cRO`Q(&Wih}6!W%ajXu7V$2ez4a}1&mk$OlHWeX8|71t+x$-SlZGvu z+_Ip)o^+E&`RiS-Mgcg5jKM9S4VWVdb0qqlZ5U`dv={x(_5C(AhuG#1$DC1{8YAJm z!@0%~uXYiX@VE`1sNuu5U{0@bx$zM;dRP6WHjERQcT2h@Y~xJa2+FJz>_N5bLPra= zheU{Up&?BYser=}M~U5I9PYw%##F$MW<*d`ObD+gAG5tO6K}34U($}gnsjSFY0O*8 z`?kJz>MO#xB;TaXa|0Jj5@?0N=mm5Ge1~`-t35E*=NWb!wX>wynE@|AlU*Ox@QVH@ z)#t>AC1@WlHZ-IaqDBQlr$?)j6{%9d&;zJj36-mWcg9-_SBRqsb?dg~uL#g}pvI=t&(D#MH_OCDP)EB-Osf^JQ%=uGwDi9|w zqj0JAPF_G41@)FHgf4d%mBbSsimhal_}4}QC#VC4`ot(!+tphffUUzCplm)=EsZh@ zGWso+2`!H{@R+HjJ=VPqbeUi-;FG!AA`?FRCvib*M{@xucz5U|T#`L`ndq!!(~4JN zltv>5#;dxmvT=mY|xDCMYu05vt{K|5@J#LNH(l34x-4pn#gBP4`_*m5+e%ddh97^~S8fgN!5 zNPYvcXBdFyj>M^?vDZw z#f@t+sk$|SAp>QQJ-!Els`e}IscF=K9@5=ZC8(4*P_fz^5G|?A#Cj#G1+J)nh6*dt z-Ey=;@GyjbY}hdPgm!vFR7WAs6IUSSjpJnq(+TLdfZpNtuHZ=0+vTC?02t%+Ec%2T zWLpX!-ESL*;5$fxlwk6M^;uBDUvy@w-x4?FDJMAUumFd{!&^i+C|(t!Ek*Qw>g*Q! zr8|hyu?Xezf)0-L0Y(FgjL9VUF@r9mHqsx#A=i;8s~q5XE5BSOh(%0o_6MD!ZV zVJYUNf+?-DN;#q8!+nFTrk=@=rEbJo3E8+~TsC&KFvMvBja}XT>qtMyPWdC|x$!Gb z{uaVX>iF=gw{(Ceb&?Ve5Kl>wC_%8M@VqdPA|v@)XjEb?wK(h8DpEHhx+B)%8H|`F zHo(-UZ$ToU7W9x}kqkaghaqT4?W)82H#3`@uQLZl<0A5sET#;zB-Fvo zgNLMtC1k}KkQc(emO+RJdy`B1Ehqy;db7>MFw~+3zS40;q@$v?&RAeY16E(iWQ#n3 z>!IlcQ;a_@PvGtUZNbb z5CQEk79!v^Ef-JUj$mkk6Wj=C;k{O!i$NTQyz<>{h9Ed>anXu7!Bw~p!}S_mhvRxZ zt_*>_5!dx_y#?2ixPp7|^WgZaTbM3}IbOvs3$EAWx&Z{{a4dKfeRBm2w_}7XiXM-u zj2KgoaJymiBe1tcKf6Ir#5{3HrPV(!+_;T!mMK0~A;rL2Uccv{_h z1CCdsuLrKdGPh5*{|!Rlob`g;W8U6}VPS#0IfpU@wn)++3zLg)HV;-fs0!etTH&#I z@Pv#+(jd36Nw5{7lCO~6oG!W`9N4uUYL->&VKAoHYQsE4ere;=Z1Ynsew#Uxu-kzN zp|U}J^v46+&Y~HEP#p5aqJv3n^PsEn%*^;IrcrFVP*g&ew5g3C|Dxe5Q*%LMgyP%E%UIqk|&!kONQ5D@#qUfN{hzBt0)opyA zua0f_J@j+Ns!#9)&#S#?N7Q>T1)zv636xnr#={T#mN*{LQ6uz~C5e83QB%_x2gD-b{W_$@W@S<0~vS^N+(Fx)T$4}&hkuE)(je_1AzhBQ9Y(n zR>3cH(rP7oWE^V57Z`+r_ER#%TWOZD;vAqsL=Z!SQR$VLCi*BCb&Ox&UhxU&BL@}J zQX}R>jb0aQq>6&If~ByfaJt4>K)`p=6qTf7RHlm$wGo$$>H{$$$^?<}09|75>>k&y zN>B+x7;Q}V$fSZLegKVMw{ih&P7WY$-)3ApJw*1m0L5m+I)XO2cOJrOab1aPE3Pl$ zih+UP4P4>s1gmgu#}z@pvduYTHsMVac=4nr)vzW)L|3ep~ywANG}v+8aN`| z0b+$tz9TFkL3q$v_xOtBhGbx{OvYrnyF2Pm`I1(*U=}|3B1x9T9|@X~DMJTK!0K** z`PXNj-igC44(}hA`(QjYmWCG5Z4Tqi@VLNT4P~JL-vuUx-~+wTOBIMFFN|dx0aNCK z^_f-yZG4Ue9(>X{8ST2Tr|!VYqA5cJCNG6xJd6$1Nj!SgOBho1g7%!M__Sz9aiGh5 zvnuOCWbGZg88YIfiA5fLDl8;F;}>P{l6r7?Pli3_k{v7-!92Bym^b>q8-XtancfLeab}_raD* zG+f&ki3ZJwi`veyT80o}&7zWlk`n^lVsfe_5< zORd3MbO&@zV-`r^L*EoyK$q7T9n<1)p>Ei3aL}AchauT-DA2SAefka3fJxT@$f6_I zN=UF!(t~JY528J|??@~Xwa|r_TPyLgya1!mE<`!l6NXU5M^MFkTk^l;)^b7zWnX zxwrrfRAHXNPBgS=iI}NkNrjH0h_X#c;63l~jJboRlWsIRjhUc^YH(slV}TVFKa#{(7E`AOVC82F1dZdQ}<}6RS$zo#`SejNYPB~ zpcSC9;-Jwl3!St@wp#GWwayl53k(kDAg$mBci#b6CERt(I!82@dYapxlk#onkF8*Ye(1w)O&6ASO` zv#`G0g@-~E{}ifEJLTOR8xAHaBpOVNhCz-F*K2c4IPXi8DSSOajEI(Fyf9qo54T@R;X3&kIv{ALW)DhV8j;$Q@9l8cxpjRMWBgwIT)$W(A)hwFDs0 zc@gIqKG&P0Tn9c^s~J&kml0KJAk{EhY6{lMv?Vnm*pvWhL4*5`TQ1PrP4~xdnGErA zT}p+EP>(ngi%~tlvbXOg7NN!p+$=2c%{~RTW20>uMky;Bq0+E{9nEQ|Bs?_M`gUHH zOQ#Z^FutvFN#!*_8^*Lsq||GYg<`N2AeM!ahRLXz6vp*!%h5}{2HhrAz6P6shAF!y zXb=Qizz7u5FiH^|rL7#AivgLS8XW#bn_|~xr8Z_3dH|jd6%J%V91Xvc1d8km6VU!) zDgj-?w{XR6PObJRm#Tx*cS;Fi4u}UofLWLW+PjbwI=|=>VsL3&a-^Nw6)qv@K&sAA z4xvmV(E(eDl_`=LE@=cfDv6f!JbE%-5;p?7El=CZ$Pn4>WFABvmHZ5M7qWigIGoZjmRZU z<|Pymu4l6XmV=e-ix~~9icW+wr_C34gCD72H)zyq~ht&t{JEquv?#oir{ zCJ<%A1T^V_9$9F9ICOx37kp*VG+id7!C!!R1KhhTJ^3R=Qlk?QVcJHy#D2uK&r z;m*&Ss)0UELDt3*H!uuqF`?!}kWX+k0c*e&V@j$5fisnw-E42voPv0R97*M1M+ljq zf%Zc1n*PK*^86tg5mKrl^gp48h^S4H@vLMh^RPTU7@PpzL-eGBiy9i}=I}^|Y!+SZiH3F#rEe2<_h~yt%oIx-BXXJ*ONOJRA-KXQR<|?X=p!mTJYM-;ITA!U zER1X5Y1v_OAV0#CnI4r1Z$i%lv~y}m_y`X{X6VRC@{$89;yt5*l;IdyJMkxEbUgeV z+>_5OaVVDCAfU;kP~eP95v7Rt5+w-j{3szPr(y}ULL(2|kw?@LuuTigAdQ;R7hiZ5 z_{z7j#c7cNnRzsbeA*wDM6VF&f0N)bN13+(d%WzKGTg?n7y1F*7XgE5@(dEKDw6?bbFi$A;PW|{|3UwbAkd35 zV={OFjXV2yE$rX5NdHcl%J!2AsycWW+K>)j>zF!rIzuM}RuYy9VISSV;h@@zj%e9fqfX z4Il7`CaE>F#4jNwGjw9E-ayLq|Jpfd$QnXsQfv(Mx{p`ru!t6YpA}5QcymS36MXln zQm--m`0PGd4JK(lw6%W%aqi%ONDY5MLUn6tfx$A24vwm~C`O6)g?&L3Y=;G_W}_K3 z!XRoyl_>E_t)s41w-JCi$ZBRBj!2_SVmwS|q9t|J>T z6i+)vS&03rN3I-YgGUqw3_$d`xZA?c_8zcT^9Cc&cmTET4eHRV2vx3AKL*1gSUhAgg*{24vXH3NVVsmcTDc zt8H0$f)%Lk+5?a@R;e~M7R*wOg+&z1w1=<9iI$^%kO8B4wz`S+w@=y3-ilp~Rc)%f zicTc~SMPRpu8A5V^BWp-2GB=H7LLMb#ZWv~A z40psN*Y_O}WjA9I*y8KTrg9PXNPk4RKB$5!S1PAomCuT)asif`*M*f*K{Kn!TiL}qm*V*SybheU{-2msEm)MQCORx-Pb zgv~CNN=ejHri#ITE zwphVCm{pZQBYBhSc|855%|UMViwK$!AU&?!#JpM?M;-0Xva-I)uIsfiV$(a7(e4DB z@H*yt)i_-ZMM?@xIw+FG2%u!s=mZzy z9cP@iKw_PN?0BHOy}g)dLpY57Sg7uS>?G?H+y_g*NNAjqx5|L38Ff$@P&d&q(RO|U zl@t97Ga$OyB<~6gz%6koap+-@QP!B52VO1Xj7I55`o10+b z@<;#-t~rw3@J?2KVFiF`R$wj=ZzOnup`b7`WQGk#$-EhI1H)KhW@!5C;KndBw0ww# z()NL~$HXEu5KF;dSSQ+w#n3I>GQyd2K$t^ER}}T15meMW+>X=?R?lDr7)qsdvOX&I z43>Z~ReXlq4Pwt=4#wzbxQzm+2oE-4BmE4w8=LP~pBAG&EoDUqF$W|J?SrO{mC-?~18<@(T_srQLTxj5Ct!Pv62S-k zv4-<3bi?g!9Jnk6!0XU-TizsV8FEd#`JtwO57q!+yM-TxH>t`~ALrK%y7D3D{;*$* zWq~>4ecxmeYhT=&&7^{0`dv0_a)b6gJcQkG0Xt@P+02Rc)8nr)Yp9xyC9SlQ2to0i-ED`Vi}8}HHUF58uPt5ZngPFNR~0*-MH1}`vc$xTO^1DK5}zo zBH7>wI|a$62ZF93JK0cyGuUjiPqPN@u*1;Q2-4s##8w<=Y1r*$>rrG4pMbiBnhz7> z>h@zxFp2F)QQ8kzw;x*}7yV4+o`o54JNREToam5{Xrjrt(*OV6ySOw4jKf1OSS>uj0O%0fHgX3OEqq9J7% zkBLB}4C66*j+9}%CC#T{JR+J6<4X`KI0JKM`C9`A?C6WWCjzau4q2|833Pz^Fdf?- z(F-g1_+%ycZGqpW7E6WgTa}@isunxJrK){E{G?XQ^}-6feprb|hZTEFSlKrU4M13# zFV#&7EAt|CFAeC~I-iw)A3ti}qP8z;7o#>aYEQ?8p(A2L*yO3Ui@Oo(7V&J<7-8PujwA*2z2 z?ZW;BAWe#hw;47vm1U$m(%fbM1lx=P_AOtEkYX8!GV!=!4g{zMDMpn4>^Mcteyi{a zo8uP5+fq@_nEx&@)Q!2LRKO^fi4YiUO5#50F5yjCD2BK-411`V2|1mh$O(|J zOumN_=_)xp;XMv+HHSE{RCsqB`Lg5%#%3$$y=7|{E9wTQWpso?24H3%&9C3eQ!K1y z^Xsi#2ZPZ~BH*weYAvf_&>98}nE^)MZNZL(D(qM&OF(FWDO43%Vv((rxjAI#vGZ9h zDB&s3`t$_G`l3V*Z?kvLUEe@Yh%Q(pXn;pWLgQe#kS*Eji*n!48;mL`2f=w--QqKP(y-9{E7T7rn2NwTaQ`iMLR-mnaAHDNQ{9pRU1 z#-^zZJ8&hE61EJJ7~G))JtizK@NL~5U^)(;iTmzMJ^@=Rps56GY@LnG3K^?hz%a#E zdxIT!1J0P%m;;aNero^y)^3>dU`#nSy;TTcoD(0SmqzQOHhe(4DF84N1Y<1qlJkXv zI2dE_2{AYt7+^9O2*`5%pr%T0XUQ647HD&qL=GqQsHuCK(qS4y*k<=i@GxY| z#iXzxd$8*WU|aBsvs8%%oPx8Qqi(6GYPy6E;nx7jLUBIJJYgtUa3BqkCH0og$_MaU9mM8`*GdH8DyzHDNVQ8`*GB zN>&}VO#lK3P{B|f$#wuaR$HNV5VujR{{Cxy-#+`C`kTX*&PpQO#l#{L1CxM_ypWV6dA zOMQKxK%D)h;gIVpMq*=}h?h(_yh%<-NIN9^;&4^hS3n)xWT1;}LGH@?Xjp(M2D(7* z_wx*25Hi`J5nZUu&S4Vtx3y);SJ@*i8uogh@Z|S_*wm64TJ zF|3T;HmlvzrMj+kOPv>cu;nz2jkpDm2glQ-=ZC z4Tzc=-mh*lTkXO83Y2>=9Wu){9ekW9tykN$a6m0%rA@0GG;OoUE@Mg%4#Xz3EG{o; zAuNf~08(i}XL3}ARpgh?(F9~X&P>3pG_m*0j3K4%;rf0&2&nl?!IC3VluOPE?tpdN zEoo!9kM2og0wG?YVNF!-!$GVBUesnCeoTBM@I0kc@sp+_hSnw3^jSW0xMwCZGw74ue|Y|(IR#Lg~o z1Br&VOC!FEr;QllqLDa1jjl41o#qF}6L8ZEXNlKz{Y}fsBmJ5#zQow=i_cw=gSZ-T zLVlLw_Qe;RwJ(eu#AlK1s^h+f$wR^-Igqv>a=@%+KIiU#s+Tuk?n(((7KD}55Gg2D zeWyr^!6L%$-K>57Bj;(J8_2#$1t)56edN4bdbobmu8Xt0W;75lekng9X*M=%R zAY`v!sEvMGp!Q{-9qYf_+5wW=;mF%y6AOiLSRVtS0yl36ur>vFyQUxt;#08DoHG`c z$?zBY#ZP_y4TMp;;k**&(SC8l{}-P|kRdNN^j<_j7(C6%4uco5g!OgR*N^=VtRr>E zt=WEwuY;F##R(Lnhi$2L2E&&GhW!SkDMD=rgG@s=Gjl_JshP}NrqmhaS3D|11o4qa zUc%Jc|DcbbuR1}4KI1C1Ao*fs`G#bg}cKw(V-()-v)j;$wugokQ0Y zlSGlGtEWG{@nfG!sgkQsHjA_IbNbUiI@ng$mHuQf$`#S}D!J$NjT%#yHRr1}BT6L0 zXrCKxdaj7rX}_{Am|M+`Tvkru)`|LaiaAfDDL%7(w_A(&++zFIlH!h>DiOjes?^lN z$YkNjE_w{IH;PrvLn7`Htr6`Ra%*}|HC>~;Sb-KIB|LzPSgumL zx=J*E7Lc)k)g?;dPtzqzOCz9<&|MiAqUnc_@kyBEAMkoLL0RVrT?hCQNKBc(y&z%j zg&+}KZwL@ZK^&K_7f;*5Q#lO4Q|$-GQ}&PWRGGd)P3+nt2^<^Ch{DJ{T}#zJ!S161Br9`9ZETqjntCw-Xx9 z5{qk}6{8U$vF#7NOGqcL&45W=PTjxe6!h0u8_P%=d&s6vXUP%I5$ z6sb}g0xHAVZI#&(2-BG%EVHE{I9FVPXKA-=7PF-x5@Askhm-P2bwXRR<(>B5jFupT z&d`x9r$*3^nVDc7E@$$kUo0eF+f07buC2(08KtgeCX?w>#<@(=jLX?@HkAwGJIn{P zE*aPk^O;zZr$3^tFgGLSjyu?fATDTBU48L|I?wS6FQH%Iugg?$hI;%Le&@G-<)8oZ zkNwMk^f0q8lnTiTbM|x`JPG+L?=Q0Fhx-Ss zcJQN-z#4Zb)IHeO-$7WdNO9H6dFgik`+Oac`R}P3ekjbiP;AD}xq2bRTD<>|e}=Z4 z#zZ0bSz+SH#fl?^$lS6~@Kd$_`!}qljA02v=IPr1`5RWk-mrxF94Bi3`ZuPO@n70C z6;5n>Lv|~>VY#{+*c#n<=9z7cw9g%7?sJr>P{`wsG*b#$tUKCpZtpD3RG1#*rb_=s zSl&(*ElD=McV_7TbP$s2zeN@R1l-{$pQn*U@VPFBXX>x6gq=jN>)O4Ep4a26qj&N~ z1aGktq5pROyzJF3&P3<7T*&C!O7T;W3_;A61(+jHrz@*$LFmwDbcVLHDxOfGOF!Bj zU5#t6Y@sW!XJM+>TfCt&t^c=Cy@ifsg(bG?GgY0m_&fhs{J}p#4coql*a+wHPh|0D ztdgHV@WC?Wb&?v=cCes*A{*!I7@b>RWE?GDbjA&yeU->8mMDr@R=w#}bi?1ECuQyM zGfO2yC;u;XvJ59^{Z%4eIzCc=V26=iz?FSC@VJ44>IqzNP|YiRV$+KTXdLXXU-%== zDkNs(2Y&Ef_hngZ=>U+a zUTSB6fY@g3bKs~{88XqBO*F>atcVQDm9<}ei2oR%Y4-dpaDLT~8%bYe;-3r(!WpDc zlIm!Ogd#q&F_8=!yD7 z?k4{&nmJzaH6rBW2FqxVF<&{GLr=XD8e#(ld`!{no;5|Ez08?T(IA_yS5Pf+%xMs` zMwsN4C){OHo=!~(^ z0A2d2lI{?#%%k2{u9XKC5>WfPy)JuUGsd0hthBzs4JH=pnrvx$bz zOFCI2#9U%6FGj)QlOQJWSJ}>;C<>ShY5*;-pU;l`8NemX?#ktk*I)7WoGog{kLU~( z9ZR4ya|~O#t9VZ*EiFSvGL?rs!WWR8<8`77sfE`{wYPTdK>5HR*IWnOjb1Tm*Ht@k zPYX{j*y0$$Tac$+n~8zp^CXAtoaRVv1QAS|tB#NA*<9t~V7d@_xt;Mi#uv@ma7`~- zw32N-fS3}gg=U&Kvvb%+CrKB#jf1yMRuZ#UnybJ~=}IF8Iy=kgBy*xXg3p4yWDJIY zRv?bxRY-$-No@99#)r*EL>BBWQ+DT&ri||z7ccwNQHjGAnuf+rDs*Z045lPP%tG^k zj@Yz>Xa;M&9GOWh2D1w@VG7bkPOL2wOUtEqbb=a4GCC-W9`e z`0l(c^0Zg#c&bvkW^`2DSvOTBJj&cumGCKZQ;GXW$*{$eOGZp?D$LO!RMkyIRHeD8 zDCr`P3{r=reW44ol-Ea(LI)Dn&JG_0Flp#!?xqQuym$0Vp$MTzm|tp?ygkt;MG}t! z=8?XwXLMmLOGTt6?pqLoTaKtcuqzn~?8g%oyAvR=}j zrZV3AY9Q>RNh1T7nzSh*=ADh2G{L1wlSbQ;E{%ApAfH+PY{FY1;;erbU3v!bP3|kr zVlA0Zc0l|!rX#nIBYv!w8qu{?;8f+8g!oX$TZ8y^dXR)8bA9Bp0D$=B<{Tx5EKvyn z8H~r3h8s?355)@|`QW;E-YkD)hkX!L*q>~H|83zvdQ@YhCj7S*Gl5nnBUQpHmqUuC zBKJs5?9)ngD`|4tJTnH~0qcgV{gm+t0z8DRD z)o`K?6iYR7stkT%$}`G6Y^znOKg2Jbs0Rp)Z*n-4J+Yk{SyP+S;*X+4*65BdsRpC= zby4%lODgT@H)o`^X z$A!$Db1SmVdGTCat>}7^EfU0?b%Mgf9H>(#=rutr!DPD=G?K_ zsH|lF+whij7W z7h}esv>>pFNvi-u>ij1wQV~C!R1~X%mYKV<6?_t@=+$hyJVC2^d=~);|Fk*@=_x*u zo84|;QKAH{NRqYSmLPU+xmcWlLwMtd5K$D{1gH?w^U=fn_$m4F3QB&N4M4673>%Ol zs7*V;C{mPwZF)o*Flh)XSPNtV)u@A!7ArS|$u#MCP+&iqb~LxJfAc5b zs1

    S6Nt$e+?}zZSAt0LfW}?ta`&3_+}n34lGEyB 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

    +h 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

    *O!?vp%WIqeg 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 z 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�U+8$v@;q*#w6L`dNjVGUBA6?4~;@KCYh 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 diff --git a/srml/metadata/src/lib.rs b/srml/metadata/src/lib.rs index 0809531a9f..fc31fddbc9 100644 --- a/srml/metadata/src/lib.rs +++ b/srml/metadata/src/lib.rs @@ -110,8 +110,8 @@ impl serde::Serialize for DecodeDifferent O: serde::Serialize + 'static, { fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, + where + S: serde::Serializer, { match self { DecodeDifferent::Encode(b) => b.serialize(serializer), @@ -187,8 +187,8 @@ impl std::fmt::Debug for FnEncode { #[cfg(feature = "std")] impl serde::Serialize for FnEncode { fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, + where + S: serde::Serializer, { self.0().serialize(serializer) } @@ -229,9 +229,55 @@ pub struct StorageFunctionMetadata { pub name: DecodeDifferentStr, pub modifier: StorageFunctionModifier, pub ty: StorageFunctionType, + pub default: ByteGetter, pub documentation: DecodeDifferentArray<&'static str, StringBuf>, } +/// A technical trait to store lazy initiated vec value as static dyn pointer. +pub trait DefaultByte { + fn default_byte(&self) -> Vec; +} + +/// Wrapper over dyn pointer for accessing a cached once byet value. +#[derive(Clone)] +pub struct DefaultByteGetter(pub &'static dyn DefaultByte); + +/// Decode different for static lazy initiated byte value. +pub type ByteGetter = DecodeDifferent>; + +impl Encode for DefaultByteGetter { + fn encode_to(&self, dest: &mut W) { + self.0.default_byte().encode_to(dest) + } +} + +impl PartialEq for DefaultByteGetter { + fn eq(&self, other: &DefaultByteGetter) -> bool { + let left = self.0.default_byte(); + let right = other.0.default_byte(); + left.eq(&right) + } +} + +impl Eq for DefaultByteGetter { } + +#[cfg(feature = "std")] +impl serde::Serialize for DefaultByteGetter { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + self.0.default_byte().serialize(serializer) + } +} + +#[cfg(feature = "std")] +impl std::fmt::Debug for DefaultByteGetter { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + self.0.default_byte().fmt(f) + } +} + /// A storage function type. #[derive(Clone, PartialEq, Eq, Encode)] #[cfg_attr(feature = "std", derive(Decode, Debug, Serialize))] diff --git a/srml/support/Cargo.toml b/srml/support/Cargo.toml index 251964475c..b0d468497f 100644 --- a/srml/support/Cargo.toml +++ b/srml/support/Cargo.toml @@ -14,6 +14,7 @@ sr-io = { path = "../../core/sr-io", default-features = false } sr-primitives = { path = "../../core/sr-primitives", default-features = false } srml-support-procedural = { path = "./procedural" } mashup = "0.1.7" +once_cell = { version = "0.1.6", default-features = false, optional = true } [dev-dependencies] pretty_assertions = "0.5.1" @@ -23,6 +24,7 @@ parity-codec-derive = { version = "2.1" } default = ["std"] std = [ "hex-literal", + "once_cell", "serde/std", "serde_derive", "sr-io/std", diff --git a/srml/support/procedural/src/storage/mod.rs b/srml/support/procedural/src/storage/mod.rs index 737a5a87f3..4e25992593 100644 --- a/srml/support/procedural/src/storage/mod.rs +++ b/srml/support/procedural/src/storage/mod.rs @@ -26,7 +26,7 @@ use syn::token::CustomKeyword; pub mod transformation; /// Parsing usage only -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct StorageDefinition { pub hidden_crate: Option, pub visibility: syn::Visibility, @@ -44,30 +44,30 @@ struct StorageDefinition { } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct SpecificHiddenCrate { pub keyword: ext::CustomToken, pub ident: ext::Parens, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct AddExtraGenesis { pub extragenesis_keyword: ext::CustomToken, pub content: ext::Braces, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct AddExtraGenesisContent { pub lines: ext::Punctuated, } -#[derive(ParseEnum, ToTokensEnum, Debug)] +#[derive(Parse, ToTokens, Debug)] enum AddExtraGenesisLineEnum { AddExtraGenesisLine(AddExtraGenesisLine), AddExtraGenesisBuild(DeclStorageBuild), } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct AddExtraGenesisLine { pub attrs: ext::OuterAttributes, pub config_keyword: ext::CustomToken, @@ -78,7 +78,7 @@ struct AddExtraGenesisLine { pub default_value: ext::Seq, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageLine { // attrs (main use case is doc) pub attrs: ext::OuterAttributes, @@ -96,31 +96,31 @@ struct DeclStorageLine { } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageGetter { pub getter_keyword: ext::CustomToken, pub getfn: ext::Parens, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageConfig { pub config_keyword: ext::CustomToken, pub expr: ext::Parens>, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageBuild { pub build_keyword: ext::CustomToken, pub expr: ext::Parens, } -#[derive(ParseEnum, ToTokensEnum, Debug)] +#[derive(Parse, ToTokens, Debug)] enum DeclStorageType { Map(DeclStorageMap), Simple(syn::Type), } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageMap { pub map_keyword: ext::CustomToken, pub key: syn::Type, @@ -128,7 +128,7 @@ struct DeclStorageMap { pub value: syn::Type, } -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] struct DeclStorageDefault { pub equal_token: Token![=], pub expr: syn::Expr, diff --git a/srml/support/procedural/src/storage/transformation.rs b/srml/support/procedural/src/storage/transformation.rs index 67d0911c8a..2a2179e0ec 100644 --- a/srml/support/procedural/src/storage/transformation.rs +++ b/srml/support/procedural/src/storage/transformation.rs @@ -110,8 +110,10 @@ pub fn decl_storage_impl(input: TokenStream) -> TokenStream { &traitinstance, &storage_lines, ); - let store_functions_to_metadata = store_functions_to_metadata( + let (store_default_struct, store_functions_to_metadata) = store_functions_to_metadata( &scrate, + &traitinstance, + &traittype, &storage_lines, ); let cratename_string = cratename.to_string(); @@ -119,12 +121,13 @@ pub fn decl_storage_impl(input: TokenStream) -> TokenStream { #scrate_decl #decl_storage_items #visibility trait #storetype { - #decl_store_items + #decl_store_items } + #store_default_struct impl<#traitinstance: #traittype> #storetype for #module_ident<#traitinstance> { #impl_store_items } - impl<#traitinstance: #traittype> #module_ident<#traitinstance> { + impl<#traitinstance: 'static + #traittype> #module_ident<#traitinstance> { #impl_store_fns pub fn store_metadata() -> #scrate::storage::generator::StorageMetadata { #scrate::storage::generator::StorageMetadata { @@ -557,15 +560,19 @@ fn impl_store_fns( fn store_functions_to_metadata ( scrate: &TokenStream2, + traitinstance: &Ident, + traittype: &syn::TypeParamBound, storage_lines: &ext::Punctuated, -) -> TokenStream2 { +) -> (TokenStream2, TokenStream2) { let mut items = TokenStream2::new(); + let mut default_getter_struct_def = TokenStream2::new(); for sline in storage_lines.inner.iter() { let DeclStorageLine { attrs, name, storage_type, + default_value, .. } = sline; @@ -603,6 +610,11 @@ fn store_functions_to_metadata ( #scrate::storage::generator::StorageFunctionModifier::Optional } }; + let default = default_value.inner.get(0).as_ref().map(|d| &d.expr) + .map(|d| { + quote!( #d ) + }) + .unwrap_or_else(|| quote!( Default::default() )); let mut docs = TokenStream2::new(); for attr in attrs.inner.iter().filter_map(|v| v.interpret_meta()) { if let syn::Meta::NameValue(syn::MetaNameValue{ @@ -616,20 +628,52 @@ fn store_functions_to_metadata ( } } let str_name = name.to_string(); + let struct_name = proc_macro2::Ident::new(&("__GetByteStruct".to_string() + &str_name), name.span()); + let cache_name = proc_macro2::Ident::new(&("__CacheGetByteStruct".to_string() + &str_name), name.span()); let item = quote! { #scrate::storage::generator::StorageFunctionMetadata { name: #scrate::storage::generator::DecodeDifferent::Encode(#str_name), modifier: #modifier, ty: #stype, + default: #scrate::storage::generator::DecodeDifferent::Encode( + #scrate::storage::generator::DefaultByteGetter( + &#struct_name::<#traitinstance>(#scrate::rstd::marker::PhantomData) + ) + ), documentation: #scrate::storage::generator::DecodeDifferent::Encode(&[ #docs ]), }, }; items.extend(item); + let def_get = quote! { + pub struct #struct_name<#traitinstance>(pub #scrate::rstd::marker::PhantomData<#traitinstance>); + #[cfg(feature = "std")] + static #cache_name: #scrate::once_cell::sync::OnceCell> = #scrate::once_cell::sync::OnceCell::INIT; + #[cfg(feature = "std")] + impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { + fn default_byte(&self) -> Vec { + use #scrate::codec::Encode; + #cache_name.get_or_init(|| { + let def_val: #gettype = #default; + <#gettype as Encode>::encode(&def_val) + }).clone() + } + } + #[cfg(not(feature = "std"))] + impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { + fn default_byte(&self) -> Vec { + use #scrate::codec::Encode; + let def_val: #gettype = #default; + <#gettype as Encode>::encode(&def_val) + } + } + }; + default_getter_struct_def.extend(def_get); } - - quote!{ - #scrate::storage::generator::DecodeDifferent::Encode(&[ - #items - ]) - } + (default_getter_struct_def, quote!{ + { + #scrate::storage::generator::DecodeDifferent::Encode(&[ + #items + ]) + } + }) } diff --git a/srml/support/procedural/tools/derive/src/lib.rs b/srml/support/procedural/tools/derive/src/lib.rs index acb6b744d2..604cba4582 100644 --- a/srml/support/procedural/tools/derive/src/lib.rs +++ b/srml/support/procedural/tools/derive/src/lib.rs @@ -59,16 +59,30 @@ pub(crate) fn fields_access( }) } -/// self defined parsing struct (use where clause on struct for it: not meant for good struct -/// design but fast parse impl). -#[proc_macro_derive(ParseStruct)] -pub fn derive_parse_struct(input: TokenStream) -> TokenStream { +/// self defined parsing struct or enum. +/// not meant for any struct/enum, just for fast +/// parse implementation. +/// For enums: +/// variant are tested in order of definition. +/// Empty variant is always true. +/// Please use carefully, this will fully parse successfull variant twice. +#[proc_macro_derive(Parse)] +pub fn derive_parse(input: TokenStream) -> TokenStream { + let item = parse_macro_input!(input as syn::Item); + match item { + syn::Item::Enum(input) => derive_parse_enum(input), + syn::Item::Struct(input) => derive_parse_struct(input), + _ => TokenStream::new(), // ignore + } +} + +fn derive_parse_struct(input: syn::ItemStruct) -> TokenStream { let syn::ItemStruct { ident, generics, fields, .. - } = parse_macro_input!(input as syn::ItemStruct); + } = input; let field_names = { let name = fields_idents(fields.iter().map(Clone::clone)); quote!{ @@ -93,42 +107,13 @@ pub fn derive_parse_struct(input: TokenStream) -> TokenStream { tokens.into() } -#[proc_macro_derive(ToTokensStruct)] -pub fn derive_totokens_struct(input: TokenStream) -> TokenStream { - let syn::ItemStruct { - ident, - generics, - fields, - .. - } = parse_macro_input!(input as syn::ItemStruct); - let fields = fields_access(fields.iter().map(Clone::clone)); - let tokens = quote! { - - impl #generics quote::ToTokens for #ident #generics { - fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) { - #( - self.#fields.to_tokens(tokens); - )* - } - } - - }; - tokens.into() -} - - -/// self defined parsing enum, variant are tested in order of definition. -/// Empty variant allways true. -/// Please use carefully, this will fully parse successfull variant twice. -#[proc_macro_derive(ParseEnum)] -pub fn derive_parse_enum(input: TokenStream) -> TokenStream { - +fn derive_parse_enum(input: syn::ItemEnum) -> TokenStream { let syn::ItemEnum { ident, generics, variants, .. - } = parse_macro_input!(input as syn::ItemEnum); + } = input; let variants = variants.iter().map(|v| { let variant_ident = v.ident.clone(); let fields_build = if v.fields.iter().count() > 0 { @@ -187,15 +172,51 @@ pub fn derive_parse_enum(input: TokenStream) -> TokenStream { tokens.into() } -/// only output field (empty field act as a None) -#[proc_macro_derive(ToTokensEnum)] -pub fn derive_totokens_enum(input: TokenStream) -> TokenStream { +/// self defined parsing struct or enum. +/// not meant for any struct/enum, just for fast +/// parse implementation. +/// For enum: +/// it only output fields (empty field act as a None). +#[proc_macro_derive(ToTokens)] +pub fn derive_totokens(input: TokenStream) -> TokenStream { + let item = parse_macro_input!(input as syn::Item); + match item { + syn::Item::Enum(input) => derive_totokens_enum(input), + syn::Item::Struct(input) => derive_totokens_struct(input), + _ => TokenStream::new(), // ignore + } +} + +fn derive_totokens_struct(input: syn::ItemStruct) -> TokenStream { + let syn::ItemStruct { + ident, + generics, + fields, + .. + } = input; + + let fields = fields_access(fields.iter().map(Clone::clone)); + let tokens = quote! { + + impl #generics quote::ToTokens for #ident #generics { + fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) { + #( + self.#fields.to_tokens(tokens); + )* + } + } + + }; + tokens.into() +} + +fn derive_totokens_enum(input: syn::ItemEnum) -> TokenStream { let syn::ItemEnum { ident, generics, variants, .. - } = parse_macro_input!(input as syn::ItemEnum); + } = input; let variants = variants.iter().map(|v| { let v_ident = v.ident.clone(); let fields_build = if v.fields.iter().count() > 0 { diff --git a/srml/support/procedural/tools/src/syn_ext.rs b/srml/support/procedural/tools/src/syn_ext.rs index 6998f6f511..75118c053d 100644 --- a/srml/support/procedural/tools/src/syn_ext.rs +++ b/srml/support/procedural/tools/src/syn_ext.rs @@ -31,7 +31,7 @@ use syn::Ident; /// stop parsing here getting remaining token as content /// Warn duplicate stream (part of) -#[derive(ParseStruct, ToTokensStruct, Debug)] +#[derive(Parse, ToTokens, Debug)] pub struct StopParse { pub inner: T2, } diff --git a/srml/support/src/lib.rs b/srml/support/src/lib.rs index 2f4b9b3ecb..76cb70a063 100644 --- a/srml/support/src/lib.rs +++ b/srml/support/src/lib.rs @@ -45,6 +45,11 @@ extern crate parity_codec_derive; #[doc(hidden)] pub extern crate parity_codec as codec; + +#[cfg(feature = "std")] +#[doc(hidden)] +pub extern crate once_cell; + pub use self::storage::generator::Storage as GenericStorage; #[macro_use] diff --git a/srml/support/src/metadata.rs b/srml/support/src/metadata.rs index 0bd9bce2d9..f22e7459c7 100644 --- a/srml/support/src/metadata.rs +++ b/srml/support/src/metadata.rs @@ -15,7 +15,8 @@ // along with Substrate. If not, see . pub use srml_metadata::{ - DecodeDifferent, FnEncode, RuntimeMetadata, RuntimeModuleMetadata + DecodeDifferent, FnEncode, RuntimeMetadata, RuntimeModuleMetadata, + DefaultByteGetter, }; /// Implements the metadata support for the given runtime and all its modules. @@ -188,7 +189,7 @@ mod tests { StorageMethod : Option; } add_extra_genesis { - build(|_, _, _| {}); + build(|_, _, _| {}); } } } @@ -311,15 +312,20 @@ mod tests { )), storage: Some(DecodeDifferent::Encode(FnEncode(|| StorageMetadata { - prefix: DecodeDifferent::Encode("TestStorage"), - functions: DecodeDifferent::Encode(&[ - StorageFunctionMetadata { - name: DecodeDifferent::Encode("StorageMethod"), - modifier: StorageFunctionModifier::Optional, - ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), - documentation: DecodeDifferent::Encode(&[]), - } - ]) + prefix: DecodeDifferent::Encode("TestStorage"), + functions: DecodeDifferent::Encode(&[ + StorageFunctionMetadata { + name: DecodeDifferent::Encode("StorageMethod"), + modifier: StorageFunctionModifier::Optional, + ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter( + &event_module2::__GetByteStructStorageMethod(::std::marker::PhantomData::) + ) + ), + documentation: DecodeDifferent::Encode(&[]), + } + ]) } ))), } diff --git a/srml/support/src/storage/generator.rs b/srml/support/src/storage/generator.rs index d33ecd43aa..e28dbda89e 100644 --- a/srml/support/src/storage/generator.rs +++ b/srml/support/src/storage/generator.rs @@ -55,7 +55,8 @@ pub use rstd::marker::PhantomData; pub use srml_metadata::{ DecodeDifferent, StorageMetadata, StorageFunctionMetadata, - StorageFunctionType, StorageFunctionModifier + StorageFunctionType, StorageFunctionModifier, + DefaultByte, DefaultByteGetter, }; /// Abstraction around storage. @@ -525,6 +526,7 @@ mod tests { use std::cell::RefCell; use codec::Codec; use super::*; + use rstd::marker::PhantomData; impl Storage for RefCell, Vec>> { fn exists(&self, key: &[u8]) -> bool { @@ -657,80 +659,117 @@ mod tests { name: DecodeDifferent::Encode("U32"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[ " Hello, this is doc!" ]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBU32"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("U32MYDEF"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBU32MYDEF"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, - StorageFunctionMetadata { name: DecodeDifferent::Encode("GETU32"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("T::Origin")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBGETU32"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("GETU32WITHCONFIG"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETU32WITHCONFIG(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBGETU32WITHCONFIG"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETU32WITHCONFIG(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, - StorageFunctionMetadata { name: DecodeDifferent::Encode("GETU32MYDEF"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBGETU32MYDEF"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("GETU32WITHCONFIGMYDEF"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETU32WITHCONFIGMYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBGETU32WITHCONFIGMYDEF"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETU32WITHCONFIGMYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("PUBGETU32WITHCONFIGMYDEFOPT"), modifier: StorageFunctionModifier::Optional, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("u32")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETU32WITHCONFIGMYDEFOPT(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, @@ -740,6 +779,9 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructMAPU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -748,6 +790,9 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBMAPU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -756,6 +801,9 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructMAPU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -764,15 +812,20 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBMAPU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, - StorageFunctionMetadata { name: DecodeDifferent::Encode("GETMAPU32"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETMAPU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -781,15 +834,20 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETMAPU32(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, - StorageFunctionMetadata { name: DecodeDifferent::Encode("GETMAPU32MYDEF"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructGETMAPU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { @@ -798,24 +856,36 @@ mod tests { ty: StorageFunctionType::Map{ key: DecodeDifferent::Encode("u32"), value: DecodeDifferent::Encode("String") }, + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructPUBGETMAPU32MYDEF(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("COMPLEX_TYPE1"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("::std::vec::Vec<::Origin>")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructCOMPLEX_TYPE1(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("COMPLEX_TYPE2"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("(Vec)>>, u32)")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructCOMPLEX_TYPE2(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, StorageFunctionMetadata { name: DecodeDifferent::Encode("COMPLEX_TYPE3"), modifier: StorageFunctionModifier::Default, ty: StorageFunctionType::Plain(DecodeDifferent::Encode("([u32; 25])")), + default: DecodeDifferent::Encode( + DefaultByteGetter(&__GetByteStructCOMPLEX_TYPE3(PhantomData::)) + ), documentation: DecodeDifferent::Encode(&[]), }, ]) diff --git a/srml/system/src/lib.rs b/srml/system/src/lib.rs index fda59529d4..bd349982e4 100644 --- a/srml/system/src/lib.rs +++ b/srml/system/src/lib.rs @@ -63,7 +63,7 @@ pub fn extrinsics_data_root(xts: Vec>) -> H::Output { H::enumerated_trie_root(&xts) } -pub trait Trait: Eq + Clone { +pub trait Trait: 'static + Eq + Clone { type Origin: Into>> + From>; type Index: Parameter + Member + MaybeSerializeDebugButNotDeserialize + Default + MaybeDisplay + SimpleArithmetic + Copy; type BlockNumber: Parameter + Member + MaybeSerializeDebug + MaybeDisplay + SimpleArithmetic + Default + Bounded + Copy + rstd::hash::Hash; -- GitLab From 67f1d0505ff0b85c7eb0c77dd456162cb38ba775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Thu, 20 Dec 2018 15:28:14 +0100 Subject: [PATCH 007/349] Call a state before block was imported. (#1294) * Call a state before block was imported. * Add test to check if it works correctly. --- Cargo.lock | 1 + core/service/Cargo.toml | 3 + core/service/src/components.rs | 126 +++++++++++++++++++++++++-------- core/service/src/lib.rs | 3 + 4 files changed, 103 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1e201f4ee5..89bfba8cb1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3661,6 +3661,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-rpc-servers 0.1.0", "substrate-telemetry 0.3.0", + "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index ca8766c707..e9f165ed9d 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -30,3 +30,6 @@ substrate-executor = { path = "../../core/executor" } substrate-transaction-pool = { path = "../../core/transaction-pool" } substrate-rpc-servers = { path = "../../core/rpc-servers" } substrate-telemetry = { path = "../../core/telemetry" } + +[dev-dependencies] +substrate-test-client = { path = "../test-client" } diff --git a/core/service/src/components.rs b/core/service/src/components.rs index 20f01676a3..df50d54529 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -184,6 +184,51 @@ pub trait MaintainTransactionPool { ) -> error::Result<()>; } +fn on_block_imported( + id: &BlockId, + client: &Client, + transaction_pool: &TransactionPool, +) -> error::Result<()> where + Api: TaggedTransactionQueue, + Block: BlockT::Out>, + Backend: client::backend::Backend, + Client: ProvideRuntimeApi, + Executor: client::CallExecutor, + PoolApi: txpool::ChainApi, +{ + use runtime_primitives::transaction_validity::TransactionValidity; + + // Avoid calling into runtime if there is nothing to prune from the pool anyway. + if transaction_pool.status().is_empty() { + return Ok(()) + } + + let block = client.block(id)?; + let tags = match block { + None => return Ok(()), + Some(block) => { + let parent_id = BlockId::hash(*block.block.header().parent_hash()); + let mut tags = vec![]; + for tx in block.block.extrinsics() { + let tx = client.runtime_api().validate_transaction(&parent_id, &tx)?; + match tx { + TransactionValidity::Valid { mut provides, .. } => { + tags.append(&mut provides); + }, + // silently ignore invalid extrinsics, + // cause they might just be inherent + _ => {} + } + + } + tags + } + }; + + transaction_pool.prune_tags(id, tags).map_err(|e| format!("{:?}", e))?; + Ok(()) +} + impl MaintainTransactionPool for C where ComponentClient: ProvideRuntimeApi, C::RuntimeApi: TaggedTransactionQueue>, @@ -194,36 +239,7 @@ impl MaintainTransactionPool for C where client: &ComponentClient, transaction_pool: &TransactionPool, ) -> error::Result<()> { - use runtime_primitives::transaction_validity::TransactionValidity; - - // Avoid calling into runtime if there is nothing to prune from the pool anyway. - if transaction_pool.status().is_empty() { - return Ok(()) - } - - let block = client.block(id)?; - let tags = match block { - None => return Ok(()), - Some(block) => { - let mut tags = vec![]; - for tx in block.block.extrinsics() { - let tx = client.runtime_api().validate_transaction(id, &tx)?; - match tx { - TransactionValidity::Valid { mut provides, .. } => { - tags.append(&mut provides); - }, - // silently ignore invalid extrinsics, - // cause they might just be inherent - _ => {} - } - - } - tags - } - }; - - transaction_pool.prune_tags(id, tags).map_err(|e| format!("{:?}", e))?; - Ok(()) + on_block_imported(id, client, transaction_pool) } } @@ -520,3 +536,53 @@ impl Components for LightComponents { Factory::build_light_import_queue(config, client) } } + +#[cfg(test)] +mod tests { + use super::*; + use codec::Encode; + use consensus_common::BlockOrigin; + use substrate_test_client::{ + self, + TestClient, + keyring::Keyring, + runtime::{Extrinsic, Transfer}, + }; + + #[test] + fn should_remove_transactions_from_the_pool() { + let client = Arc::new(substrate_test_client::new()); + let pool = TransactionPool::new(Default::default(), ::transaction_pool::ChainApi::new(client.clone())); + let transaction = { + let transfer = Transfer { + amount: 5, + nonce: 0, + from: Keyring::Alice.to_raw_public().into(), + to: Default::default(), + }; + let signature = Keyring::from_raw_public(transfer.from.to_fixed_bytes()).unwrap().sign(&transfer.encode()).into(); + Extrinsic { transfer, signature } + }; + // store the transaction in the pool + pool.submit_one(&BlockId::hash(client.best_block_header().unwrap().hash()), transaction.clone()).unwrap(); + + // import the block + let mut builder = client.new_block().unwrap(); + builder.push(transaction.clone()).unwrap(); + let block = builder.bake().unwrap(); + let id = BlockId::hash(block.header().hash()); + client.import(BlockOrigin::Own, block).unwrap(); + + // fire notification - this should clean up the queue + assert_eq!(pool.status().ready, 1); + on_block_imported( + &id, + &client, + &pool, + ).unwrap(); + + // then + assert_eq!(pool.status().ready, 0); + assert_eq!(pool.status().future, 0); + } +} diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index 9421fcb8d0..04d8e8582a 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -50,6 +50,9 @@ extern crate log; #[macro_use] extern crate serde_derive; +#[cfg(test)] +extern crate substrate_test_client; + mod components; mod error; mod chain_spec; -- GitLab From 873e8c7df9b041b98255683a2e91626169ce5209 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Thu, 20 Dec 2018 18:34:19 +0100 Subject: [PATCH 008/349] Fixed common block tracking on new block announcement (#1305) --- core/network/src/sync.rs | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/core/network/src/sync.rs b/core/network/src/sync.rs index 3a78bd16aa..dd67b915d8 100644 --- a/core/network/src/sync.rs +++ b/core/network/src/sync.rs @@ -282,8 +282,11 @@ impl ChainSync { self.best_queued_hash = *hash; } // Update common blocks - for (_, peer) in self.peers.iter_mut() { - trace!(target: "sync", "Updating peer info ours={}, theirs={}", number, peer.best_number); + for (n, peer) in self.peers.iter_mut() { + if let PeerSyncState::AncestorSearch(_) = peer.state { + continue; + } + trace!(target: "sync", "Updating peer {} info, ours={}, common={}, their best={}", n, number, peer.common_number, peer.best_number); if peer.best_number >= number { peer.common_number = number; peer.common_hash = *hash; @@ -301,22 +304,34 @@ impl ChainSync { pub(crate) fn on_block_announce(&mut self, protocol: &mut Context, who: NodeIndex, hash: B::Hash, header: &B::Header) { let number = *header.number(); + if number <= As::sa(0) { + trace!(target: "sync", "Ignored invalid block announcement from {}: {}", who, hash); + return; + } + let known_parent = self.is_known(protocol, &header.parent_hash()); + let known = self.is_known(protocol, &hash); if let Some(ref mut peer) = self.peers.get_mut(&who) { if number > peer.best_number { + // update their best block peer.best_number = number; peer.best_hash = hash; } - if number <= self.best_queued_number && number > peer.common_number { + if let PeerSyncState::AncestorSearch(_) = peer.state { + return; + } + if header.parent_hash() == &self.best_queued_hash || known_parent { + peer.common_number = number - As::sa(1); + } else if known { peer.common_number = number } } else { return; } - if !self.is_known_or_already_downloading(protocol, &hash) { + if !(known || self.is_already_downloading(&hash)) { let stale = number <= self.best_queued_number; if stale { - if !self.is_known_or_already_downloading(protocol, header.parent_hash()) { + if !(known_parent || self.is_already_downloading(header.parent_hash())) { trace!(target: "sync", "Ignoring unknown stale block announce from {}: {} {:?}", who, hash, header); } else { trace!(target: "sync", "Considering new stale block announced from {}: {} {:?}", who, hash, header); @@ -331,9 +346,12 @@ impl ChainSync { } } - fn is_known_or_already_downloading(&self, protocol: &mut Context, hash: &B::Hash) -> bool { + fn is_already_downloading(&self, hash: &B::Hash) -> bool { self.peers.iter().any(|(_, p)| p.state == PeerSyncState::DownloadingStale(*hash)) - || block_status(&*protocol.client(), &*self.import_queue, *hash).ok().map_or(false, |s| s != BlockStatus::Unknown) + } + + fn is_known(&self, protocol: &mut Context, hash: &B::Hash) -> bool { + block_status(&*protocol.client(), &*self.import_queue, *hash).ok().map_or(false, |s| s != BlockStatus::Unknown) } pub(crate) fn peer_disconnected(&mut self, protocol: &mut Context, who: NodeIndex) { -- GitLab From 36e8a51345bfdf4fe03b8a9f89fc6d25ffd5232c Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 20 Dec 2018 20:30:54 +0100 Subject: [PATCH 009/349] Bump to v0.9.1 (#1307) --- Cargo.lock | 2 +- Cargo.toml | 2 +- .../substrate_test_runtime.compact.wasm | Bin 222552 -> 42266 bytes node/runtime/src/lib.rs | 4 ++-- .../release/node_runtime.compact.wasm | Bin 988937 -> 784987 bytes 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 89bfba8cb1..f5d03ed975 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3248,7 +3248,7 @@ dependencies = [ [[package]] name = "substrate" -version = "0.9.0" +version = "0.9.1" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index ffc5d408cd..063a3111c8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.9.0" +version = "0.9.1" authors = ["Parity Technologies "] build = "build.rs" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index aa06727e071f0aaa33c3c53fbf71a13e70f27227..e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6 100644 GIT binary patch delta 18068 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 JuO}Go`ai2w8%+QJ literal 222552 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

    BCp6IxuC$Vs_A&EBM6xOp{ETp3pdAmkjytRL_)u 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

  • t?O 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 EkK*z} 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ξ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

    0#0P~kmHR5*j; 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

    c8+F7m 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%0DG4Vdb}OS=ONZvl4m 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

    RHsRRmBgsrULve|z~we4IAo3lEb2%07jg4R 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

    S6Nt$e+?}zZSAt0LfW}?ta`&3_+}n34lGEyB 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

    +h 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

    *O!?vp%WIqeg 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 z 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 Date: Fri, 21 Dec 2018 12:55:44 +0100 Subject: [PATCH 010/349] Compact extrinsics (#1314) --- core/client/src/client.rs | 2 +- core/sr-primitives/src/generic/mod.rs | 2 + .../unchecked_mortal_compact_extrinsic.rs | 290 ++++++++++++++++++ 3 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs diff --git a/core/client/src/client.rs b/core/client/src/client.rs index a37bd163b2..647e48405a 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -284,7 +284,7 @@ impl Client where pub fn authorities_at(&self, id: &BlockId) -> error::Result> { match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), - None => self.executor.call(id, "Core_authorities",&[]) + None => self.executor.call(id, "Core_authorities", &[]) .and_then(|r| Vec::::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) } diff --git a/core/sr-primitives/src/generic/mod.rs b/core/sr-primitives/src/generic/mod.rs index 69b317f6ee..1e1778204a 100644 --- a/core/sr-primitives/src/generic/mod.rs +++ b/core/sr-primitives/src/generic/mod.rs @@ -20,6 +20,7 @@ mod unchecked_extrinsic; mod unchecked_mortal_extrinsic; +mod unchecked_mortal_compact_extrinsic; mod era; mod checked_extrinsic; mod header; @@ -30,6 +31,7 @@ mod tests; pub use self::unchecked_extrinsic::UncheckedExtrinsic; pub use self::unchecked_mortal_extrinsic::UncheckedMortalExtrinsic; +pub use self::unchecked_mortal_compact_extrinsic::UncheckedMortalCompactExtrinsic; pub use self::era::Era; pub use self::checked_extrinsic::CheckedExtrinsic; pub use self::header::Header; diff --git a/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs b/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs new file mode 100644 index 0000000000..9ffac3d3f9 --- /dev/null +++ b/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs @@ -0,0 +1,290 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Generic implementation of an unchecked (pre-verification) extrinsic. + +#[cfg(feature = "std")] +use std::fmt; + +use rstd::prelude::*; +use codec::{Decode, Encode, Input, Compact}; +use traits::{self, Member, SimpleArithmetic, MaybeDisplay, CurrentHeight, BlockNumberToHash, Lookup, + Checkable, Extrinsic}; +use super::{CheckedExtrinsic, Era}; + +const TRANSACTION_VERSION: u8 = 1; + +/// A extrinsic right from the external world. This is unchecked and so +/// can contain a signature. +#[derive(PartialEq, Eq, Clone)] +pub struct UncheckedMortalCompactExtrinsic { + /// The signature, address, number of extrinsics have come before from + /// the same signer and an era describing the longevity of this transaction, + /// if this is a signed extrinsic. + pub signature: Option<(Address, Signature, Compact, Era)>, + /// The function that should be called. + pub function: Call, +} + +impl UncheckedMortalCompactExtrinsic { + /// New instance of a signed extrinsic aka "transaction". + pub fn new_signed(index: Index, function: Call, signed: Address, signature: Signature, era: Era) -> Self { + UncheckedMortalCompactExtrinsic { + signature: Some((signed, signature, index.into(), era)), + function, + } + } + + /// New instance of an unsigned extrinsic aka "inherent". + pub fn new_unsigned(function: Call) -> Self { + UncheckedMortalCompactExtrinsic { + signature: None, + function, + } + } +} + +impl Extrinsic for UncheckedMortalCompactExtrinsic { + fn is_signed(&self) -> Option { + Some(self.signature.is_some()) + } +} + +impl Checkable + for UncheckedMortalCompactExtrinsic +where + Address: Member + MaybeDisplay, + Index: Member + MaybeDisplay + SimpleArithmetic, + Compact: Encode, + Call: Encode + Member, + Signature: Member + traits::Verify, + AccountId: Member + MaybeDisplay, + BlockNumber: SimpleArithmetic, + Hash: Encode, + Context: Lookup + + CurrentHeight + + BlockNumberToHash, +{ + type Checked = CheckedExtrinsic; + + fn check(self, context: &Context) -> Result { + Ok(match self.signature { + Some((signed, signature, index, era)) => { + let h = context.block_number_to_hash(BlockNumber::sa(era.birth(context.current_height().as_()))) + .ok_or("transaction birth block ancient")?; + let payload = (index, self.function, era, h); + let signed = context.lookup(signed)?; + if !::verify_encoded_lazy(&signature, &payload, &signed) { + return Err("bad signature in extrinsic") + } + CheckedExtrinsic { + signed: Some((signed, (payload.0).0)), + function: payload.1, + } + } + None => CheckedExtrinsic { + signed: None, + function: self.function, + }, + }) + } +} + +impl Decode + for UncheckedMortalCompactExtrinsic +where + Address: Decode, + Signature: Decode, + Compact: Decode, + Call: Decode, +{ + fn decode(input: &mut I) -> Option { + // This is a little more complicated than usual since the binary format must be compatible + // with substrate's generic `Vec` type. Basically this just means accepting that there + // will be a prefix of vector length (we don't need + // to use this). + let _length_do_not_remove_me_see_above: Vec<()> = Decode::decode(input)?; + + let version = input.read_byte()?; + + let is_signed = version & 0b1000_0000 != 0; + let version = version & 0b0111_1111; + if version != TRANSACTION_VERSION { + return None + } + + Some(UncheckedMortalCompactExtrinsic { + signature: if is_signed { Some(Decode::decode(input)?) } else { None }, + function: Decode::decode(input)?, + }) + } +} + +impl Encode + for UncheckedMortalCompactExtrinsic +where + Address: Encode, + Signature: Encode, + Compact: Encode, + Call: Encode, +{ + fn encode(&self) -> Vec { + super::encode_with_vec_prefix::(|v| { + // 1 byte version id. + match self.signature.as_ref() { + Some(s) => { + v.push(TRANSACTION_VERSION | 0b1000_0000); + s.encode_to(v); + } + None => { + v.push(TRANSACTION_VERSION & 0b0111_1111); + } + } + self.function.encode_to(v); + }) + } +} + +#[cfg(feature = "std")] +impl serde::Serialize + for UncheckedMortalCompactExtrinsic + where Compact: Encode +{ + fn serialize(&self, seq: S) -> Result where S: ::serde::Serializer { + self.using_encoded(|bytes| seq.serialize_bytes(bytes)) + } +} + +/// TODO: use derive when possible. +#[cfg(feature = "std")] +impl fmt::Debug for UncheckedMortalCompactExtrinsic where + Address: fmt::Debug, + Index: fmt::Debug, + Call: fmt::Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "UncheckedMortalCompactExtrinsic({:?}, {:?})", self.signature.as_ref().map(|x| (&x.0, &x.2)), self.function) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + struct TestContext; + impl Lookup for TestContext { + type Source = u64; + type Target = u64; + fn lookup(&self, s: u64) -> Result { Ok(s) } + } + impl CurrentHeight for TestContext { + type BlockNumber = u64; + fn current_height(&self) -> u64 { 42 } + } + impl BlockNumberToHash for TestContext { + type BlockNumber = u64; + type Hash = u64; + fn block_number_to_hash(&self, n: u64) -> Option { Some(n) } + } + + #[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize, Encode, Decode)] + struct TestSig(u64, Vec); + impl traits::Verify for TestSig { + type Signer = u64; + fn verify>(&self, mut msg: L, signer: &Self::Signer) -> bool { + *signer == self.0 && msg.get() == &self.1[..] + } + } + + const DUMMY_FUNCTION: u64 = 0; + const DUMMY_ACCOUNTID: u64 = 0; + + type Ex = UncheckedMortalCompactExtrinsic; + type CEx = CheckedExtrinsic; + + #[test] + fn unsigned_codec_should_work() { + let ux = Ex::new_unsigned(DUMMY_FUNCTION); + let encoded = ux.encode(); + assert_eq!(Ex::decode(&mut &encoded[..]), Some(ux)); + } + + #[test] + fn signed_codec_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::immortal(), 0u64).encode()), Era::immortal()); + let encoded = ux.encode(); + assert_eq!(Ex::decode(&mut &encoded[..]), Some(ux)); + } + + #[test] + fn unsigned_check_should_work() { + let ux = Ex::new_unsigned(DUMMY_FUNCTION); + assert!(!ux.is_signed().unwrap_or(false)); + assert!(>::check(ux, &TestContext).is_ok()); + } + + #[test] + fn badly_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, vec![0u8]), Era::immortal()); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn immortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::immortal(), 0u64).encode()), Era::immortal()); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn mortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::mortal(32, 42), 42u64).encode()), Era::mortal(32, 42)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn later_mortal_signed_check_should_work() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (Compact::from(DUMMY_ACCOUNTID), DUMMY_FUNCTION, Era::mortal(32, 11), 11u64).encode()), Era::mortal(32, 11)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Ok(CEx { signed: Some((DUMMY_ACCOUNTID, 0)), function: DUMMY_FUNCTION })); + } + + #[test] + fn too_late_mortal_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::mortal(32, 10), 10u64).encode()), Era::mortal(32, 10)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn too_early_mortal_signed_check_should_fail() { + let ux = Ex::new_signed(0, DUMMY_FUNCTION, DUMMY_ACCOUNTID, TestSig(DUMMY_ACCOUNTID, (DUMMY_ACCOUNTID, DUMMY_FUNCTION, Era::mortal(32, 43), 43u64).encode()), Era::mortal(32, 43)); + assert!(ux.is_signed().unwrap_or(false)); + assert_eq!(>::check(ux, &TestContext), Err("bad signature in extrinsic")); + } + + #[test] + fn encoding_matches_vec() { + let ex = Ex::new_unsigned(DUMMY_FUNCTION); + let encoded = ex.encode(); + let decoded = Ex::decode(&mut encoded.as_slice()).unwrap(); + assert_eq!(decoded, ex); + let as_vec: Vec = Decode::decode(&mut encoded.as_slice()).unwrap(); + assert_eq!(as_vec.encode(), encoded); + } +} -- GitLab From 19b7de7dc05550222d914add8b4388347c5135fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Fri, 21 Dec 2018 11:56:18 +0000 Subject: [PATCH 011/349] node: remove grandpa authority flags (#1306) --- node/cli/src/lib.rs | 13 +--------- node/cli/src/params.rs | 8 ------ node/cli/src/service.rs | 56 +++++++++++++++-------------------------- 3 files changed, 21 insertions(+), 56 deletions(-) diff --git a/node/cli/src/lib.rs b/node/cli/src/lib.rs index 70980b495d..2be8313404 100644 --- a/node/cli/src/lib.rs +++ b/node/cli/src/lib.rs @@ -120,21 +120,10 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul Err(e) => e.exit(), }; - let (spec, mut config) = cli::parse_matches::( + let (spec, config) = cli::parse_matches::( load_spec, version, "substrate-node", &matches )?; - if matches.is_present("grandpa_authority_only") { - config.custom.grandpa_authority = true; - config.custom.grandpa_authority_only = true; - // Authority Setup is only called if validator is set as true - config.roles = ServiceRoles::AUTHORITY; - } else if matches.is_present("grandpa_authority") { - config.custom.grandpa_authority = true; - // Authority Setup is only called if validator is set as true - config.roles = ServiceRoles::AUTHORITY; - } - match cli::execute_default::(spec, exit, &matches, &config)? { cli::Action::ExecutedInternally => (), cli::Action::RunService(exit) => { diff --git a/node/cli/src/params.rs b/node/cli/src/params.rs index f092887587..130c9a4dc5 100644 --- a/node/cli/src/params.rs +++ b/node/cli/src/params.rs @@ -20,14 +20,6 @@ use cli::CoreParams; /// Extend params for Node #[derive(Debug, StructOpt)] pub struct Params { - /// Should run as a GRANDPA authority node - #[structopt(long = "grandpa-authority", help = "Run Node as a GRANDPA authority, implies --validator")] - grandpa_authority: bool, - - /// Should run as a GRANDPA authority node only - #[structopt(long = "grandpa-authority-only", help = "Run Node as a GRANDPA authority only, don't as a usual validator, implies --grandpa-authority")] - grandpa_authority_only: bool, - #[structopt(flatten)] core: CoreParams } diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index 393b2a480c..f4796343b5 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -40,12 +40,7 @@ construct_simple_protocol! { /// Node specific configuration pub struct NodeConfig { - /// should run as a grandpa authority - pub grandpa_authority: bool, - /// should run as a grandpa authority only, don't validate as usual - pub grandpa_authority_only: bool, /// grandpa connection to import block - // FIXME: rather than putting this on the config, let's have an actual intermediate setup state // https://github.com/paritytech/substrate/issues/1134 pub grandpa_import_setup: Option<(Arc>, grandpa::LinkHalfForService)>, @@ -54,8 +49,6 @@ pub struct NodeConfig { impl Default for NodeConfig where F: substrate_service::ServiceFactory { fn default() -> NodeConfig { NodeConfig { - grandpa_authority: false, - grandpa_authority_only: false, grandpa_import_setup: None, } } @@ -77,38 +70,29 @@ construct_service_factory! { { |config: FactoryFullConfiguration, executor: TaskExecutor| FullComponents::::new(config, executor) }, AuthoritySetup = { - |mut service: Self::FullService, executor: TaskExecutor, key: Option>| { + |mut service: Self::FullService, executor: TaskExecutor, local_key: Option>| { let (block_import, link_half) = service.config.custom.grandpa_import_setup.take() .expect("Link Half and Block Import are present for Full Services or setup failed before. qed"); - let local_key = if let Some(key) = key { - if !service.config.custom.grandpa_authority_only { - info!("Using authority key {}", key.public()); - let proposer = Arc::new(substrate_service::ProposerFactory { - client: service.client(), - transaction_pool: service.transaction_pool(), - }); - - let client = service.client(); - executor.spawn(start_aura( - SlotDuration::get_or_compute(&*client)?, - key.clone(), - client, - block_import.clone(), - proposer, - service.network(), - )); - } - - if service.config.custom.grandpa_authority { - info!("Running Grandpa session as Authority {}", key.public()); - Some(key) - } else { - None - } - } else { - None - }; + if let Some(ref key) = local_key { + info!("Using authority key {}", key.public()); + let proposer = Arc::new(substrate_service::ProposerFactory { + client: service.client(), + transaction_pool: service.transaction_pool(), + }); + + let client = service.client(); + executor.spawn(start_aura( + SlotDuration::get_or_compute(&*client)?, + key.clone(), + client, + block_import.clone(), + proposer, + service.network(), + )); + + info!("Running Grandpa session as Authority {}", key.public()); + } let voter = grandpa::run_grandpa( grandpa::Config { -- GitLab From f847f59fd713f1553a9602ec10fa33c0cf8d2fef Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 21 Dec 2018 13:43:34 +0100 Subject: [PATCH 012/349] Sudo module (#1315) * Sudo module * Fix comment * Fix errors * Fix test * Update hashes * Final test fixes and build * Final hex change --- Cargo.lock | 19 ++++ Cargo.toml | 1 + node/cli/src/chain_spec.rs | 8 +- node/executor/src/lib.rs | 11 ++- node/runtime/Cargo.toml | 2 + node/runtime/src/lib.rs | 11 ++- node/runtime/wasm/Cargo.lock | 19 ++++ .../release/node_runtime.compact.wasm | Bin 784987 -> 804690 bytes srml/sudo/Cargo.toml | 33 +++++++ srml/sudo/src/lib.rs | 88 ++++++++++++++++++ 10 files changed, 184 insertions(+), 8 deletions(-) create mode 100644 srml/sudo/Cargo.toml create mode 100644 srml/sudo/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index f5d03ed975..d425f1b691 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1886,6 +1886,7 @@ dependencies = [ "srml-grandpa 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", + "srml-sudo 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -3024,6 +3025,24 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-sudo" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-consensus 0.1.0", + "srml-support 0.1.0", + "srml-support-procedural 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-support" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 063a3111c8..ded75775aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,6 +57,7 @@ members = [ "core/sr-primitives", "srml/session", "srml/staking", + "srml/sudo", "srml/system", "srml/timestamp", "srml/treasury", diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index b06cc97451..345b98418e 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - UpgradeKeyConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; + UpgradeKeyConfig, SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; @@ -132,6 +132,9 @@ fn staging_testnet_config_genesis() -> GenesisConfig { upgrade_key: Some(UpgradeKeyConfig { key: endowed_accounts[0].clone(), }), + sudo: Some(SudoConfig { + key: endowed_accounts[0].clone(), + }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), }) @@ -256,6 +259,9 @@ pub fn testnet_genesis( upgrade_key: Some(UpgradeKeyConfig { key: upgrade_key, }), + sudo: Some(SudoConfig { + key: upgrade_key, + }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), }) diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 632230133a..1c711f90c1 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -260,6 +260,7 @@ mod tests { treasury: Some(Default::default()), contract: Some(Default::default()), upgrade_key: Some(Default::default()), + sudo: Some(Default::default()), grandpa: Some(GrandpaConfig { authorities: vec![ // set these so no GRANDPA events fire when session changes (Alice.to_raw_public().into(), 1), @@ -311,9 +312,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("1a7758d96d7353732f3054a3dacb18f04f42fc48f6706378d6f7be744c6022f1").into() + hex!("bc4bdc45ba03402f9b4c7ec09834065c57205b1742bf2469ab9fc54544d8d002").into() } else { - hex!("1cf270c8a484df4931af562f7afdc9f44d99ae1bd35fe30fbd2cf3c1be2e933b").into() + hex!("6bfbf71fa08d99f2488e295807059269cbc43ea21af3316a92406974593a1fc2").into() }, if support_changes_trie { vec![changes_trie_log( @@ -339,7 +340,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("a208e27269f8a17e7f7cf9513396d3579066df10a853e030345847ec96593c2e").into(), + hex!("24f8ac99a6d98e9b53f4f6ef6ffdd12ba53ea3f247200a8126fa69c4b5047fbc").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -368,7 +369,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("a506a69fefa4dc1be6838b68dc6e5799bd5fec545ef890cadac20edc0254d37a").into(), + hex!("7b7d3b509a444cdf214825d3354507823a4c91eafa493f0956448881a81ab797").into(), vec![], vec![ CheckedExtrinsic { @@ -658,7 +659,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("3af4e1ba0769122b1e92b138fecf7ce8bb2fe4f2a65fba3b423f87942f1ba8c8").into(), + hex!("bfc8051f91071149cca8b8dca6290fdb82eda6868d48cfed25f8ca38ed3a1049").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index 09f533373f..a400609f83 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -25,6 +25,7 @@ srml-staking = { path = "../../srml/staking", default-features = false } srml-system = { path = "../../srml/system", default-features = false } srml-timestamp = { path = "../../srml/timestamp", default-features = false } srml-treasury = { path = "../../srml/treasury", default-features = false } +srml-sudo = { path = "../../srml/sudo", default-features = false } srml-upgrade-key = { path = "../../srml/upgrade-key", default-features = false } srml-grandpa = { path = "../../srml/grandpa", default-features = false } sr-version = { path = "../../core/sr-version", default-features = false } @@ -55,6 +56,7 @@ std = [ "srml-system/std", "srml-timestamp/std", "srml-treasury/std", + "srml-sudo/std", "srml-upgrade-key/std", "sr-version/std", "node-primitives/std", diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 27b9d48de3..00d0372961 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -47,6 +47,7 @@ extern crate srml_executive as executive; extern crate srml_grandpa as grandpa; extern crate srml_session as session; extern crate srml_staking as staking; +extern crate srml_sudo as sudo; extern crate srml_system as system; extern crate srml_timestamp as timestamp; extern crate srml_treasury as treasury; @@ -96,8 +97,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 10, - impl_version: 0, + spec_version: 11, + impl_version: 11, apis: RUNTIME_API_VERSIONS, }; @@ -205,6 +206,11 @@ impl upgrade_key::Trait for Runtime { type Event = Event; } +impl sudo::Trait for Runtime { + type Event = Event; + type Proposal = Call; +} + impl grandpa::Trait for Runtime { type SessionKey = SessionKey; type Log = Log; @@ -233,6 +239,7 @@ construct_runtime!( Treasury: treasury, Contract: contract::{Module, Call, Config, Event}, UpgradeKey: upgrade_key, + Sudo: sudo, } ); diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 6ecac5384e..0a44e0b021 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -520,6 +520,7 @@ dependencies = [ "srml-grandpa 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", + "srml-sudo 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "srml-timestamp 0.1.0", @@ -1282,6 +1283,24 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-sudo" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-consensus 0.1.0", + "srml-support 0.1.0", + "srml-support-procedural 0.1.0", + "srml-system 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-support" version = "0.1.0" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 7df5b21ce835b4bd01c162de001217cc42e8b494..2d8e45e907279790213018415e23b7ad424110ff 100644 GIT binary patch delta 236679 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%0Dd7* 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 C@eO|f diff --git a/srml/sudo/Cargo.toml b/srml/sudo/Cargo.toml new file mode 100644 index 0000000000..9cdd75c756 --- /dev/null +++ b/srml/sudo/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "srml-sudo" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +hex-literal = "0.1.0" +serde = { version = "1.0", default-features = false } +parity-codec = { version = "2.1", default-features = false } +parity-codec-derive = { version = "2.1", default-features = false } +substrate-primitives = { path = "../../core/primitives", default-features = false } +sr-std = { path = "../../core/sr-std", default-features = false } +sr-io = { path = "../../core/sr-io", default-features = false } +sr-primitives = { path = "../../core/sr-primitives", default-features = false } +srml-support = { path = "../support", default-features = false } +srml-support-procedural = { path = "../support/procedural" } +srml-system = { path = "../system", default-features = false } +srml-consensus = { path = "../consensus", default-features = false } + +[features] +default = ["std"] +std = [ + "serde/std", + "parity-codec/std", + "parity-codec-derive/std", + "sr-std/std", + "sr-io/std", + "sr-primitives/std", + "substrate-primitives/std", + "srml-support/std", + "srml-system/std", + "srml-consensus/std", +] diff --git a/srml/sudo/src/lib.rs b/srml/sudo/src/lib.rs new file mode 100644 index 0000000000..c814224aa5 --- /dev/null +++ b/srml/sudo/src/lib.rs @@ -0,0 +1,88 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! The Example: A simple example of a runtime module demonstrating +//! concepts, APIs and structures common to most runtime modules. + +#![cfg_attr(not(feature = "std"), no_std)] + +extern crate sr_std; +#[cfg(test)] +extern crate sr_io; +#[cfg(test)] +extern crate substrate_primitives; +extern crate sr_primitives; +#[macro_use] +extern crate parity_codec_derive; +extern crate parity_codec as codec; +#[macro_use] +extern crate srml_support as support; + +extern crate srml_system as system; +extern crate srml_consensus as consensus; + +use sr_std::prelude::*; +use support::{StorageValue, Parameter, Dispatchable}; +use system::ensure_signed; + +pub trait Trait: consensus::Trait + system::Trait { + /// The overarching event type. + type Event: From> + Into<::Event>; + + /// A sudo-able call. + type Proposal: Parameter + Dispatchable; +} + +decl_module! { + // Simple declaration of the `Module` type. Lets the macro know what its working on. + pub struct Module for enum Call where origin: T::Origin { + fn deposit_event() = default; + + fn sudo(origin, proposal: Box) { + // This is a public call, so we ensure that the origin is some signed account. + let sender = ensure_signed(origin)?; + ensure!(sender == Self::key(), "only the current sudo key can sudo"); + + let ok = proposal.dispatch(system::RawOrigin::Root.into()).is_ok(); + Self::deposit_event(RawEvent::Sudid(ok)); + } + + fn set_key(origin, new: T::AccountId) { + // This is a public call, so we ensure that the origin is some signed account. + let sender = ensure_signed(origin)?; + ensure!(sender == Self::key(), "only the current sudo key can change the sudo key"); + + Self::deposit_event(RawEvent::KeyChanged(Self::key())); + >::put(new); + } + } +} + +/// An event in this module. +decl_event!( + pub enum Event where AccountId = ::AccountId { + /// A sudo just took place. + Sudid(bool), + /// The sudoer just switched identity; the old key is supplied. + KeyChanged(AccountId), + } +); + +decl_storage! { + trait Store for Module as Sudo { + Key get(key) config(): T::AccountId; + } +} -- GitLab From f632893d78c6f1f4e4978d0a5803e041fea2cdb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Fri, 21 Dec 2018 16:30:45 +0000 Subject: [PATCH 013/349] node: fix shutdown (#1308) * node: remove grandpa authority flags * node: exit-guard grandpa and aura spawned futures * node: wait for futures to stop running on shutdown * core: run connectivity tests on same ports * core: pass on_exit future when starting aura and grandpa * node: add issue number to todo * core: fix aura and grandpa tests --- core/consensus/aura/src/lib.rs | 13 ++++++++----- core/finality-grandpa/src/lib.rs | 3 ++- core/finality-grandpa/src/tests.rs | 3 +++ core/service/src/lib.rs | 10 +++++++--- core/service/test/src/lib.rs | 12 ++++++++---- node/cli/src/lib.rs | 16 +++++++++++++--- node/cli/src/service.rs | 25 +++++++++++++------------ 7 files changed, 54 insertions(+), 28 deletions(-) diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index f22e20930c..c9692cbde2 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -179,16 +179,15 @@ pub fn start_aura_thread( } }; - runtime.spawn(start_aura( + let _ = runtime.block_on(start_aura( slot_duration, local_key, client, block_import, env, sync_oracle, + on_exit, )); - - runtime.block_on(on_exit).expect("Exit future should not fail"); }); } @@ -200,6 +199,7 @@ pub fn start_aura( block_import: Arc, env: Arc, sync_oracle: SO, + on_exit: impl Future, ) -> impl Future where B: Block, C: Authorities + ChainHead, @@ -352,7 +352,7 @@ pub fn start_aura( }) }; - future::loop_fn((), move |()| { + let work = future::loop_fn((), move |()| { let authorship_task = ::std::panic::AssertUnwindSafe(make_authorship()); authorship_task.catch_unwind().then(|res| { match res { @@ -369,7 +369,9 @@ pub fn start_aura( Ok(future::Loop::Continue(())) }) - }) + }); + + work.select(on_exit).then(|_| Ok(())) } // a header which has been checked @@ -760,6 +762,7 @@ mod tests { client, environ.clone(), DummyOracle, + futures::empty(), ); runtime.spawn(aura); diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index dfbea1fe81..3e699ba382 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -1186,6 +1186,7 @@ pub fn run_grandpa, N, RA>( config: Config, link: LinkHalf, network: N, + on_exit: impl Future + Send + 'static, ) -> ::client::error::Result + Send + 'static> where Block::Hash: Ord, B: Backend + 'static, @@ -1312,5 +1313,5 @@ pub fn run_grandpa, N, RA>( })) }).map_err(|e| warn!("GRANDPA Voter failed: {:?}", e)); - Ok(voter_work) + Ok(voter_work.select(on_exit).then(|_| Ok(()))) } diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index d01a48d62f..de6c4f1cb3 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -376,6 +376,7 @@ fn finalize_3_voters_no_observers() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); assert_send(&voter); @@ -436,6 +437,7 @@ fn finalize_3_voters_1_observer() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); runtime.spawn(voter); @@ -592,6 +594,7 @@ fn transition_3_voters_twice_1_observer() { }, link, MessageRouting::new(net.clone(), peer_id), + futures::empty(), ).expect("all in order with client and network"); runtime.spawn(voter); diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index 04d8e8582a..f316b49250 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -107,7 +107,7 @@ pub struct Service { /// Configuration of this Service pub config: FactoryFullConfiguration, _rpc: Box<::std::any::Any + Send + Sync>, - _telemetry: Option, + _telemetry: Option>, } /// Creates bare client without any networking. @@ -263,7 +263,7 @@ impl Service { let impl_name = config.impl_name.to_owned(); let version = version.clone(); let chain_name = config.chain_spec.name().to_owned(); - Some(tel::init_telemetry(tel::TelemetryConfig { + Some(Arc::new(tel::init_telemetry(tel::TelemetryConfig { url: url, on_connect: Box::new(move || { telemetry!("system.connected"; @@ -276,7 +276,7 @@ impl Service { "authority" => is_authority ); }), - })) + }))) }, None => None, }; @@ -306,6 +306,10 @@ impl Service { None } } + + pub fn telemetry(&self) -> Option> { + self._telemetry.as_ref().map(|t| t.clone()) + } } impl Service where Components: components::Components { diff --git a/core/service/test/src/lib.rs b/core/service/test/src/lib.rs index d5aafbe675..4335bffe86 100644 --- a/core/service/test/src/lib.rs +++ b/core/service/test/src/lib.rs @@ -33,7 +33,7 @@ use std::iter; use std::sync::Arc; use std::net::Ipv4Addr; use std::time::Duration; -use futures::Stream; +use futures::{Future, Stream}; use tempdir::TempDir; use tokio::runtime::Runtime; use tokio::timer::Interval; @@ -188,7 +188,7 @@ pub fn connectivity(spec: FactoryChainSpec) wher const NUM_NODES: u32 = 10; { let temp = TempDir::new("substrate-connectivity-test").expect("Error creating test dir"); - { + let runtime = { let mut network = TestNet::::new(&temp, spec.clone(), NUM_NODES, 0, vec![], 30400); info!("Checking star topology"); let first_address = network.full_nodes[0].1.network().node_id().expect("No node address"); @@ -198,13 +198,17 @@ pub fn connectivity(spec: FactoryChainSpec) wher network.run_until_all_full(|_index, service| service.network().status().num_peers == NUM_NODES as usize - 1 ); - } + network.runtime + }; + + runtime.shutdown_on_idle().wait().expect("Error shutting down runtime"); + temp.close().expect("Error removing temp dir"); } { let temp = TempDir::new("substrate-connectivity-test").expect("Error creating test dir"); { - let mut network = TestNet::::new(&temp, spec, NUM_NODES, 0, vec![], 30500); + let mut network = TestNet::::new(&temp, spec, NUM_NODES, 0, vec![], 30400); info!("Checking linked topology"); let mut address = network.full_nodes[0].1.network().node_id().expect("No node address"); for (_, service) in network.full_nodes.iter().skip(1) { diff --git a/node/cli/src/lib.rs b/node/cli/src/lib.rs index 2be8313404..88059728f8 100644 --- a/node/cli/src/lib.rs +++ b/node/cli/src/lib.rs @@ -50,6 +50,7 @@ pub mod chain_spec; mod service; mod params; +use tokio::prelude::Future; use tokio::runtime::Runtime; pub use cli::{VersionInfo, IntoExit}; use substrate_service::{ServiceFactory, Roles as ServiceRoles}; @@ -136,8 +137,8 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul let mut runtime = Runtime::new()?; let executor = runtime.executor(); match config.roles == ServiceRoles::LIGHT { - true => run_until_exit(&mut runtime, service::Factory::new_light(config, executor)?, exit)?, - false => run_until_exit(&mut runtime, service::Factory::new_full(config, executor)?, exit)?, + true => run_until_exit(runtime, service::Factory::new_light(config, executor)?, exit)?, + false => run_until_exit(runtime, service::Factory::new_full(config, executor)?, exit)?, } } } @@ -145,7 +146,7 @@ pub fn run(args: I, exit: E, version: cli::VersionInfo) -> error::Resul } fn run_until_exit( - runtime: &mut Runtime, + mut runtime: Runtime, service: T, e: E, ) -> error::Result<()> @@ -161,5 +162,14 @@ fn run_until_exit( let _ = runtime.block_on(e.into_exit()); exit_send.fire(); + + // we eagerly drop the service so that the internal exit future is fired, + // but we need to keep holding a reference to the global telemetry guard + let _telemetry = service.telemetry(); + drop(service); + + // TODO [andre]: timeout this future #1318 + let _ = runtime.shutdown_on_idle().wait(); + Ok(()) } diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index f4796343b5..d173c7419e 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -19,19 +19,20 @@ //! Service and ServiceFactory implementation. Specialized wrapper over substrate service. use std::sync::Arc; -use transaction_pool::{self, txpool::{Pool as TransactionPool}}; -use node_runtime::{GenesisConfig, RuntimeApi}; +use std::time::Duration; + +use client; +use consensus::{import_queue, start_aura, AuraImportQueue, SlotDuration, NothingExtra}; +use grandpa; +use node_executor; +use primitives::ed25519::Pair; use node_primitives::{Block, InherentData}; +use node_runtime::{GenesisConfig, RuntimeApi}; use substrate_service::{ FactoryFullConfiguration, LightComponents, FullComponents, FullBackend, FullClient, LightClient, LightBackend, FullExecutor, LightExecutor, TaskExecutor }; -use node_executor; -use consensus::{import_queue, start_aura, AuraImportQueue, SlotDuration, NothingExtra}; -use primitives::ed25519::Pair; -use client; -use std::time::Duration; -use grandpa; +use transaction_pool::{self, txpool::{Pool as TransactionPool}}; construct_simple_protocol! { /// Demo protocol attachment for substrate. @@ -89,12 +90,13 @@ construct_service_factory! { block_import.clone(), proposer, service.network(), + service.on_exit(), )); info!("Running Grandpa session as Authority {}", key.public()); } - let voter = grandpa::run_grandpa( + executor.spawn(grandpa::run_grandpa( grandpa::Config { local_key, gossip_duration: Duration::new(4, 0), // FIXME: make this available through chainspec? @@ -102,9 +104,8 @@ construct_service_factory! { }, link_half, grandpa::NetworkBridge::new(service.network()), - )?; - - executor.spawn(voter); + service.on_exit(), + )?); Ok(service) } -- GitLab From 6a0b6846319045422f70f79271023ac72deb85d7 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Sun, 23 Dec 2018 00:35:49 +0800 Subject: [PATCH 014/349] typo: Hash -> Self::Hash (#1319) --- core/sr-primitives/src/generic/digest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/sr-primitives/src/generic/digest.rs b/core/sr-primitives/src/generic/digest.rs index ea2dafb758..1bf53a9c01 100644 --- a/core/sr-primitives/src/generic/digest.rs +++ b/core/sr-primitives/src/generic/digest.rs @@ -133,7 +133,7 @@ impl< self.dref().as_authorities_change() } - fn as_changes_trie_root(&self) -> Option<&Hash> { + fn as_changes_trie_root(&self) -> Option<&Self::Hash> { self.dref().as_changes_trie_root() } } -- GitLab From 9156ea304a8338946ba876e0530bbd4d652cc540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Sat, 22 Dec 2018 17:37:05 +0100 Subject: [PATCH 015/349] Make `deposit_event` work with none generic events (#1309) * Make `deposit_event` work with none generic events `fn deposit_event() = default` will now be used for none generic events `fn deposit_event() = default` is now for generic events. * Update wasm files * Fixes some spelling mistakes * Update wasm and fix new module --- .../substrate_test_runtime.compact.wasm | Bin 42266 -> 43804 bytes .../release/node_runtime.compact.wasm | Bin 804690 -> 841783 bytes srml/assets/src/lib.rs | 2 +- srml/balances/src/lib.rs | 2 +- srml/contract/src/lib.rs | 2 +- srml/council/src/motions.rs | 2 +- srml/council/src/seats.rs | 2 +- srml/council/src/voting.rs | 2 +- srml/democracy/src/lib.rs | 4 +-- srml/example/src/lib.rs | 4 ++- srml/grandpa/src/lib.rs | 2 +- srml/session/src/lib.rs | 2 +- srml/staking/src/lib.rs | 2 +- srml/sudo/src/lib.rs | 2 +- srml/support/src/dispatch.rs | 26 +++++++++++++++--- srml/treasury/src/lib.rs | 2 +- srml/upgrade-key/src/lib.rs | 2 +- 17 files changed, 39 insertions(+), 19 deletions(-) diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6..440d0288d7fb526d5efdb5c36574dda232b197d6 100644 GIT binary patch delta 15954 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

    RW;w!ttbyK5mk)?EkpqJ7H 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 eymSC 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

    SXMG(z7c}WwErEb&C4X> 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 %=Ie4g5E9#A= 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


    IN?Eu;g7HtOe8^mw$cSdO6l>OJNGQ7%6!_gcM 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�+)au8_z3hMDvQXuE7Q}*NtfjZD^-8Oc>&r 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 I!1LqXZ=Y=R8UO$Q diff --git a/srml/assets/src/lib.rs b/srml/assets/src/lib.rs index c84620f4e7..dd6446c958 100644 --- a/srml/assets/src/lib.rs +++ b/srml/assets/src/lib.rs @@ -62,7 +62,7 @@ type AssetId = u32; decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Issue a new class of fungible assets. There are, and will only ever be, `total` /// such assets and they'll all belong to the `origin` initially. It will have an /// identifier `AssetId` instance: this will be specified in the `Issued` event. diff --git a/srml/balances/src/lib.rs b/srml/balances/src/lib.rs index deadbfd656..c6e5d7729a 100644 --- a/srml/balances/src/lib.rs +++ b/srml/balances/src/lib.rs @@ -136,7 +136,7 @@ pub trait Trait: system::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Transfer some liquid free balance to another staker. pub fn transfer( diff --git a/srml/contract/src/lib.rs b/srml/contract/src/lib.rs index e87c289ed8..cf1d2ac1db 100644 --- a/srml/contract/src/lib.rs +++ b/srml/contract/src/lib.rs @@ -147,7 +147,7 @@ where decl_module! { /// Contracts module. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; // TODO: Change AccountId to staking::Address /// Make a call to a specified account, optionally transferring some balance. /// Make a call to a specified account, optionally transferring some balance. diff --git a/srml/council/src/motions.rs b/srml/council/src/motions.rs index 5316d5c681..ad0f5032cf 100644 --- a/srml/council/src/motions.rs +++ b/srml/council/src/motions.rs @@ -67,7 +67,7 @@ decl_event!( decl_module! { pub struct Module for enum Call where origin: ::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn propose(origin, threshold: Compact, proposal: Box<::Proposal>) { let who = ensure_signed(origin)?; let threshold = threshold.into(); diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index 7fef771d38..bff476695b 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -87,7 +87,7 @@ pub trait Trait: democracy::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Set candidate approvals. Approval slots stay valid as long as candidates in those slots /// are registered. diff --git a/srml/council/src/voting.rs b/srml/council/src/voting.rs index 9536fe5d35..ffc340e4f9 100644 --- a/srml/council/src/voting.rs +++ b/srml/council/src/voting.rs @@ -33,7 +33,7 @@ pub trait Trait: CouncilTrait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn propose(origin, proposal: Box) { let who = ensure_signed(origin)?; diff --git a/srml/democracy/src/lib.rs b/srml/democracy/src/lib.rs index 2bf9e21ae7..599e15b0c0 100644 --- a/srml/democracy/src/lib.rs +++ b/srml/democracy/src/lib.rs @@ -87,7 +87,7 @@ pub trait Trait: balances::Trait + Sized { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Propose a sensitive action to be taken. fn propose( @@ -376,7 +376,7 @@ impl Module { .map(|a| (a.clone(), Self::vote_of((index, a)))) // ^^^ defensive only: all items come from `voters`; for an item to be in `voters` there must be a vote registered; qed .filter(|&(_, vote)| vote.is_aye() == approved) // Just the winning coins - { + { // now plus: the base lock period multiplied by the number of periods this voter offered to // lock should they win... let locked_until = now + lock_period * T::BlockNumber::sa((vote.multiplier()) as u64); diff --git a/srml/example/src/lib.rs b/srml/example/src/lib.rs index 31baac20f7..8b14aae6ee 100644 --- a/srml/example/src/lib.rs +++ b/srml/example/src/lib.rs @@ -98,7 +98,9 @@ decl_module! { pub struct Module for enum Call where origin: T::Origin { /// Deposit one of this module's events by using the default implementation. /// It is also possible to provide a custom implementation. - fn deposit_event() = default; + /// For non-generic events, the generic parameter just needs to be dropped, so that it + /// looks like: `fn deposit_event() = default;`. + fn deposit_event() = default; /// This is your public interface. Be extremely careful. /// This is just a simple example of how to interact with the module from the external /// world. diff --git a/srml/grandpa/src/lib.rs b/srml/grandpa/src/lib.rs index de2d10b0f1..50ab852891 100644 --- a/srml/grandpa/src/lib.rs +++ b/srml/grandpa/src/lib.rs @@ -176,7 +176,7 @@ decl_storage! { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Report some misbehaviour. fn report_misbehavior(origin, _report: Vec) { diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 8fc58feab2..6992a5311f 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -89,7 +89,7 @@ pub trait Trait: timestamp::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Sets the session key of `_validator` to `_key`. This doesn't take effect until the next /// session. diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 208c14fc0f..c5ae4982f3 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -100,7 +100,7 @@ pub trait Trait: balances::Trait + session::Trait { decl_module! { pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Declare the desire to stake for the transactor. /// diff --git a/srml/sudo/src/lib.rs b/srml/sudo/src/lib.rs index c814224aa5..ca4859a4d3 100644 --- a/srml/sudo/src/lib.rs +++ b/srml/sudo/src/lib.rs @@ -49,7 +49,7 @@ pub trait Trait: consensus::Trait + system::Trait { decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn sudo(origin, proposal: Box) { // This is a public call, so we ensure that the origin is some signed account. diff --git a/srml/support/src/dispatch.rs b/srml/support/src/dispatch.rs index 4d0815c41f..f751a5293e 100644 --- a/srml/support/src/dispatch.rs +++ b/srml/support/src/dispatch.rs @@ -104,14 +104,14 @@ macro_rules! decl_module { { $( $on_finalise:tt )* } [ $($t:tt)* ] $(#[doc = $doc_attr:tt])* - $vis:vis fn deposit_event() = default; + $vis:vis fn deposit_event $(<$dpeg:ident>)* () = default; $($rest:tt)* ) => { decl_module!(@normalize $(#[$attr])* pub struct $mod_type<$trait_instance: $trait_name> for enum $call_type where origin: $origin_type, system = $system - { $vis fn deposit_event() = default; } + { $vis fn deposit_event $(<$dpeg>)* () = default; } { $( $on_finalise )* } [ $($t)* ] $($rest)* @@ -125,14 +125,16 @@ macro_rules! decl_module { { $( $on_finalise:tt )* } [ $($t:tt)* ] $(#[doc = $doc_attr:tt])* - $vis:vis fn deposit_event($($param_name:ident : $param:ty),* ) { $( $impl:tt )* } + $vis:vis fn deposit_event $(<$dpeg:ident>)* ( + $($param_name:ident : $param:ty),* + ) { $( $impl:tt )* } $($rest:tt)* ) => { decl_module!(@normalize $(#[$attr])* pub struct $mod_type<$trait_instance: $trait_name> for enum $call_type where origin: $origin_type, system = $system - { $vis fn deposit_event($( $param_name: $param ),* ) { $( $impl )* } } + { $vis fn deposit_event $(<$dpeg>)* ($( $param_name: $param ),* ) { $( $impl )* } } { $( $on_finalise )* } [ $($t)* ] $($rest)* @@ -296,10 +298,26 @@ macro_rules! decl_module { $system:ident; ) => {}; + // Non-generic event (@impl_deposit_event $module:ident<$trait_instance:ident: $trait_name:ident>; $system:ident; $vis:vis fn deposit_event() = default; + ) => { + impl<$trait_instance: $trait_name> $module<$trait_instance> { + $vis fn deposit_event(event: Event) { + <$system::Module<$trait_instance>>::deposit_event( + <$trait_instance as $trait_name>::Event::from(event).into() + ); + } + } + }; + + // Generic event + (@impl_deposit_event + $module:ident<$trait_instance:ident: $trait_name:ident>; + $system:ident; + $vis:vis fn deposit_event<$ignore:ident>() = default; ) => { impl<$trait_instance: $trait_name> $module<$trait_instance> { $vis fn deposit_event(event: Event<$trait_instance>) { diff --git a/srml/treasury/src/lib.rs b/srml/treasury/src/lib.rs index abbe0e7899..c919c5e959 100644 --- a/srml/treasury/src/lib.rs +++ b/srml/treasury/src/lib.rs @@ -68,7 +68,7 @@ type ProposalIndex = u32; decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; /// Put forward a suggestion for spending. A deposit proportional to the value /// is reserved and slashed if the proposal is rejected. It is returned once the /// proposal is awarded. diff --git a/srml/upgrade-key/src/lib.rs b/srml/upgrade-key/src/lib.rs index 3957b080d3..2b4470a9f3 100644 --- a/srml/upgrade-key/src/lib.rs +++ b/srml/upgrade-key/src/lib.rs @@ -46,7 +46,7 @@ pub trait Trait: consensus::Trait + system::Trait { decl_module! { // Simple declaration of the `Module` type. Lets the macro know what its working on. pub struct Module for enum Call where origin: T::Origin { - fn deposit_event() = default; + fn deposit_event() = default; fn upgrade(origin, new: Vec) { // This is a public call, so we ensure that the origin is some signed account. let _sender = ensure_signed(origin)?; -- GitLab From b6de5d63e00863471c6f2da6807f10a8a025dd9a Mon Sep 17 00:00:00 2001 From: kyegupov Date: Sun, 23 Dec 2018 19:22:45 +0000 Subject: [PATCH 016/349] Improved test for conditional panic (#1320) --- core/executor/src/wasm_executor.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/executor/src/wasm_executor.rs b/core/executor/src/wasm_executor.rs index 7480b61950..40357946f0 100644 --- a/core/executor/src/wasm_executor.rs +++ b/core/executor/src/wasm_executor.rs @@ -733,6 +733,9 @@ mod tests { let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_panic", &[]); assert!(output.is_err()); + let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_conditional_panic", &[]); + assert_eq!(output.unwrap(), vec![0u8; 0]); + let output = WasmExecutor::new().call(&mut ext, 8, &test_code[..], "test_conditional_panic", &[2]); assert!(output.is_err()); } -- GitLab From ecfc6f14846bbe3778573d2ea1b9613090fcd91c Mon Sep 17 00:00:00 2001 From: toxotguo Date: Thu, 27 Dec 2018 20:35:05 +0800 Subject: [PATCH 017/349] fix pruning arg type (#1332) --- core/cli/src/params.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/cli/src/params.rs b/core/cli/src/params.rs index 59d1d68233..3ae791869f 100644 --- a/core/cli/src/params.rs +++ b/core/cli/src/params.rs @@ -91,7 +91,7 @@ pub struct CoreParams { /// Specify the pruning mode, a number of blocks to keep or 'archive'. Default is 256. #[structopt(long = "pruning", value_name = "PRUNING_MODE")] - pruning: Option, + pruning: Option, /// The human-readable name for this node, as reported to the telemetry server, if enabled #[structopt(long = "name", value_name = "NAME")] -- GitLab From 6fc399388a9fb0617dbcf177044aeef3d826ab99 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Sat, 29 Dec 2018 16:08:20 +0300 Subject: [PATCH 018/349] Make sure displaced leaves are removed from the db (#1338) --- core/client/src/leaves.rs | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/core/client/src/leaves.rs b/core/client/src/leaves.rs index a41f91933c..bc1551e6fa 100644 --- a/core/client/src/leaves.rs +++ b/core/client/src/leaves.rs @@ -64,6 +64,8 @@ pub struct DisplacedLeaf { #[derive(Debug, Clone, PartialEq, Eq)] pub struct LeafSet { storage: BTreeSet>, + pending_added: Vec>, + pending_removed: Vec, } impl LeafSet where @@ -73,7 +75,9 @@ impl LeafSet where /// Construct a new, blank leaf set. pub fn new() -> Self { Self { - storage: BTreeSet::new() + storage: BTreeSet::new(), + pending_added: Vec::new(), + pending_removed: Vec::new(), } } @@ -94,7 +98,11 @@ impl LeafSet where }; storage.insert(LeafSetItem { hash, number }); } - Ok(Self { storage }) + Ok(Self { + storage, + pending_added: Vec::new(), + pending_removed: Vec::new(), + }) } /// update the leaf list on import. returns a displaced leaf if there was one. @@ -102,12 +110,13 @@ impl LeafSet where // avoid underflow for genesis. let displaced = if number != N::zero() { let displaced = LeafSetItem { - hash: parent_hash, + hash: parent_hash.clone(), number: number.clone() - N::one(), }; let was_displaced = self.storage.remove(&displaced); if was_displaced { + self.pending_removed.push(parent_hash); Some(DisplacedLeaf { new_hash: hash.clone(), displaced, @@ -119,7 +128,9 @@ impl LeafSet where None }; - self.storage.insert(LeafSetItem { hash, number }); + let item = LeafSetItem { hash, number }; + self.storage.insert(item.clone()); + self.pending_added.push(item); displaced } @@ -128,6 +139,8 @@ impl LeafSet where let new_number = displaced.displaced.number.clone() + N::one(); self.storage.remove(&LeafSetItem { hash: displaced.new_hash, number: new_number }); self.storage.insert(displaced.displaced); + self.pending_added.clear(); + self.pending_removed.clear(); } /// currently since revert only affects the canonical chain @@ -148,13 +161,18 @@ impl LeafSet where } /// Write the leaf list to the database transaction. - pub fn prepare_transaction(&self, tx: &mut DBTransaction, column: Option, prefix: &[u8]) { + pub fn prepare_transaction(&mut self, tx: &mut DBTransaction, column: Option, prefix: &[u8]) { let mut buf = prefix.to_vec(); - for &LeafSetItem { ref hash, ref number } in &self.storage { + for LeafSetItem { hash, number } in self.pending_added.drain(..) { hash.using_encoded(|s| buf.extend(s)); tx.put_vec(column, &buf[..], number.encode()); buf.truncate(prefix.len()); // reuse allocation. } + for hash in self.pending_removed.drain(..) { + hash.using_encoded(|s| buf.extend(s)); + tx.delete(column, &buf[..]); + buf.truncate(prefix.len()); // reuse allocation. + } } } -- GitLab From b98d3b8775c5eb0d19ad1a5b773e97ce18a09002 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Sat, 29 Dec 2018 15:29:09 +0100 Subject: [PATCH 019/349] refactor aura slot timers a bit, add additional guards (#1303) --- core/consensus/aura/src/lib.rs | 240 +++++++++++++++---------------- core/consensus/aura/src/slots.rs | 122 ++++++++++++++++ 2 files changed, 234 insertions(+), 128 deletions(-) create mode 100644 core/consensus/aura/src/slots.rs diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index c9692cbde2..e6a16df79b 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -38,11 +38,12 @@ extern crate substrate_consensus_common as consensus_common; extern crate tokio; extern crate sr_version as runtime_version; extern crate substrate_network as network; -extern crate futures; extern crate parking_lot; #[macro_use] extern crate log; +#[macro_use] +extern crate futures; #[cfg(test)] extern crate substrate_keyring as keyring; @@ -53,10 +54,10 @@ extern crate substrate_test_client as test_client; #[cfg(test)] extern crate env_logger; -pub use aura_primitives::*; +mod slots; use std::sync::Arc; -use std::time::{Duration, Instant}; +use std::time::Duration; use codec::Encode; use consensus_common::{Authorities, BlockImport, Environment, Proposer}; @@ -69,10 +70,11 @@ use network::import_queue::{Verifier, BasicQueue}; use primitives::{AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; -use tokio::timer::{Delay, Timeout}; +use tokio::timer::Timeout; use api::AuraApi; +use slots::Slots; -pub use aura_primitives::AuraConsensusData; +pub use aura_primitives::*; pub use consensus_common::SyncOracle; /// A handle to the network. This is generally implemented by providing some @@ -221,135 +223,117 @@ pub fn start_aura( let sync_oracle = sync_oracle.clone(); let SlotDuration(slot_duration) = slot_duration; - fn time_until_next(now: Duration, slot_duration: u64) -> Duration { - let remaining_full_secs = slot_duration - (now.as_secs() % slot_duration) - 1; - let remaining_nanos = 1_000_000_000 - now.subsec_nanos(); - Duration::new(remaining_full_secs, remaining_nanos) - }; + // rather than use a timer interval, we schedule our waits ourselves + Slots::new(slot_duration) + .map_err(|e| debug!(target: "aura", "Faulty timer: {:?}", e)) + .for_each(move |slot_info| { + let client = client.clone(); + let pair = pair.clone(); + let block_import = block_import.clone(); + let env = env.clone(); + let sync_oracle = sync_oracle.clone(); + let public_key = pair.public(); + + // only propose when we are not syncing. + if sync_oracle.is_major_syncing() { + debug!(target: "aura", "Skipping proposal slot due to sync."); + return Either::B(future::ok(())); + } + + let (timestamp, slot_num) = (slot_info.timestamp, slot_info.number); + let chain_head = match client.best_block_header() { + Ok(x) => x, + Err(e) => { + warn!(target:"aura", "Unable to author block in slot {}. \ + no best block header: {:?}", slot_num, e); + return Either::B(future::ok(())) + } + }; - // rather than use an interval, we schedule our waits ourselves - future::loop_fn((), move |()| { - let next_slot_start = duration_now() - .map(|now| Instant::now() + time_until_next(now, slot_duration)) - .unwrap_or_else(|| Instant::now()); - - let client = client.clone(); - let pair = pair.clone(); - let block_import = block_import.clone(); - let env = env.clone(); - let sync_oracle = sync_oracle.clone(); - let public_key = pair.public(); - - Delay::new(next_slot_start) - .map_err(|e| debug!(target: "aura", "Faulty timer: {:?}", e)) - .and_then(move |_| { - // only propose when we are not syncing. - if sync_oracle.is_major_syncing() { - debug!(target: "aura", "Skipping proposal slot due to sync."); + let authorities = match client.authorities(&BlockId::Hash(chain_head.hash())) { + Ok(authorities) => authorities, + Err(e) => { + warn!("Unable to fetch authorities at\ + block {:?}: {:?}", chain_head.hash(), e); return Either::B(future::ok(())); } + }; - let pair = pair.clone(); - let (timestamp, slot_num) = match timestamp_and_slot_now(slot_duration) { - Some(n) => n, - None => return Either::B(future::err(())), - }; - - let chain_head = match client.best_block_header() { - Ok(x) => x, - Err(e) => { - warn!(target:"aura", "Unable to author block in slot {}. \ - no best block header: {:?}", slot_num, e); - return Either::B(future::ok(())) - } - }; - - let authorities = match client.authorities(&BlockId::Hash(chain_head.hash())) { - Ok(authorities) => authorities, - Err(e) => { - warn!("Unable to fetch authorities at\ - block {:?}: {:?}", chain_head.hash(), e); - return Either::B(future::ok(())); - } - }; - - let proposal_work = match slot_author(slot_num, &authorities) { - None => return Either::B(future::ok(())), - Some(author) => if author.0 == public_key.0 { - debug!(target: "aura", "Starting authorship at slot {}; timestamp = {}", - slot_num, timestamp); - - // we are the slot author. make a block and sign it. - let proposer = match env.init(&chain_head, &authorities, pair.clone()) { - Ok(p) => p, - Err(e) => { - warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); - return Either::B(future::ok(())) - } - }; - - let consensus_data = AuraConsensusData { - timestamp, - slot: slot_num, - slot_duration, - }; - - // deadline our production to approx. the end of the - // slot - Timeout::new( - proposer.propose(consensus_data).into_future(), - time_until_next(Duration::from_secs(timestamp), slot_duration), - ) - } else { - return Either::B(future::ok(())); - } - }; - - let block_import = block_import.clone(); - Either::A(proposal_work - .map(move |b| { - // minor hack since we don't have access to the timestamp - // that is actually set by the proposer. - let slot_after_building = slot_now(slot_duration); - if slot_after_building != Some(slot_num) { - info!("Discarding proposal for slot {}; block production took too long", - slot_num); - return + let proposal_work = match slot_author(slot_num, &authorities) { + None => return Either::B(future::ok(())), + Some(author) => if author.0 == public_key.0 { + debug!(target: "aura", "Starting authorship at slot {}; timestamp = {}", + slot_num, timestamp); + + // we are the slot author. make a block and sign it. + let proposer = match env.init(&chain_head, &authorities, pair.clone()) { + Ok(p) => p, + Err(e) => { + warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); + return Either::B(future::ok(())) } + }; + + let consensus_data = AuraConsensusData { + timestamp, + slot: slot_num, + slot_duration, + }; + + // deadline our production to approx. the end of the + // slot + Timeout::new( + proposer.propose(consensus_data).into_future(), + slot_info.remaining_duration(), + ) + } else { + return Either::B(future::ok(())); + } + }; - let (header, body) = b.deconstruct(); - let pre_hash = header.hash(); - let parent_hash = header.parent_hash().clone(); - - // sign the pre-sealed hash of the block and then - // add it to a digest item. - let to_sign = (slot_num, pre_hash).encode(); - let signature = pair.sign(&to_sign[..]); - let item = as CompatibleDigestItem>::aura_seal( - slot_num, - signature, - ); - - let import_block = ImportBlock { - origin: BlockOrigin::Own, - header, - justification: None, - post_digests: vec![item], - body: Some(body), - finalized: false, - auxiliary: Vec::new(), - }; - - if let Err(e) = block_import.import_block(import_block, None) { - warn!(target: "aura", "Error with block built on {:?}: {:?}", - parent_hash, e); - } - }) - .map_err(|e| warn!("Failed to construct block: {:?}", e)) - ) - }) - .map(|_| future::Loop::Continue(())) - }) + let block_import = block_import.clone(); + Either::A(proposal_work + .map(move |b| { + // minor hack since we don't have access to the timestamp + // that is actually set by the proposer. + let slot_after_building = slot_now(slot_duration); + if slot_after_building != Some(slot_num) { + info!("Discarding proposal for slot {}; block production took too long", + slot_num); + return + } + + let (header, body) = b.deconstruct(); + let pre_hash = header.hash(); + let parent_hash = header.parent_hash().clone(); + + // sign the pre-sealed hash of the block and then + // add it to a digest item. + let to_sign = (slot_num, pre_hash).encode(); + let signature = pair.sign(&to_sign[..]); + let item = as CompatibleDigestItem>::aura_seal( + slot_num, + signature, + ); + + let import_block = ImportBlock { + origin: BlockOrigin::Own, + header, + justification: None, + post_digests: vec![item], + body: Some(body), + finalized: false, + auxiliary: Vec::new(), + }; + + if let Err(e) = block_import.import_block(import_block, None) { + warn!(target: "aura", "Error with block built on {:?}: {:?}", + parent_hash, e); + } + }) + .map_err(|e| warn!("Failed to construct block: {:?}", e)) + ) + }) }; let work = future::loop_fn((), move |()| { diff --git a/core/consensus/aura/src/slots.rs b/core/consensus/aura/src/slots.rs new file mode 100644 index 0000000000..37db3b1763 --- /dev/null +++ b/core/consensus/aura/src/slots.rs @@ -0,0 +1,122 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Utility stream for yielding slots in a loop. +//! +//! This is used instead of `tokio_timer::Interval` because it was unreliable. + +use std::time::{Instant, Duration}; +use tokio::timer::Delay; +use futures::prelude::*; + +/// Returns the duration until the next slot, based on current duration since +pub(crate) fn time_until_next(now: Duration, slot_duration: u64) -> Duration { + let remaining_full_secs = slot_duration - (now.as_secs() % slot_duration) - 1; + let remaining_nanos = 1_000_000_000 - now.subsec_nanos(); + Duration::new(remaining_full_secs, remaining_nanos) +} + +/// Information about a slot. +#[derive(Debug, Clone)] +pub(crate) struct SlotInfo { + /// The slot number. + pub(crate) number: u64, + /// Current timestamp. + pub(crate) timestamp: u64, + /// The instant at which the slot ends. + pub(crate) ends_at: Instant, +} + +impl SlotInfo { + /// Yields the remaining duration in the slot. + pub(crate) fn remaining_duration(&self) -> Duration { + let now = Instant::now(); + if now < self.ends_at { + self.ends_at.duration_since(now) + } else { + Duration::from_secs(0) + } + } +} + +/// A stream that returns every time there is a new slot. +pub(crate) struct Slots { + last_slot: u64, + slot_duration: u64, + inner_delay: Option, +} + +impl Slots { + /// Create a new `slots` stream. + pub(crate) fn new(slot_duration: u64) -> Self { + Slots { + last_slot: 0, + slot_duration, + inner_delay: None, + } + } +} + +impl Stream for Slots { + type Item = SlotInfo; + type Error = tokio::timer::Error; + + fn poll(&mut self) -> Poll, Self::Error> { + let slot_duration = self.slot_duration; + self.inner_delay = match self.inner_delay.take() { + None => { + // schedule wait. + let wait_until = match ::duration_now() { + None => return Ok(Async::Ready(None)), + Some(now) => Instant::now() + time_until_next(now, slot_duration), + }; + + Some(Delay::new(wait_until)) + } + Some(d) => Some(d), + }; + + if let Some(ref mut inner_delay) = self.inner_delay { + try_ready!(inner_delay.poll()); + } + + // timeout has fired. + + let (timestamp, slot_num) = match ::timestamp_and_slot_now(slot_duration) { + None => return Ok(Async::Ready(None)), + Some(x) => x, + }; + + // reschedule delay for next slot. + let ends_at = Instant::now() + + time_until_next(Duration::from_secs(timestamp), slot_duration); + self.inner_delay = Some(Delay::new(ends_at)); + + // never yield the same slot twice. + if slot_num > self.last_slot { + self.last_slot = slot_num; + + Ok(Async::Ready(Some(SlotInfo { + number: slot_num, + timestamp, + ends_at, + }))) + } else { + // re-poll until we get a new slot. + self.poll() + } + } +} -- GitLab From b79a7a7d19ce4e67cddb31f5b530836a632b2591 Mon Sep 17 00:00:00 2001 From: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Date: Mon, 31 Dec 2018 19:33:21 +0800 Subject: [PATCH 020/349] move import queue to consensus-common (#1282) --- Cargo.lock | 26 ++ core/client/src/client.rs | 13 +- core/consensus/aura/Cargo.toml | 5 +- core/consensus/aura/src/lib.rs | 10 +- core/consensus/common/Cargo.toml | 5 + core/consensus/common/src/error.rs | 6 + .../common}/src/import_queue.rs | 439 +++--------------- core/consensus/common/src/lib.rs | 5 + core/finality-grandpa/src/lib.rs | 70 ++- core/finality-grandpa/src/tests.rs | 6 +- core/network/src/chain.rs | 8 +- core/network/src/lib.rs | 1 - core/network/src/protocol.rs | 7 +- core/network/src/service.rs | 61 ++- core/network/src/sync.rs | 36 +- core/network/src/test/block_import.rs | 171 +++++++ core/network/src/test/mod.rs | 167 ++++++- core/service/src/chain_ops.rs | 12 +- core/service/src/components.rs | 7 +- core/test-client/src/client_ext.rs | 12 +- 20 files changed, 594 insertions(+), 473 deletions(-) rename core/{network => consensus/common}/src/import_queue.rs (51%) create mode 100644 core/network/src/test/block_import.rs diff --git a/Cargo.lock b/Cargo.lock index d425f1b691..ff4f995a8c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2099,6 +2099,15 @@ dependencies = [ "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.2.14" @@ -2122,6 +2131,18 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot_core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -3406,11 +3427,14 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", + "substrate-test-client 0.1.0", "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4857,8 +4881,10 @@ dependencies = [ "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" "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 peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" "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" diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 647e48405a..7f8c81d5ab 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -25,7 +25,7 @@ use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, }; -use consensus::{ImportBlock, ImportResult, BlockOrigin}; +use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, ApiRef, ProvideRuntimeApi, Digest, DigestItem, @@ -1019,7 +1019,7 @@ impl consensus::BlockImport for Client E: CallExecutor + Clone + Send + Sync, Block: BlockT, { - type Error = Error; + type Error = ConsensusError; /// Import a checked and validated block. If a justification is provided in /// `ImportBlock` then `finalized` *must* be true. @@ -1044,9 +1044,10 @@ impl consensus::BlockImport for Client let parent_hash = header.parent_hash().clone(); - match self.backend.blockchain().status(BlockId::Hash(parent_hash))? { - blockchain::BlockStatus::InChain => {}, - blockchain::BlockStatus::Unknown => return Ok(ImportResult::UnknownParent), + match self.backend.blockchain().status(BlockId::Hash(parent_hash)) { + Ok(blockchain::BlockStatus::InChain) => {}, + Ok(blockchain::BlockStatus::Unknown) => return Ok(ImportResult::UnknownParent), + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()) } let import_headers = if post_digests.is_empty() { @@ -1081,7 +1082,7 @@ impl consensus::BlockImport for Client "best" => ?hash, "origin" => ?origin ); - result.map_err(|e| e.into()) + result.map_err(|e| ConsensusErrorKind::ClientImport(e.to_string()).into()) } } diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index 7994afc984..dee59d8f06 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -21,14 +21,11 @@ parking_lot = "0.4" error-chain = "0.12" log = "0.3" substrate-consensus-common = { path = "../common" } -substrate-network = { path = "../../network" } [dev-dependencies] substrate-keyring = { path = "../../keyring" } substrate-executor = { path = "../../executor" } +substrate-network = { path = "../../network", features = ["test-helpers"]} substrate-service = { path = "../../service" } substrate-test-client = { path = "../../test-client" } env_logger = "0.4" - -[target.'cfg(test)'.dependencies] -substrate-network = { path = "../../network", features = ["test-helpers"], optional = true } diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index e6a16df79b..911ae6304a 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -37,7 +37,6 @@ extern crate substrate_consensus_aura_primitives as aura_primitives; extern crate substrate_consensus_common as consensus_common; extern crate tokio; extern crate sr_version as runtime_version; -extern crate substrate_network as network; extern crate parking_lot; #[macro_use] @@ -48,6 +47,8 @@ extern crate futures; #[cfg(test)] extern crate substrate_keyring as keyring; #[cfg(test)] +extern crate substrate_network as network; +#[cfg(test)] extern crate substrate_service as service; #[cfg(test)] extern crate substrate_test_client as test_client; @@ -60,13 +61,13 @@ use std::sync::Arc; use std::time::Duration; use codec::Encode; -use consensus_common::{Authorities, BlockImport, Environment, Proposer}; +use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer}; +use consensus_common::import_queue::{Verifier, BasicQueue}; use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; use consensus_common::{ImportBlock, BlockOrigin}; use runtime_primitives::{generic, generic::BlockId, Justification, BasicInherentData}; use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, ProvideRuntimeApi}; -use network::import_queue::{Verifier, BasicQueue}; use primitives::{AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; @@ -214,7 +215,6 @@ pub fn start_aura( Error: ::std::error::Error + Send + 'static + From<::consensus_common::Error>, { let make_authorship = move || { - use futures::future; let client = client.clone(); let pair = local_key.clone(); @@ -596,7 +596,7 @@ pub fn import_queue( make_inherent: MakeInherent, ) -> AuraImportQueue where B: Block, - C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, + C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, DigestItemFor: CompatibleDigestItem, E: ExtraVerification, diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index 08689721a0..7f95b39a14 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -5,6 +5,8 @@ authors = ["Parity Technologies "] description = "Common utilities for substrate consensus" [dependencies] +log = "0.4" +parking_lot = "0.7" substrate-primitives = { path= "../../primitives" } error-chain = "0.12" futures = "0.1" @@ -13,3 +15,6 @@ sr-primitives = { path = "../../sr-primitives" } tokio = "0.1.7" parity-codec = "2.1" parity-codec-derive = "2.0" + +[dev-dependencies] +substrate-test-client = { path = "../../test-client" } diff --git a/core/consensus/common/src/error.rs b/core/consensus/common/src/error.rs index ccf57adb9f..14a3fb81e1 100644 --- a/core/consensus/common/src/error.rs +++ b/core/consensus/common/src/error.rs @@ -84,5 +84,11 @@ error_chain! { description("Other error") display("Other error: {}", e.description()) } + + /// Error from the client while importing + ClientImport(reason: String) { + description("Import failed"), + display("Import failed: {}", reason), + } } } diff --git a/core/network/src/import_queue.rs b/core/consensus/common/src/import_queue.rs similarity index 51% rename from core/network/src/import_queue.rs rename to core/consensus/common/src/import_queue.rs index 58919ea75a..3a048f781a 100644 --- a/core/network/src/import_queue.rs +++ b/core/consensus/common/src/import_queue.rs @@ -24,30 +24,38 @@ //! The `BasicQueue` and `BasicVerifier` traits allow serial queues to be //! instantiated simply. +use block_import::{ImportBlock, BlockImport, ImportResult, BlockOrigin}; use std::collections::{HashSet, VecDeque}; -use std::sync::{Arc, Weak}; +use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use parking_lot::{Condvar, Mutex, RwLock}; -use network_libp2p::{NodeIndex, Severity}; use primitives::AuthorityId; use runtime_primitives::Justification; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}; -pub use blocks::BlockData; -use client::error::Error as ClientError; -use error::{ErrorKind, Error}; -use protocol::Context; -use service::ExecuteInContext; -use sync::ChainSync; - -pub use consensus::{ImportBlock, BlockImport, ImportResult, BlockOrigin}; +use error::Error as ConsensusError; /// Shared block import struct used by the queue. -pub type SharedBlockImport = Arc + Send + Sync>; - -#[cfg(any(test, feature = "test-helpers"))] -use std::cell::RefCell; +pub type SharedBlockImport = Arc + Send + Sync>; + +/// Maps to the Origin used by the network. +pub type Origin = usize; + +/// Block data used by the queue. +#[derive(Debug, PartialEq, Eq, Clone)] +pub struct IncomingBlock { + /// Block header hash. + pub hash: ::Hash, + /// Block header if requested. + pub header: Option<::Header>, + /// Block body if requested. + pub body: Option::Extrinsic>>, + /// Justification if requested. + pub justification: Option, + /// The peer, we received this from + pub origin: Option, +} /// Verify a justification of a block pub trait Verifier: Send + Sync + Sized { @@ -69,7 +77,7 @@ pub trait ImportQueue: Send + Sync { /// /// This is called automatically by the network service when synchronization /// begins. - fn start(&self, _link: L) -> Result<(), Error> where + fn start(&self, _link: L) -> Result<(), std::io::Error> where Self: Sized, L: 'static + Link, { @@ -84,7 +92,7 @@ pub trait ImportQueue: Send + Sync { /// Is block with given hash currently in the queue. fn is_importing(&self, hash: &B::Hash) -> bool; /// Import bunch of blocks. - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>); + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>); } /// Import queue status. It isn't completely accurate. @@ -105,9 +113,9 @@ pub struct BasicQueue> { } /// Locks order: queue, queue_blocks, best_importing_number -struct AsyncImportQueueData { +pub struct AsyncImportQueueData { signal: Condvar, - queue: Mutex>)>>, + queue: Mutex>)>>, queue_blocks: RwLock>, best_importing_number: RwLock<<::Header as HeaderT>::Number>, is_stopping: AtomicBool, @@ -126,7 +134,8 @@ impl> BasicQueue { } impl AsyncImportQueueData { - fn new() -> Self { + /// Instantiate a new async import queue data. + pub fn new() -> Self { Self { signal: Default::default(), queue: Mutex::new(VecDeque::new()), @@ -135,13 +144,18 @@ impl AsyncImportQueueData { is_stopping: Default::default(), } } + + // Signals to stop importing new blocks. + pub fn stop(&self) { + self.is_stopping.store(true, Ordering::SeqCst); + } } impl> ImportQueue for BasicQueue { fn start>( &self, link: L, - ) -> Result<(), Error> { + ) -> Result<(), std::io::Error> { debug_assert!(self.handle.lock().is_none()); let qdata = self.data.clone(); @@ -149,7 +163,7 @@ impl> ImportQueue for BasicQueue { let block_import = self.block_import.clone(); *self.handle.lock() = Some(::std::thread::Builder::new().name("ImportQueue".into()).spawn(move || { import_thread(block_import, link, qdata, verifier) - }).map_err(|err| Error::from(ErrorKind::Io(err)))?); + })?); Ok(()) } @@ -168,7 +182,7 @@ impl> ImportQueue for BasicQueue { { // Perform storing the stop flag and signalling under a single lock. let _queue_lock = self.data.queue.lock(); - self.data.is_stopping.store(true, Ordering::SeqCst); + self.data.stop(); self.data.signal.notify_one(); } @@ -187,7 +201,7 @@ impl> ImportQueue for BasicQueue { self.data.queue_blocks.read().contains(hash) } - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { if blocks.is_empty() { return; } @@ -197,8 +211,8 @@ impl> ImportQueue for BasicQueue { let mut queue = self.data.queue.lock(); let mut queue_blocks = self.data.queue_blocks.write(); let mut best_importing_number = self.data.best_importing_number.write(); - let new_best_importing_number = blocks.last().and_then(|b| b.block.header.as_ref().map(|h| h.number().clone())).unwrap_or_else(|| Zero::zero()); - queue_blocks.extend(blocks.iter().map(|b| b.block.hash.clone())); + let new_best_importing_number = blocks.last().and_then(|b| b.header.as_ref().map(|h| h.number().clone())).unwrap_or_else(|| Zero::zero()); + queue_blocks.extend(blocks.iter().map(|b| b.hash.clone())); if new_best_importing_number > *best_importing_number { *best_importing_number = new_best_importing_number; } @@ -241,7 +255,7 @@ fn import_thread, V: Verifier>( } }; - let blocks_hashes: Vec = new_blocks.1.iter().map(|b| b.block.hash.clone()).collect(); + let blocks_hashes: Vec = new_blocks.1.iter().map(|b| b.hash.clone()).collect(); if !import_many_blocks( &*block_import, &link, @@ -269,68 +283,16 @@ pub trait Link: Send { /// Maintain sync. fn maintain_sync(&self) { } /// Disconnect from peer. - fn useless_peer(&self, _who: NodeIndex, _reason: &str) { } + fn useless_peer(&self, _who: Origin, _reason: &str) { } /// Disconnect from peer and restart sync. - fn note_useless_and_restart_sync(&self, _who: NodeIndex, _reason: &str) { } + fn note_useless_and_restart_sync(&self, _who: Origin, _reason: &str) { } /// Restart sync. fn restart(&self) { } } -/// A link implementation that does nothing. -pub struct NoopLink; - -impl Link for NoopLink { } - -/// A link implementation that connects to the network. -pub struct NetworkLink> { - /// The chain-sync handle - pub(crate) sync: Weak>>, - /// Network context. - pub(crate) context: Weak, -} - -impl> NetworkLink { - /// Execute closure with locked ChainSync. - fn with_sync, &mut Context)>(&self, closure: F) { - if let (Some(sync), Some(service)) = (self.sync.upgrade(), self.context.upgrade()) { - service.execute_in_context(move |protocol| { - let mut sync = sync.write(); - closure(&mut *sync, protocol) - }); - } - } -} - -impl> Link for NetworkLink { - fn block_imported(&self, hash: &B::Hash, number: NumberFor) { - self.with_sync(|sync, _| sync.block_imported(&hash, number)) - } - - fn maintain_sync(&self) { - self.with_sync(|sync, protocol| sync.maintain_sync(protocol)) - } - - fn useless_peer(&self, who: NodeIndex, reason: &str) { - trace!(target:"sync", "Useless peer {}, {}", who, reason); - self.with_sync(|_, protocol| protocol.report_peer(who, Severity::Useless(reason))) - } - - fn note_useless_and_restart_sync(&self, who: NodeIndex, reason: &str) { - trace!(target:"sync", "Bad peer {}, {}", who, reason); - self.with_sync(|sync, protocol| { - protocol.report_peer(who, Severity::Useless(reason)); // is this actually malign or just useless? - sync.restart(protocol); - }) - } - - fn restart(&self) { - self.with_sync(|sync, protocol| sync.restart(protocol)) - } -} - /// Block import successful result. #[derive(Debug, PartialEq)] -enum BlockImportResult { +pub enum BlockImportResult { /// Imported known block. ImportedKnown(H, N), /// Imported unknown block. @@ -339,13 +301,13 @@ enum BlockImportResult), + IncompleteHeader(Option), /// Block verification failed, can't be imported - VerificationFailed(Option, String), + VerificationFailed(Option, String), /// Block is known to be Bad - BadBlock(Option), + BadBlock(Option), /// Block has an unknown parent UnknownParent, /// Other Error. @@ -353,11 +315,11 @@ enum BlockImportError { } /// Import a bunch of blocks. -fn import_many_blocks<'a, B: BlockT, V: Verifier>( - import_handle: &BlockImport, +pub fn import_many_blocks<'a, B: BlockT, V: Verifier>( + import_handle: &BlockImport, link: &Link, qdata: Option<&AsyncImportQueueData>, - blocks: (BlockOrigin, Vec>), + blocks: (BlockOrigin, Vec>), verifier: Arc ) -> bool { @@ -366,8 +328,8 @@ fn import_many_blocks<'a, B: BlockT, V: Verifier>( let mut imported = 0; let blocks_range = match ( - blocks.first().and_then(|b| b.block.header.as_ref().map(|h| h.number())), - blocks.last().and_then(|b| b.block.header.as_ref().map(|h| h.number())), + blocks.first().and_then(|b| b.header.as_ref().map(|h| h.number())), + blocks.last().and_then(|b| b.header.as_ref().map(|h| h.number())), ) { (Some(first), Some(last)) if first != last => format!(" ({}..{})", first, last), (Some(first), Some(_)) => format!(" ({})", first), @@ -401,15 +363,14 @@ fn import_many_blocks<'a, B: BlockT, V: Verifier>( } /// Single block import function. -fn import_single_block>( - import_handle: &BlockImport, +pub fn import_single_block>( + import_handle: &BlockImport, block_origin: BlockOrigin, - block: BlockData, + block: IncomingBlock, verifier: Arc ) -> Result::Header as HeaderT>::Number>, BlockImportError> { let peer = block.origin; - let block = block.block; let (header, justification) = match (block.header, block.justification) { (Some(header), justification) => (header, justification), @@ -465,7 +426,7 @@ fn import_single_block>( } /// Process single block import result. -fn process_import_result( +pub fn process_import_result( link: &Link, result: Result::Header as HeaderT>::Number>, BlockImportError> ) -> usize @@ -503,291 +464,3 @@ fn process_import_result( }, } } - - -#[cfg(any(test, feature = "test-helpers"))] -struct ImportCB(RefCell>) -> bool>>>); - -#[cfg(any(test, feature = "test-helpers"))] -impl ImportCB { - fn new() -> Self { - ImportCB(RefCell::new(None)) - } - fn set(&self, cb: Box) - where F: 'static + Fn(BlockOrigin, Vec>) -> bool - { - *self.0.borrow_mut() = Some(cb); - } - fn call(&self, origin: BlockOrigin, data: Vec>) -> bool { - let b = self.0.borrow(); - b.as_ref().expect("The Callback has been set before. qed.")(origin, data) - } -} - -#[cfg(any(test, feature = "test-helpers"))] -unsafe impl Send for ImportCB {} -#[cfg(any(test, feature = "test-helpers"))] -unsafe impl Sync for ImportCB {} - - -#[cfg(any(test, feature = "test-helpers"))] -/// A Verifier that accepts all blocks and passes them on with the configured -/// finality to be imported. -pub struct PassThroughVerifier(pub bool); - -#[cfg(any(test, feature = "test-helpers"))] -/// This Verifiyer accepts all data as valid -impl Verifier for PassThroughVerifier { - fn verify( - &self, - origin: BlockOrigin, - header: B::Header, - justification: Option, - body: Option> - ) -> Result<(ImportBlock, Option>), String> { - Ok((ImportBlock { - origin, - header, - body, - finalized: self.0, - justification, - post_digests: vec![], - auxiliary: Vec::new(), - }, None)) - } -} - -/// Blocks import queue that is importing blocks in the same thread. -/// The boolean value indicates whether blocks should be imported without instant finality. -#[cfg(any(test, feature = "test-helpers"))] -pub struct SyncImportQueue> { - verifier: Arc, - link: ImportCB, - block_import: SharedBlockImport, -} - -#[cfg(any(test, feature = "test-helpers"))] -impl> SyncImportQueue { - /// Create a new SyncImportQueue wrapping the given Verifier and block import - /// handle. - pub fn new(verifier: Arc, block_import: SharedBlockImport) -> Self { - let queue = SyncImportQueue { - verifier, - link: ImportCB::new(), - block_import, - }; - - let v = queue.verifier.clone(); - let import_handle = queue.block_import.clone(); - queue.link.set(Box::new(move |origin, new_blocks| { - let verifier = v.clone(); - import_many_blocks( - &*import_handle, - &NoopLink, - None, - (origin, new_blocks), - verifier, - ) - })); - - queue - } -} - -#[cfg(any(test, feature = "test-helpers"))] -impl> ImportQueue for SyncImportQueue -{ - fn start>( - &self, - link: L, - ) -> Result<(), Error> { - let v = self.verifier.clone(); - let import_handle = self.block_import.clone(); - self.link.set(Box::new(move |origin, new_blocks| { - let verifier = v.clone(); - import_many_blocks( - &*import_handle, - &link, - None, - (origin, new_blocks), - verifier, - ) - })); - Ok(()) - } - fn clear(&self) { } - - fn stop(&self) { } - - fn status(&self) -> ImportQueueStatus { - ImportQueueStatus { - importing_count: 0, - best_importing_number: Zero::zero(), - } - } - - fn is_importing(&self, _hash: &B::Hash) -> bool { - false - } - - fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { - self.link.call(origin, blocks); - } -} - -#[cfg(test)] -pub mod tests { - use client; - use message; - use test_client::{self, TestClient}; - use test_client::runtime::{Block, Hash}; - use runtime_primitives::generic::BlockId; - use std::cell::Cell; - use super::*; - - struct TestLink { - imported: Cell, - maintains: Cell, - disconnects: Cell, - restarts: Cell, - } - - impl TestLink { - fn new() -> TestLink { - TestLink { - imported: Cell::new(0), - maintains: Cell::new(0), - disconnects: Cell::new(0), - restarts: Cell::new(0), - } - } - - fn total(&self) -> usize { - self.imported.get() + self.maintains.get() + self.disconnects.get() + self.restarts.get() - } - } - - impl Link for TestLink { - fn block_imported(&self, _hash: &Hash, _number: NumberFor) { - self.imported.set(self.imported.get() + 1); - } - fn maintain_sync(&self) { - self.maintains.set(self.maintains.get() + 1); - } - fn useless_peer(&self, _: NodeIndex, _: &str) { - self.disconnects.set(self.disconnects.get() + 1); - } - fn note_useless_and_restart_sync(&self, id: NodeIndex, r: &str) { - self.useless_peer(id, r); - self.restart(); - } - fn restart(&self) { - self.restarts.set(self.restarts.get() + 1); - } - } - - fn prepare_good_block() -> (client::Client, Hash, u64, BlockData) { - let client = test_client::new(); - let block = client.new_block().unwrap().bake().unwrap(); - client.import(BlockOrigin::File, block).unwrap(); - - let (hash, number) = (client.block_hash(1).unwrap().unwrap(), 1); - let block = message::BlockData:: { - hash: client.block_hash(1).unwrap().unwrap(), - header: client.header(&BlockId::Number(1)).unwrap(), - body: None, - receipt: None, - message_queue: None, - justification: client.justification(&BlockId::Number(1)).unwrap(), - }; - - (client, hash, number, BlockData { block, origin: Some(0) }) - } - - #[test] - fn import_single_good_block_works() { - let (_, hash, number, block) = prepare_good_block(); - assert_eq!( - import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Ok(BlockImportResult::ImportedUnknown(hash, number)) - ); - } - - #[test] - fn import_single_good_known_block_is_ignored() { - let (client, hash, number, block) = prepare_good_block(); - assert_eq!( - import_single_block(&client, BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Ok(BlockImportResult::ImportedKnown(hash, number)) - ); - } - - #[test] - fn import_single_good_block_without_header_fails() { - let (_, _, _, mut block) = prepare_good_block(); - block.block.header = None; - assert_eq!( - import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), - Err(BlockImportError::IncompleteHeader(Some(0))) - ); - } - - #[test] - fn process_import_result_works() { - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - assert_eq!(link.imported.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedUnknown(Default::default(), 0))), 1); - assert_eq!(link.total(), 1); - assert_eq!(link.imported.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::IncompleteHeader(Some(0)))), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.disconnects.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::UnknownParent)), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.restarts.get(), 1); - - let link = TestLink::new(); - assert_eq!(process_import_result::(&link, Err(BlockImportError::Error)), 0); - assert_eq!(link.total(), 1); - assert_eq!(link.restarts.get(), 1); - } - - #[test] - fn import_many_blocks_stops_when_stopping() { - let (_, _, _, block) = prepare_good_block(); - let qdata = AsyncImportQueueData::new(); - let verifier = Arc::new(PassThroughVerifier(true)); - qdata.is_stopping.store(true, Ordering::SeqCst); - let client = test_client::new(); - assert!(!import_many_blocks( - &client, - &mut TestLink::new(), - Some(&qdata), - (BlockOrigin::File, vec![block.clone(), block]), - verifier - )); - } - - #[test] - fn async_import_queue_drops() { - // Perform this test multiple times since it exhibits non-deterministic behavior. - for _ in 0..100 { - let verifier = Arc::new(PassThroughVerifier(true)); - let queue = BasicQueue::new(verifier, Arc::new(test_client::new())); - queue.start(TestLink::new()).unwrap(); - drop(queue); - } - } -} diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index 76c370effd..875f4c216a 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -24,8 +24,11 @@ extern crate substrate_primitives as primitives; extern crate futures; +extern crate parking_lot; extern crate sr_version as runtime_version; extern crate sr_primitives as runtime_primitives; +#[cfg(any(test, feature = "test-helpers"))] +extern crate substrate_test_client as test_client; extern crate tokio; extern crate parity_codec as codec; @@ -33,6 +36,7 @@ extern crate parity_codec_derive; #[macro_use] extern crate error_chain; +#[macro_use] extern crate log; use std::sync::Arc; @@ -44,6 +48,7 @@ use futures::prelude::*; pub mod offline_tracker; pub mod error; mod block_import; +pub mod import_queue; pub mod evaluation; // block size limit. diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index 3e699ba382..abd737d357 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -89,7 +89,7 @@ use client::{ }; use client::blockchain::HeaderBackend; use codec::{Encode, Decode}; -use consensus_common::{BlockImport, ImportBlock, ImportResult, Authorities}; +use consensus_common::{BlockImport, Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, Authorities}; use runtime_primitives::traits::{ NumberFor, Block as BlockT, Header as HeaderT, DigestFor, ProvideRuntimeApi, Hash as HashT, }; @@ -834,7 +834,7 @@ impl, RA, PRA> BlockImport PRA: ProvideRuntimeApi, PRA::Api: GrandpaApi, { - type Error = ClientError; + type Error = ConsensusError; fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) -> Result @@ -847,7 +847,12 @@ impl, RA, PRA> BlockImport let maybe_change = self.api.runtime_api().grandpa_pending_change( &BlockId::hash(*block.header.parent_hash()), &block.header.digest().clone(), - )?; + ); + + let maybe_change = match maybe_change { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(maybe) => maybe, + }; // when we update the authorities, we need to hold the lock // until the block is written to prevent a race if we need to restore @@ -858,11 +863,9 @@ impl, RA, PRA> BlockImport let mut authorities = self.authority_set.inner().write(); let old_set = authorities.clone(); - let is_equal_or_descendent_of = |base: &Block::Hash| -> Result<(), ClientError> { + let is_equal_or_descendent_of = |base: &Block::Hash| -> Result<(), ConsensusError> { let error = || { - Err(ClientErrorKind::Backend( - "invalid authority set change: multiple pending changes on the same chain".to_string() - ).into()) + Err(ConsensusErrorKind::ClientImport("Incorrect base hash".to_string()).into()) }; if *base == hash { return error(); } @@ -872,7 +875,12 @@ impl, RA, PRA> BlockImport self.inner.backend().blockchain(), BlockId::Hash(parent_hash), BlockId::Hash(*base), - )?; + ); + + let tree_route = match tree_route { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(route) => route, + }; if tree_route.common_block().hash == *base { return error(); @@ -905,18 +913,25 @@ impl, RA, PRA> BlockImport *authorities = old_set; } e - })?; + }); - if import_result != ImportResult::Queued { - return Ok(import_result); - } + let import_result = match import_result { + Ok(ImportResult::Queued) => ImportResult::Queued, + Ok(r) => return Ok(r), + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + }; let enacts_change = self.authority_set.inner().read().enacts_change(number, |canon_number| { canonical_at_height(&self.inner, (hash, number), canon_number) - })?; + }); - if !enacts_change { - return Ok(import_result); + match enacts_change { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(enacted) => { + if !enacted { + return Ok(import_result); + } + } } match justification { @@ -925,7 +940,12 @@ impl, RA, PRA> BlockImport justification, self.authority_set.set_id(), &self.authority_set.current_authorities(), - )?; + ); + + let justification = match justification { + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(justification) => justification, + }; let result = finalize_block( &*self.inner, @@ -943,16 +963,18 @@ impl, RA, PRA> BlockImport }, Err(ExitOrError::AuthoritiesChanged(new)) => { debug!(target: "finality", "Imported justified block #{} that enacts authority set change, signalling voter.", number); - if let Err(_) = self.authority_set_change.unbounded_send(new) { - return Err(ClientErrorKind::Backend( - "imported and finalized change block but grandpa voter is no longer running".to_string() - ).into()); + if let Err(e) = self.authority_set_change.unbounded_send(new) { + return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()); } }, - Err(ExitOrError::Error(_)) => { - return Err(ClientErrorKind::Backend( - "imported change block but failed to finalize it, node may be in an inconsistent state".to_string() - ).into()); + Err(ExitOrError::Error(e)) => { + match e { + Error::Grandpa(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + Error::Network(error) => return Err(ConsensusErrorKind::ClientImport(error).into()), + Error::Blockchain(error) => return Err(ConsensusErrorKind::ClientImport(error).into()), + Error::Client(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + Error::Timer(error) => return Err(ConsensusErrorKind::ClientImport(error.to_string()).into()), + } }, } }, diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index de6c4f1cb3..a357fa81da 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -18,7 +18,7 @@ use super::*; use network::test::{Block, Hash, TestNetFactory, Peer, PeersClient}; -use network::import_queue::{PassThroughVerifier}; +use network::test::{PassThroughVerifier}; use network::config::{ProtocolConfig, Roles}; use parking_lot::Mutex; use tokio::runtime::current_thread; @@ -29,7 +29,7 @@ use client::{ }; use test_client::{self, runtime::BlockNumber}; use codec::Decode; -use consensus_common::BlockOrigin; +use consensus_common::{BlockOrigin, Error as ConsensusError}; use std::{collections::HashSet, result}; use runtime_primitives::traits::{ApiRef, ProvideRuntimeApi, RuntimeApiInfo}; use runtime_primitives::generic::BlockId; @@ -99,7 +99,7 @@ impl TestNetFactory for GrandpaTestNet { } fn make_block_import(&self, client: Arc) - -> (Arc + Send + Sync>, PeerData) + -> (Arc + Send + Sync>, PeerData) { let (import, link) = block_import( client, diff --git a/core/network/src/chain.rs b/core/network/src/chain.rs index 8547f9006e..166dfe55a7 100644 --- a/core/network/src/chain.rs +++ b/core/network/src/chain.rs @@ -19,7 +19,7 @@ use client::{self, Client as SubstrateClient, ClientInfo, BlockStatus, CallExecutor}; use client::error::Error; use client::light::fetcher::ChangesProof; -use consensus::BlockImport; +use consensus::{BlockImport, Error as ConsensusError}; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT}; use runtime_primitives::generic::{BlockId}; use consensus::{ImportBlock, ImportResult}; @@ -30,7 +30,7 @@ use primitives::{H256, Blake2Hasher, AuthorityId}; pub trait Client: Send + Sync { /// Import a new block. Parent is supposed to be existing in the blockchain. fn import(&self, block: ImportBlock, new_authorities: Option>) - -> Result; + -> Result; /// Get blockchain info. fn info(&self) -> Result, Error>; @@ -73,12 +73,12 @@ pub trait Client: Send + Sync { impl Client for SubstrateClient where B: client::backend::Backend + Send + Sync + 'static, E: CallExecutor + Send + Sync + 'static, - Self: BlockImport, + Self: BlockImport, Block: BlockT, RA: Send + Sync { fn import(&self, block: ImportBlock, new_authorities: Option>) - -> Result + -> Result { (self as &SubstrateClient).import_block(block, new_authorities) } diff --git a/core/network/src/lib.rs b/core/network/src/lib.rs index b6ba3f7883..5f10051b15 100644 --- a/core/network/src/lib.rs +++ b/core/network/src/lib.rs @@ -55,7 +55,6 @@ mod chain; mod blocks; mod on_demand; pub mod config; -pub mod import_queue; pub mod consensus_gossip; pub mod error; pub mod message; diff --git a/core/network/src/protocol.rs b/core/network/src/protocol.rs index 60133b25c1..42c5954532 100644 --- a/core/network/src/protocol.rs +++ b/core/network/src/protocol.rs @@ -24,14 +24,13 @@ use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, use runtime_primitives::generic::BlockId; use network_libp2p::{NodeIndex, Severity}; use codec::{Encode, Decode}; - +use consensus::import_queue::ImportQueue; use message::{self, Message}; use message::generic::Message as GenericMessage; use consensus_gossip::ConsensusGossip; use specialization::NetworkSpecialization; use sync::{ChainSync, Status as SyncStatus, SyncState}; use service::{TransactionPool, ExHashT}; -use import_queue::ImportQueue; use config::{ProtocolConfig, Roles}; use chain::Client; use client::light::fetcher::ChangesProof; @@ -196,7 +195,9 @@ impl, H: ExHashT> Protocol { on_demand: Option>>, transaction_pool: Arc>, specialization: S, - ) -> error::Result { + ) -> error::Result + where I: ImportQueue + { let info = chain.info()?; let sync = ChainSync::new(config.roles, &info, import_queue); let protocol = Protocol { diff --git a/core/network/src/service.rs b/core/network/src/service.rs index d633e0397d..5487accd1b 100644 --- a/core/network/src/service.rs +++ b/core/network/src/service.rs @@ -20,17 +20,19 @@ use std::{io, thread}; use std::time::Duration; use futures::{self, Future, Stream, stream, sync::oneshot}; use parking_lot::{Mutex, RwLock}; -use network_libp2p::{ProtocolId, PeerId, NetworkConfiguration, ErrorKind}; +use network_libp2p::{ProtocolId, PeerId, NetworkConfiguration, NodeIndex, ErrorKind, Severity}; use network_libp2p::{start_service, Service as NetworkService, ServiceEvent as NetworkServiceEvent}; use network_libp2p::{RegisteredProtocol, parse_str_addr, Protocol as Libp2pProtocol}; use io::NetSyncIo; +use consensus::import_queue::{ImportQueue, Link}; use consensus_gossip::ConsensusGossip; use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus}; use config::Params; use error::Error; use specialization::NetworkSpecialization; -use import_queue::ImportQueue; -use runtime_primitives::traits::{Block as BlockT}; +use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use sync::ChainSync; +use std::sync::Weak; use tokio::{runtime::Runtime, timer::Interval}; /// Type that represents fetch completion future. @@ -65,6 +67,53 @@ pub trait ExecuteInContext: Send + Sync { fn execute_in_context)>(&self, closure: F); } +/// A link implementation that connects to the network. +pub struct NetworkLink> { + /// The chain-sync handle + pub(crate) sync: Weak>>, + /// Network context. + pub(crate) context: Weak, +} + +impl> NetworkLink { + /// Execute closure with locked ChainSync. + fn with_sync, &mut Context)>(&self, closure: F) { + if let (Some(sync), Some(service)) = (self.sync.upgrade(), self.context.upgrade()) { + service.execute_in_context(move |protocol| { + let mut sync = sync.write(); + closure(&mut *sync, protocol) + }); + } + } +} + +impl> Link for NetworkLink { + fn block_imported(&self, hash: &B::Hash, number: NumberFor) { + self.with_sync(|sync, _| sync.block_imported(&hash, number)) + } + + fn maintain_sync(&self) { + self.with_sync(|sync, protocol| sync.maintain_sync(protocol)) + } + + fn useless_peer(&self, who: NodeIndex, reason: &str) { + trace!(target:"sync", "Useless peer {}, {}", who, reason); + self.with_sync(|_, protocol| protocol.report_peer(who, Severity::Useless(reason))) + } + + fn note_useless_and_restart_sync(&self, who: NodeIndex, reason: &str) { + trace!(target:"sync", "Bad peer {}, {}", who, reason); + self.with_sync(|sync, protocol| { + protocol.report_peer(who, Severity::Useless(reason)); // is this actually malign or just useless? + sync.restart(protocol); + }) + } + + fn restart(&self) { + self.with_sync(|sync, protocol| sync.restart(protocol)) + } +} + /// Substrate network service. Handles network IO and manages connectivity. pub struct Service, H: ExHashT> { /// Network service @@ -85,7 +134,9 @@ impl, H: ExHashT> Service, protocol_id: ProtocolId, import_queue: Arc, - ) -> Result>, Error> { + ) -> Result>, Error> + where I: ImportQueue + { let handler = Arc::new(Protocol::new( params.config, params.chain, @@ -106,7 +157,7 @@ impl, H: ExHashT> Service ChainSync { who: NodeIndex, _request: message::BlockRequest, response: message::BlockResponse - ) -> Option<(BlockOrigin, Vec>)> { - let new_blocks = if let Some(ref mut peer) = self.peers.get_mut(&who) { + ) -> Option<(BlockOrigin, Vec>)> { + let new_blocks: Vec> = if let Some(ref mut peer) = self.peers.get_mut(&who) { match peer.state { PeerSyncState::DownloadingNew(start_block) => { self.blocks.clear_peer_download(who); peer.state = PeerSyncState::Available; self.blocks.insert(start_block, response.blocks, who); - self.blocks.drain(self.best_queued_number + As::sa(1)) + self.blocks + .drain(self.best_queued_number + As::sa(1)) + .into_iter() + .map(|block_data| { + IncomingBlock { + hash: block_data.block.hash, + header: block_data.block.header, + body: block_data.block.body, + justification: block_data.block.justification, + origin: block_data.origin, + } + }).collect() }, PeerSyncState::DownloadingStale(_) => { peer.state = PeerSyncState::Available; - response.blocks.into_iter().map(|b| blocks::BlockData { - origin: Some(who), - block: b + response.blocks.into_iter().map(|b| { + IncomingBlock { + hash: b.hash, + header: b.header, + body: b.body, + justification: b.justification, + origin: Some(who), + } }).collect() }, PeerSyncState::AncestorSearch(n) => { @@ -253,11 +269,11 @@ impl ChainSync { }; let best_seen = self.best_seen_block(); - let is_best = new_blocks.first().and_then(|b| b.block.header.as_ref()).map(|h| best_seen.as_ref().map_or(false, |n| h.number() >= n)); + let is_best = new_blocks.first().and_then(|b| b.header.as_ref()).map(|h| best_seen.as_ref().map_or(false, |n| h.number() >= n)); let origin = if is_best.unwrap_or_default() { BlockOrigin::NetworkBroadcast } else { BlockOrigin::NetworkInitialSync }; if let Some((hash, number)) = new_blocks.last() - .and_then(|b| b.block.header.as_ref().map(|h| (b.block.hash.clone(), *h.number()))) + .and_then(|b| b.header.as_ref().map(|h| (b.hash.clone(), *h.number()))) { self.block_queued(&hash, number); } diff --git a/core/network/src/test/block_import.rs b/core/network/src/test/block_import.rs new file mode 100644 index 0000000000..6104be87f0 --- /dev/null +++ b/core/network/src/test/block_import.rs @@ -0,0 +1,171 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Testing block import logic. + +use consensus::import_queue::{import_single_block, process_import_result}; +use consensus::import_queue::{AsyncImportQueueData, BasicQueue, BlockImportError, BlockImportResult}; +use test_client::{self, TestClient}; +use test_client::runtime::{Block, Hash}; +use runtime_primitives::generic::BlockId; +use runtime_primitives::traits::NumberFor; +use std::cell::Cell; +use super::*; + +struct TestLink { + imported: Cell, + maintains: Cell, + disconnects: Cell, + restarts: Cell, +} + +impl TestLink { + fn new() -> TestLink { + TestLink { + imported: Cell::new(0), + maintains: Cell::new(0), + disconnects: Cell::new(0), + restarts: Cell::new(0), + } + } + + fn total(&self) -> usize { + self.imported.get() + self.maintains.get() + self.disconnects.get() + self.restarts.get() + } +} + +impl Link for TestLink { + fn block_imported(&self, _hash: &Hash, _number: NumberFor) { + self.imported.set(self.imported.get() + 1); + } + fn maintain_sync(&self) { + self.maintains.set(self.maintains.get() + 1); + } + fn useless_peer(&self, _: NodeIndex, _: &str) { + self.disconnects.set(self.disconnects.get() + 1); + } + fn note_useless_and_restart_sync(&self, id: NodeIndex, r: &str) { + self.useless_peer(id, r); + self.restart(); + } + fn restart(&self) { + self.restarts.set(self.restarts.get() + 1); + } +} + +fn prepare_good_block() -> (client::Client, Hash, u64, IncomingBlock) { + let client = test_client::new(); + let block = client.new_block().unwrap().bake().unwrap(); + client.import(BlockOrigin::File, block).unwrap(); + + let (hash, number) = (client.block_hash(1).unwrap().unwrap(), 1); + let header = client.header(&BlockId::Number(1)).unwrap(); + let justification = client.justification(&BlockId::Number(1)).unwrap(); + (client, hash, number, IncomingBlock { + hash, + header, + body: None, + justification, + origin: Some(0) + }) +} + +#[test] +fn import_single_good_block_works() { + let (_, hash, number, block) = prepare_good_block(); + assert_eq!( + import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Ok(BlockImportResult::ImportedUnknown(hash, number)) + ); +} + +#[test] +fn import_single_good_known_block_is_ignored() { + let (client, hash, number, block) = prepare_good_block(); + assert_eq!( + import_single_block(&client, BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Ok(BlockImportResult::ImportedKnown(hash, number)) + ); +} + +#[test] +fn import_single_good_block_without_header_fails() { + let (_, _, _, mut block) = prepare_good_block(); + block.header = None; + assert_eq!( + import_single_block(&test_client::new(), BlockOrigin::File, block, Arc::new(PassThroughVerifier(true))), + Err(BlockImportError::IncompleteHeader(Some(0))) + ); +} + +#[test] +fn process_import_result_works() { + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedKnown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + assert_eq!(link.imported.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Ok(BlockImportResult::ImportedUnknown(Default::default(), 0))), 1); + assert_eq!(link.total(), 1); + assert_eq!(link.imported.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::IncompleteHeader(Some(0)))), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.disconnects.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::UnknownParent)), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.restarts.get(), 1); + + let link = TestLink::new(); + assert_eq!(process_import_result::(&link, Err(BlockImportError::Error)), 0); + assert_eq!(link.total(), 1); + assert_eq!(link.restarts.get(), 1); +} + +#[test] +fn import_many_blocks_stops_when_stopping() { + let (_, _, _, block) = prepare_good_block(); + let qdata = AsyncImportQueueData::new(); + let verifier = Arc::new(PassThroughVerifier(true)); + qdata.stop(); + let client = test_client::new(); + assert!(!import_many_blocks( + &client, + &mut TestLink::new(), + Some(&qdata), + (BlockOrigin::File, vec![block.clone(), block]), + verifier + )); +} + +#[test] +fn async_import_queue_drops() { + // Perform this test multiple times since it exhibits non-deterministic behavior. + for _ in 0..100 { + let verifier = Arc::new(PassThroughVerifier(true)); + let queue = BasicQueue::new(verifier, Arc::new(test_client::new())); + queue.start(TestLink::new()).unwrap(); + drop(queue); + } +} diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index f8b6705164..b2beba05db 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -18,33 +18,176 @@ #[cfg(test)] mod sync; +#[cfg(test)] +mod block_import; use std::collections::{VecDeque, HashSet, HashMap}; use std::sync::Arc; use parking_lot::RwLock; use client; -use client::error::Error as ClientError; use client::block_builder::BlockBuilder; +use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; +use runtime_primitives::traits::{Block as BlockT, Zero}; use io::SyncIo; +use primitives::AuthorityId; use protocol::{Context, Protocol, ProtocolContext}; use config::ProtocolConfig; -use service::TransactionPool; +use service::{NetworkLink, TransactionPool}; use network_libp2p::{NodeIndex, PeerId, Severity}; use keyring::Keyring; use codec::Encode; -use import_queue::{SyncImportQueue, PassThroughVerifier, Verifier}; -use consensus::BlockOrigin; +use consensus::{BlockImport, BlockOrigin, ImportBlock}; +use consensus::Error as ConsensusError; +use consensus::import_queue::{import_many_blocks, ImportQueue, ImportQueueStatus, IncomingBlock}; +use consensus::import_queue::{Link, SharedBlockImport, Verifier}; use specialization::NetworkSpecialization; use consensus_gossip::ConsensusGossip; -use import_queue::{BlockImport, ImportQueue}; use service::ExecuteInContext; use test_client; pub use test_client::runtime::{Block, Hash, Transfer, Extrinsic}; pub use test_client::TestClient; +#[cfg(any(test, feature = "test-helpers"))] +use std::cell::RefCell; + +#[cfg(any(test, feature = "test-helpers"))] +struct ImportCB(RefCell>) -> bool>>>); + +#[cfg(any(test, feature = "test-helpers"))] +impl ImportCB { + fn new() -> Self { + ImportCB(RefCell::new(None)) + } + fn set(&self, cb: Box) + where F: 'static + Fn(BlockOrigin, Vec>) -> bool + { + *self.0.borrow_mut() = Some(cb); + } + fn call(&self, origin: BlockOrigin, data: Vec>) -> bool { + let b = self.0.borrow(); + b.as_ref().expect("The Callback has been set before. qed.")(origin, data) + } +} + +#[cfg(any(test, feature = "test-helpers"))] +unsafe impl Send for ImportCB {} +#[cfg(any(test, feature = "test-helpers"))] +unsafe impl Sync for ImportCB {} + + +#[cfg(any(test, feature = "test-helpers"))] +/// A Verifier that accepts all blocks and passes them on with the configured +/// finality to be imported. +pub struct PassThroughVerifier(pub bool); + +#[cfg(any(test, feature = "test-helpers"))] +/// This Verifiyer accepts all data as valid +impl Verifier for PassThroughVerifier { + fn verify( + &self, + origin: BlockOrigin, + header: B::Header, + justification: Option, + body: Option> + ) -> Result<(ImportBlock, Option>), String> { + Ok((ImportBlock { + origin, + header, + body, + finalized: self.0, + justification, + post_digests: vec![], + auxiliary: Vec::new(), + }, None)) + } +} + +/// A link implementation that does nothing. +pub struct NoopLink; + +impl Link for NoopLink { } + +/// Blocks import queue that is importing blocks in the same thread. +/// The boolean value indicates whether blocks should be imported without instant finality. +#[cfg(any(test, feature = "test-helpers"))] +pub struct SyncImportQueue> { + verifier: Arc, + link: ImportCB, + block_import: SharedBlockImport, +} + +#[cfg(any(test, feature = "test-helpers"))] +impl> SyncImportQueue { + /// Create a new SyncImportQueue wrapping the given Verifier and block import + /// handle. + pub fn new(verifier: Arc, block_import: SharedBlockImport) -> Self { + let queue = SyncImportQueue { + verifier, + link: ImportCB::new(), + block_import, + }; + + let v = queue.verifier.clone(); + let import_handle = queue.block_import.clone(); + queue.link.set(Box::new(move |origin, new_blocks| { + let verifier = v.clone(); + import_many_blocks( + &*import_handle, + &NoopLink, + None, + (origin, new_blocks), + verifier, + ) + })); + + queue + } +} + +#[cfg(any(test, feature = "test-helpers"))] +impl> ImportQueue for SyncImportQueue +{ + fn start>( + &self, + link: L, + ) -> Result<(), std::io::Error> { + let v = self.verifier.clone(); + let import_handle = self.block_import.clone(); + self.link.set(Box::new(move |origin, new_blocks| { + let verifier = v.clone(); + import_many_blocks( + &*import_handle, + &link, + None, + (origin, new_blocks), + verifier, + ) + })); + Ok(()) + } + fn clear(&self) { } + + fn stop(&self) { } + + fn status(&self) -> ImportQueueStatus { + ImportQueueStatus { + importing_count: 0, + best_importing_number: Zero::zero(), + } + } + + fn is_importing(&self, _hash: &B::Hash) -> bool { + false + } + + fn import_blocks(&self, origin: BlockOrigin, blocks: Vec>) { + self.link.call(origin, blocks); + } +} + struct DummyContextExecutor(Arc>, Arc>>); unsafe impl Send for DummyContextExecutor {} unsafe impl Sync for DummyContextExecutor {} @@ -157,7 +300,7 @@ impl, D> Peer { // Update the sync state to the latest chain state. let info = self.client.info().expect("In-mem client does not fail"); let header = self.client.header(&BlockId::Hash(info.chain.best_hash)).unwrap().unwrap(); - let network_link = ::import_queue::NetworkLink { + let network_link = NetworkLink { sync: Arc::downgrade(self.sync.sync()), context: Arc::downgrade(&self.executor), }; @@ -237,8 +380,6 @@ impl, D> Peer { pub fn generate_blocks(&self, count: usize, origin: BlockOrigin, mut edit_block: F) where F: FnMut(BlockBuilder) -> Block { - use blocks::BlockData; - for _ in 0..count { let builder = self.client.new_block().unwrap(); let block = edit_block(builder); @@ -248,17 +389,15 @@ impl, D> Peer { // NOTE: if we use a non-synchronous queue in the test-net in the future, // this may not work. - self.import_queue.import_blocks(origin, vec![BlockData { + self.import_queue.import_blocks(origin, vec![ + IncomingBlock { origin: None, - block: ::message::BlockData:: { hash, header: Some(header), body: Some(block.extrinsics), - receipt: None, - message_queue: None, justification: None, }, - }]); + ]); } } @@ -330,7 +469,7 @@ pub trait TestNetFactory: Sized { /// Get custom block import handle for fresh client, along with peer data. fn make_block_import(&self, client: Arc) - -> (Arc + Send + Sync>, Self::PeerData) + -> (Arc + Send + Sync>, Self::PeerData) { (client, Default::default()) } diff --git a/core/service/src/chain_ops.rs b/core/service/src/chain_ops.rs index 6d6dc558f4..15a4deb42a 100644 --- a/core/service/src/chain_ops.rs +++ b/core/service/src/chain_ops.rs @@ -21,7 +21,7 @@ use futures::Future; use runtime_primitives::generic::{SignedBlock, BlockId}; use runtime_primitives::traits::{As, Block, Header}; -use network::import_queue::{ImportQueue, Link, BlockData}; +use consensus_common::import_queue::{ImportQueue, IncomingBlock, Link}; use network::message; use consensus_common::BlockOrigin; @@ -123,7 +123,15 @@ pub fn import_blocks(mut config: FactoryFullConfiguration, exit: E, message_queue: None }; // import queue handles verification and importing it into the client - queue.import_blocks(BlockOrigin::File, vec![BlockData:: { block, origin: None }]); + queue.import_blocks(BlockOrigin::File, vec![ + IncomingBlock::{ + hash: block.hash, + header: block.header, + body: block.body, + justification: block.justification, + origin: None, + } + ]); } else { warn!("Error reading block data at {}.", b); break; diff --git a/core/service/src/components.rs b/core/service/src/components.rs index df50d54529..29b6768374 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -23,7 +23,8 @@ use chain_spec::ChainSpec; use client_db; use client::{self, Client, runtime_api::{Metadata, TaggedTransactionQueue}}; use {error, Service, maybe_start_server}; -use network::{self, OnDemand, import_queue::ImportQueue}; +use consensus_common::import_queue::ImportQueue; +use network::{self, OnDemand}; use substrate_executor::{NativeExecutor, NativeExecutionDispatch}; use transaction_pool::txpool::{self, Options as TransactionPoolOptions, Pool as TransactionPool}; use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::{BlockId, SignedBlock}}; @@ -279,9 +280,9 @@ pub trait ServiceFactory: 'static + Sized { /// Extended light service type. type LightService: ServiceTrait>; /// ImportQueue for full client - type FullImportQueue: network::import_queue::ImportQueue + 'static; + type FullImportQueue: consensus_common::import_queue::ImportQueue + 'static; /// ImportQueue for light clients - type LightImportQueue: network::import_queue::ImportQueue + 'static; + type LightImportQueue: consensus_common::import_queue::ImportQueue + 'static; //TODO: replace these with a constructor trait. that TransactionPool implements. (#1242) /// Extrinsic pool constructor for the full client. diff --git a/core/test-client/src/client_ext.rs b/core/test-client/src/client_ext.rs index d4ca6361ee..a833472e44 100644 --- a/core/test-client/src/client_ext.rs +++ b/core/test-client/src/client_ext.rs @@ -17,7 +17,7 @@ //! Client extension for tests. use client::{self, Client}; -use consensus::{ImportBlock, BlockImport, BlockOrigin}; +use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError}; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; use primitives::Blake2Hasher; @@ -27,11 +27,11 @@ use runtime; pub trait TestClient: Sized { /// Import block to the chain. No finality. fn import(&self, origin: BlockOrigin, block: runtime::Block) - -> client::error::Result<()>; + -> Result<(), ConsensusError>; /// Import block with justification, finalizes block. fn import_justified(&self, origin: BlockOrigin, block: runtime::Block, justification: Justification) - -> client::error::Result<()>; + -> Result<(), ConsensusError>; /// Finalize a block. fn finalize_block(&self, id: BlockId, justification: Option) -> client::error::Result<()>; @@ -44,10 +44,10 @@ impl TestClient for Client where B: client::backend::Backend, E: client::CallExecutor, - Self: BlockImport, + Self: BlockImport, { fn import(&self, origin: BlockOrigin, block: runtime::Block) - -> client::error::Result<()> + -> Result<(), ConsensusError> { let import = ImportBlock { origin, @@ -63,7 +63,7 @@ impl TestClient for Client } fn import_justified(&self, origin: BlockOrigin, block: runtime::Block, justification: Justification) - -> client::error::Result<()> + -> Result<(), ConsensusError> { let import = ImportBlock { origin, -- GitLab From 50aa34fd48b301c1f96d6fc6a26f1644555d5426 Mon Sep 17 00:00:00 2001 From: Gregory Terzian <2792687+gterzian@users.noreply.github.com> Date: Mon, 31 Dec 2018 19:33:49 +0800 Subject: [PATCH 021/349] moving core/service/consensus into new core/authorship crate (#1257) --- Cargo.lock | 15 ++++++++ core/basic-authorship/Cargo.toml | 14 ++++++++ .../src/basic_authorship.rs} | 0 core/basic-authorship/src/lib.rs | 34 +++++++++++++++++++ core/service/src/lib.rs | 2 -- node/cli/Cargo.toml | 1 + node/cli/src/service.rs | 2 +- 7 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 core/basic-authorship/Cargo.toml rename core/{service/src/consensus.rs => basic-authorship/src/basic_authorship.rs} (100%) create mode 100644 core/basic-authorship/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index ff4f995a8c..ae0492f52f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1804,6 +1804,7 @@ dependencies = [ "sr-io 0.1.0", "sr-primitives 0.1.0", "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-basic-authorship 0.1.0", "substrate-cli 0.3.0", "substrate-client 0.1.0", "substrate-consensus-aura 0.1.0", @@ -3297,6 +3298,20 @@ dependencies = [ "vergen 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "substrate-basic-authorship" +version = "0.1.0" +dependencies = [ + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-primitives 0.1.0", + "substrate-client 0.1.0", + "substrate-consensus-aura-primitives 0.1.0", + "substrate-consensus-common 0.1.0", + "substrate-primitives 0.1.0", + "substrate-transaction-pool 0.1.0", +] + [[package]] name = "substrate-cli" version = "0.3.0" diff --git a/core/basic-authorship/Cargo.toml b/core/basic-authorship/Cargo.toml new file mode 100644 index 0000000000..00c50781fd --- /dev/null +++ b/core/basic-authorship/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "substrate-basic-authorship" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +log = "0.4" +parity-codec = "2.1" +sr-primitives = { path = "../../core/sr-primitives" } +substrate-client = { path = "../../core/client" } +substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives" } +substrate-consensus-common = { path = "../../core/consensus/common" } +substrate-primitives = { path = "../../core/primitives" } +substrate-transaction-pool = { path = "../../core/transaction-pool" } diff --git a/core/service/src/consensus.rs b/core/basic-authorship/src/basic_authorship.rs similarity index 100% rename from core/service/src/consensus.rs rename to core/basic-authorship/src/basic_authorship.rs diff --git a/core/basic-authorship/src/lib.rs b/core/basic-authorship/src/lib.rs new file mode 100644 index 0000000000..44caadea3c --- /dev/null +++ b/core/basic-authorship/src/lib.rs @@ -0,0 +1,34 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Basic implementation of block-authoring logic. + +#![warn(unused_extern_crates)] + +extern crate substrate_consensus_aura_primitives as aura_primitives; +extern crate substrate_primitives as primitives; +extern crate sr_primitives as runtime_primitives; +extern crate substrate_consensus_common as consensus_common; +extern crate substrate_client as client; +extern crate parity_codec as codec; +extern crate substrate_transaction_pool as transaction_pool; + +#[macro_use] +extern crate log; + +mod basic_authorship; + +pub use basic_authorship::ProposerFactory; diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index f316b49250..f782f917ed 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -58,7 +58,6 @@ mod error; mod chain_spec; pub mod config; pub mod chain_ops; -pub mod consensus; use std::io; use std::net::SocketAddr; @@ -82,7 +81,6 @@ pub use chain_spec::{ChainSpec, Properties}; pub use transaction_pool::txpool::{self, Pool as TransactionPool, Options as TransactionPoolOptions, ChainApi, IntoPoolError}; pub use client::ExecutionStrategy; -pub use consensus::ProposerFactory; pub use components::{ServiceFactory, FullBackend, FullExecutor, LightBackend, LightExecutor, Components, PoolApi, ComponentClient, ComponentBlock, FullClient, LightClient, FullComponents, LightComponents, diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 438d72173d..8a1888d936 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -19,6 +19,7 @@ substrate-primitives = { path = "../../core/primitives" } node-runtime = { path = "../runtime" } node-primitives = { path = "../primitives" } hex-literal = "0.1" +substrate-basic-authorship = { path = "../../core/basic-authorship" } substrate-service = { path = "../../core/service" } substrate-transaction-pool = { path = "../../core/transaction-pool" } substrate-network = { path = "../../core/network" } diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index d173c7419e..89dbd02319 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -77,7 +77,7 @@ construct_service_factory! { if let Some(ref key) = local_key { info!("Using authority key {}", key.public()); - let proposer = Arc::new(substrate_service::ProposerFactory { + let proposer = Arc::new(substrate_basic_authorship::ProposerFactory { client: service.client(), transaction_pool: service.transaction_pool(), }); -- GitLab From 6fc50a3a649bc548fb79370d9642280c9d7c6492 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Fri, 4 Jan 2019 20:34:58 +0100 Subject: [PATCH 022/349] Support custom fork choice rule (#1339) * Support custom fork choice rule * Remove unneeded reexport * Fix network compile --- core/client/src/client.rs | 10 ++++++++-- core/consensus/aura/src/lib.rs | 4 +++- core/consensus/common/src/block_import.rs | 11 +++++++++++ core/consensus/common/src/lib.rs | 2 +- core/network/src/test/mod.rs | 3 ++- core/test-client/src/client_ext.rs | 4 +++- 6 files changed, 28 insertions(+), 6 deletions(-) diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 7f8c81d5ab..b0dfb939d0 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -25,7 +25,7 @@ use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, }; -use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin}; +use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin, ForkChoiceStrategy}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, ApiRef, ProvideRuntimeApi, Digest, DigestItem, @@ -544,6 +544,7 @@ impl Client where authorities: Option>, finalized: bool, aux: Vec<(Vec, Option>)>, + fork_choice: ForkChoiceStrategy, ) -> error::Result where E: CallExecutor + Send + Sync + Clone, { @@ -608,7 +609,10 @@ impl Client where }; // TODO: non longest-chain rule. - let is_new_best = finalized || import_headers.post().number() > &last_best_number; + let is_new_best = finalized || match fork_choice { + ForkChoiceStrategy::LongestChain => import_headers.post().number() > &last_best_number, + ForkChoiceStrategy::Custom(v) => v, + }; let leaf_state = if finalized { ::backend::NewBlockState::Final } else if is_new_best { @@ -1038,6 +1042,7 @@ impl consensus::BlockImport for Client body, finalized, auxiliary, + fork_choice, } = import_block; assert!(justification.is_some() && finalized || justification.is_none()); @@ -1074,6 +1079,7 @@ impl consensus::BlockImport for Client new_authorities, finalized, auxiliary, + fork_choice, ); *self.importing_block.write() = None; diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index 911ae6304a..b57dab030c 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -61,7 +61,7 @@ use std::sync::Arc; use std::time::Duration; use codec::Encode; -use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer}; +use consensus_common::{Authorities, BlockImport, Environment, Error as ConsensusError, Proposer, ForkChoiceStrategy}; use consensus_common::import_queue::{Verifier, BasicQueue}; use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; @@ -324,6 +324,7 @@ pub fn start_aura( body: Some(body), finalized: false, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; if let Err(e) = block_import.import_block(import_block, None) { @@ -524,6 +525,7 @@ impl Verifier for AuraVerifier { /// Origin of the Block @@ -83,6 +92,8 @@ pub struct ImportBlock { /// Contains a list of key-value pairs. If values are `None`, the keys /// will be deleted. pub auxiliary: Vec<(Vec, Option>)>, + /// Fork choice strategy of this import. + pub fork_choice: ForkChoiceStrategy, } impl ImportBlock { diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index 875f4c216a..e9b5d82951 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -55,7 +55,7 @@ pub mod evaluation; const MAX_TRANSACTIONS_SIZE: usize = 4 * 1024 * 1024; pub use self::error::{Error, ErrorKind}; -pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult}; +pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult, ForkChoiceStrategy}; /// Trait for getting the authorities at a given block. pub trait Authorities { diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index b2beba05db..94518978bc 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -38,7 +38,7 @@ use service::{NetworkLink, TransactionPool}; use network_libp2p::{NodeIndex, PeerId, Severity}; use keyring::Keyring; use codec::Encode; -use consensus::{BlockImport, BlockOrigin, ImportBlock}; +use consensus::{BlockImport, BlockOrigin, ImportBlock, ForkChoiceStrategy}; use consensus::Error as ConsensusError; use consensus::import_queue::{import_many_blocks, ImportQueue, ImportQueueStatus, IncomingBlock}; use consensus::import_queue::{Link, SharedBlockImport, Verifier}; @@ -101,6 +101,7 @@ impl Verifier for PassThroughVerifier { justification, post_digests: vec![], auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }, None)) } } diff --git a/core/test-client/src/client_ext.rs b/core/test-client/src/client_ext.rs index a833472e44..f766f427cd 100644 --- a/core/test-client/src/client_ext.rs +++ b/core/test-client/src/client_ext.rs @@ -17,7 +17,7 @@ //! Client extension for tests. use client::{self, Client}; -use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError}; +use consensus::{ImportBlock, BlockImport, BlockOrigin, Error as ConsensusError, ForkChoiceStrategy}; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; use primitives::Blake2Hasher; @@ -57,6 +57,7 @@ impl TestClient for Client body: Some(block.extrinsics), finalized: false, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; self.import_block(import, None).map(|_| ()) @@ -73,6 +74,7 @@ impl TestClient for Client body: Some(block.extrinsics), finalized: true, auxiliary: Vec::new(), + fork_choice: ForkChoiceStrategy::LongestChain, }; self.import_block(import, None).map(|_| ()) -- GitLab From 73f19b0e7c09c4f9e6af798fb6fe0d2749fa832f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Sun, 6 Jan 2019 16:43:51 +0000 Subject: [PATCH 023/349] Improve ondemand request dispatch (#1349) * core: fix bug on ondemand dispatch after a request was dispatched to the last peer the dispatch would loop forever on subsequent requests that aren't able to be fulfilled by any of the peers, since the last peer wasn't updated. * core: try to dispatch all pending ondemand requests --- core/network/src/on_demand.rs | 75 ++++++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index 59a5333a47..0c5140f2fe 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -413,16 +413,24 @@ impl OnDemandCore where None => return, }; - let last_peer = self.idle_peers.back().cloned(); - while !self.pending_requests.is_empty() { + let mut last_peer = self.idle_peers.back().cloned(); + let mut unhandled_requests = VecDeque::new(); + + loop { let peer = match self.idle_peers.pop_front() { Some(peer) => peer, - None => return, + None => break, }; // check if request can (optimistically) be processed by the peer let can_be_processed_by_peer = { - let request = self.pending_requests.front().expect("checked in loop condition; qed"); + let request = match self.pending_requests.front() { + Some(r) => r, + None => { + self.idle_peers.push_front(peer); + break; + }, + }; let peer_best_block = self.best_blocks.get(&peer) .expect("entries are inserted into best_blocks when peer is connected; entries are removed from best_blocks when peer is disconnected; @@ -436,12 +444,16 @@ impl OnDemandCore where // we have enumerated all peers and noone can handle request if Some(peer) == last_peer { - break; + let request = self.pending_requests.pop_front().expect("checked in loop condition; qed"); + unhandled_requests.push_back(request); + last_peer = self.idle_peers.back().cloned(); } continue; } + last_peer = self.idle_peers.back().cloned(); + let mut request = self.pending_requests.pop_front().expect("checked in loop condition; qed"); request.timestamp = Instant::now(); trace!(target: "sync", "Dispatching remote request {} to peer {}", request.id, peer); @@ -449,6 +461,8 @@ impl OnDemandCore where service.execute_in_context(|ctx| ctx.send_message(peer, request.message())); self.active_peers.insert(peer, request); } + + self.pending_requests.append(&mut unhandled_requests); } } @@ -928,4 +942,55 @@ pub mod tests { assert!(!on_demand.core.lock().idle_peers.iter().any(|_| true)); assert_eq!(on_demand.core.lock().pending_requests.len(), 0); } + + #[test] + fn does_not_loop_forever_after_dispatching_request_to_last_peer() { + // this test is a regression for a bug where the dispatch function would + // loop forever after dispatching a request to the last peer, since the + // last peer was not updated + let (_x, on_demand) = dummy(true); + let queue = RwLock::new(VecDeque::new()); + let mut network = TestIo::new(&queue, None); + + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + + on_demand.on_connect(1, Roles::FULL, 200); + on_demand.on_connect(2, Roles::FULL, 200); + on_demand.on_connect(3, Roles::FULL, 250); + + assert_eq!(vec![1, 2], on_demand.core.lock().idle_peers.iter().cloned().collect::>()); + assert_eq!(on_demand.core.lock().pending_requests.len(), 1); + } + + #[test] + fn tries_to_send_all_pending_requests() { + let (_x, on_demand) = dummy(true); + let queue = RwLock::new(VecDeque::new()); + let mut network = TestIo::new(&queue, None); + + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 300, + retry_count: None, + }); + on_demand.remote_header(RemoteHeaderRequest { + cht_root: Default::default(), + block: 250, + retry_count: None, + }); + + on_demand.on_connect(1, Roles::FULL, 250); + + assert!(on_demand.core.lock().idle_peers.iter().cloned().collect::>().is_empty()); + assert_eq!(on_demand.core.lock().pending_requests.len(), 1); + } } -- GitLab From 1e6037205e177739d6e816bd648842c2214830ea Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Sun, 6 Jan 2019 17:44:52 +0100 Subject: [PATCH 024/349] Small update to documentation of `construct_runtime!` (#1353) Documentation says the `default` macro expands to `Module, Call, Storage, Event, Config`, but it actually uses the generic config: `Module, Call, Storage, Event, Config` --- srml/support/src/runtime.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/srml/support/src/runtime.rs b/srml/support/src/runtime.rs index 5fcd8c565b..11e2f667a7 100644 --- a/srml/support/src/runtime.rs +++ b/srml/support/src/runtime.rs @@ -31,11 +31,11 @@ /// ) /// ``` /// -/// The module `System: system` will expand to `System: system::{Module, Call, Storage, Event, Config}`. +/// The module `System: system` will expand to `System: system::{Module, Call, Storage, Event, Config}`. /// The identifier `System` is the name of the module and the lower case identifier `system` is the /// name of the rust module for this module. /// The module `Test: test::{default, Log(Test)}` will expand to -/// `Test: test::{Module, Call, Storage, Event, Config, Log(Test)}`. +/// `Test: test::{Module, Call, Storage, Event, Config, Log(Test)}`. /// The module `Test2: test_with_long_module::{Module}` will expand to /// `Test2: test_with_long_module::{Module}`. /// -- GitLab From 9a0e209e810a8e786fd49c1c21e3df518aafd604 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Sun, 6 Jan 2019 19:45:41 +0300 Subject: [PATCH 025/349] Fixed ancestry search/block queue interaction (#1337) * Fixed ancestry search - block queue interaction * Style --- core/network/src/sync.rs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/core/network/src/sync.rs b/core/network/src/sync.rs index 315156588e..54da778266 100644 --- a/core/network/src/sync.rs +++ b/core/network/src/sync.rs @@ -23,7 +23,7 @@ use consensus::BlockOrigin; use consensus::import_queue::{ImportQueue, IncomingBlock}; use client::error::Error as ClientError; use blocks::BlockCollection; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero}; use runtime_primitives::generic::BlockId; use message::{self, generic::Message as GenericMessage}; use config::Roles; @@ -32,9 +32,10 @@ use config::Roles; const MAX_BLOCKS_TO_REQUEST: usize = 128; // Maximum blocks to store in the import queue. const MAX_IMPORTING_BLOCKS: usize = 2048; +// Number of blocks in the queue that prevents ancestry search. +const MAJOR_SYNC_BLOCKS: usize = 5; struct PeerSync { - pub common_hash: B::Hash, pub common_number: NumberFor, pub best_hash: B::Hash, pub best_number: NumberFor, @@ -141,16 +142,25 @@ impl ChainSync { (Ok(BlockStatus::KnownBad), _) => { protocol.report_peer(who, Severity::Bad(&format!("New peer with known bad best block {} ({}).", info.best_hash, info.best_number))); }, - (Ok(BlockStatus::Unknown), b) if b == As::sa(0) => { + (Ok(BlockStatus::Unknown), b) if b.is_zero() => { protocol.report_peer(who, Severity::Bad(&format!("New peer with unknown genesis hash {} ({}).", info.best_hash, info.best_number))); }, + (Ok(BlockStatus::Unknown), _) if self.import_queue.status().importing_count > MAJOR_SYNC_BLOCKS => { + // when actively syncing the common point moves too fast. + debug!(target:"sync", "New peer with unknown best hash {} ({}), assuming common block.", self.best_queued_hash, self.best_queued_number); + self.peers.insert(who, PeerSync { + common_number: self.best_queued_number, + best_hash: info.best_hash, + best_number: info.best_number, + state: PeerSyncState::Available, + }); + } (Ok(BlockStatus::Unknown), _) => { let our_best = self.best_queued_number; if our_best > As::sa(0) { let common_best = ::std::cmp::min(our_best, info.best_number); debug!(target:"sync", "New peer with unknown best hash {} ({}), searching for common ancestor.", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: self.genesis_hash, common_number: As::sa(0), best_hash: info.best_hash, best_number: info.best_number, @@ -161,7 +171,6 @@ impl ChainSync { // We are at genesis, just start downloading debug!(target:"sync", "New peer with best hash {} ({}).", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: self.genesis_hash, common_number: As::sa(0), best_hash: info.best_hash, best_number: info.best_number, @@ -173,7 +182,6 @@ impl ChainSync { (Ok(BlockStatus::Queued), _) | (Ok(BlockStatus::InChain), _) => { debug!(target:"sync", "New peer with known best hash {} ({}).", info.best_hash, info.best_number); self.peers.insert(who, PeerSync { - common_hash: info.best_hash, common_number: info.best_number, best_hash: info.best_hash, best_number: info.best_number, @@ -230,7 +238,6 @@ impl ChainSync { match protocol.client().block_hash(n) { Ok(Some(block_hash)) if block_hash == block.hash => { if peer.common_number < n { - peer.common_hash = block.hash; peer.common_number = n; } peer.state = PeerSyncState::Available; @@ -300,15 +307,14 @@ impl ChainSync { // Update common blocks for (n, peer) in self.peers.iter_mut() { if let PeerSyncState::AncestorSearch(_) = peer.state { - continue; + // Abort search. + peer.state = PeerSyncState::Available; } trace!(target: "sync", "Updating peer {} info, ours={}, common={}, their best={}", n, number, peer.common_number, peer.best_number); if peer.best_number >= number { peer.common_number = number; - peer.common_hash = *hash; } else { peer.common_number = peer.best_number; - peer.common_hash = peer.best_hash; } } } @@ -379,10 +385,6 @@ impl ChainSync { pub(crate) fn restart(&mut self, protocol: &mut Context) { self.import_queue.clear(); self.blocks.clear(); - let ids: Vec = self.peers.keys().map(|p| *p).collect(); - for id in ids { - self.new_peer(protocol, id); - } match protocol.client().info() { Ok(info) => { self.best_queued_hash = info.best_queued_hash.unwrap_or(info.chain.best_hash); @@ -395,6 +397,10 @@ impl ChainSync { self.best_queued_number = As::sa(0); } } + let ids: Vec = self.peers.drain().map(|(id, _)| id).collect(); + for id in ids { + self.new_peer(protocol, id); + } } pub(crate) fn clear(&mut self) { -- GitLab From d87fb066858ee49297d853315f93d06271401cf8 Mon Sep 17 00:00:00 2001 From: Aton Date: Mon, 7 Jan 2019 17:17:05 +0800 Subject: [PATCH 026/349] fix bug for revert (#1341) * must pass sub_matches to function, so that could get `` in revert * revert should del current best index block, not prev block --- core/cli/src/lib.rs | 2 +- core/client/db/src/lib.rs | 23 ++++++++++++++--------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/core/cli/src/lib.rs b/core/cli/src/lib.rs index dc3c96f9cd..b70420f588 100644 --- a/core/cli/src/lib.rs +++ b/core/cli/src/lib.rs @@ -422,7 +422,7 @@ where } else if let Some(sub_matches) = matches.subcommand_matches("revert") { revert_chain::( get_db_path_for_subcommand(matches, sub_matches)?, - matches, + sub_matches, spec )?; return Ok(Action::ExecutedInternally); diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 72ee2c772e..9df93e45b5 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -854,6 +854,9 @@ impl client::backend::Backend for Backend whe fn revert(&self, n: NumberFor) -> Result, client::error::Error> { use client::blockchain::HeaderBackend; let mut best = self.blockchain.info()?.best_number; + // if the best is lower to n(less then 256), just use best number in case overflow + let n = if best < n { best } else { n }; + for c in 0 .. n.as_() { if best == As::sa(0) { return Ok(As::sa(c)) @@ -862,18 +865,20 @@ impl client::backend::Backend for Backend whe match self.storage.state_db.revert_one() { Some(commit) => { apply_state_commit(&mut transaction, commit); - let _removed = best.clone(); - best -= As::sa(1); - let header = self.blockchain.header(BlockId::Number(best))?.ok_or_else( + let removed = self.blockchain.header(BlockId::Number(best))?.ok_or_else( || client::error::ErrorKind::UnknownBlock( - format!("Error reverting to {}. Block header not found.", best)))?; + format!("Error reverting to {}. Block hash not found.", best)))?; - let lookup_key = ::utils::number_and_hash_to_lookup_key(header.number().clone(), header.hash().clone()); - transaction.put(columns::META, meta_keys::BEST_BLOCK, &lookup_key); - transaction.delete(columns::KEY_LOOKUP, header.hash().as_ref()); + best -= As::sa(1); // prev block + let hash = self.blockchain.hash(best)?.ok_or_else( + || client::error::ErrorKind::UnknownBlock( + format!("Error reverting to {}. Block hash not found.", best)))?; + let key = ::utils::number_and_hash_to_lookup_key(best.clone(), hash.clone()); + transaction.put(columns::META, meta_keys::BEST_BLOCK, &key); + transaction.delete(columns::KEY_LOOKUP, removed.hash().as_ref()); self.storage.db.write(transaction).map_err(db_err)?; - self.blockchain.update_meta(header.hash().clone(), best.clone(), true, false); - self.blockchain.leaves.write().revert(header.hash().clone(), header.number().clone(), header.parent_hash().clone()); + self.blockchain.update_meta(hash, best, true, false); + self.blockchain.leaves.write().revert(removed.hash().clone(), removed.number().clone(), removed.parent_hash().clone()); } None => return Ok(As::sa(c)) } -- GitLab From 486cfafd9229410979b827ffc58e7d63ce3f8ed2 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Mon, 7 Jan 2019 15:32:04 +0100 Subject: [PATCH 027/349] log on reorganization (#1356) --- Cargo.lock | 1 - core/cli/src/informant.rs | 35 +++++++++++++++++++++++++++++++++-- core/service/Cargo.toml | 1 - core/service/src/lib.rs | 1 - 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae0492f52f..dfab26f9a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3711,7 +3711,6 @@ dependencies = [ "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-client-db 0.1.0", - "substrate-consensus-aura-primitives 0.1.0", "substrate-consensus-common 0.1.0", "substrate-executor 0.1.0", "substrate-keystore 0.1.0", diff --git a/core/cli/src/informant.rs b/core/cli/src/informant.rs index 5912da8126..e9dab4ae8b 100644 --- a/core/cli/src/informant.rs +++ b/core/cli/src/informant.rs @@ -24,7 +24,9 @@ use tokio::runtime::TaskExecutor; use tokio::timer::Interval; use sysinfo::{get_current_pid, ProcessExt, System, SystemExt}; use network::{SyncState, SyncProvider}; -use client::BlockchainEvents; +use client::{backend::Backend, BlockchainEvents}; + +use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Header, As}; const TIMER_INTERVAL_MS: u64 = 5000; @@ -92,7 +94,36 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe }); let client = service.client(); - let display_block_import = client.import_notification_stream().for_each(|n| { + let mut last = match client.info() { + Ok(info) => Some((info.chain.best_number, info.chain.best_hash)), + Err(e) => { warn!("Error getting best block information: {:?}", e); None } + }; + + let display_block_import = client.import_notification_stream().for_each(move |n| { + // detect and log reorganizations. + if let Some((ref last_num, ref last_hash)) = last { + if n.header.parent_hash() != last_hash { + let tree_route = ::client::blockchain::tree_route( + client.backend().blockchain(), + BlockId::Hash(last_hash.clone()), + BlockId::Hash(n.hash), + ); + + match tree_route { + Ok(ref t) if !t.retracted().is_empty() => info!( + "Reorg from #{},{} to #{},{}, common ancestor #{},{}", + last_num, last_hash, + n.header.number(), n.hash, + t.common_block().number, t.common_block().hash, + ), + Ok(_) => {}, + Err(e) => warn!("Error computing tree route: {}", e), + } + } + } + + last = Some((n.header.number().clone(), n.hash.clone())); + info!(target: "substrate", "Imported #{} ({})", n.header.number(), n.hash); Ok(()) }); diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index e9f165ed9d..f950a77341 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -21,7 +21,6 @@ sr-io = { path = "../../core/sr-io" } sr-primitives = { path = "../../core/sr-primitives" } substrate-primitives = { path = "../../core/primitives" } substrate-consensus-common = { path = "../../core/consensus/common" } -substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives" } substrate-network = { path = "../../core/network" } substrate-client = { path = "../../core/client" } substrate-client-db = { path = "../../core/client/db" } diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index f782f917ed..dec78575c8 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -34,7 +34,6 @@ extern crate substrate_client as client; extern crate substrate_client_db as client_db; extern crate parity_codec as codec; extern crate substrate_transaction_pool as transaction_pool; -extern crate substrate_consensus_aura_primitives as aura_primitives; extern crate substrate_rpc_servers as rpc; extern crate target_info; extern crate tokio; -- GitLab From f24406603c0d503920affb629bc1a9d0a490ea92 Mon Sep 17 00:00:00 2001 From: Luke Schoen Date: Tue, 8 Jan 2019 01:53:37 +1100 Subject: [PATCH 028/349] Update SRML Council: prevent excess votes/computation (#1162) * fix: Add assertions to prevent excess votes and computation, and to end council seat election when no empty seats * Add assertion to prevent a vote from voters that provide a list of votes that exceeds the desired seats length, since otherise an attacker may be able to submit a very long list of `votes` that far exceeds the amount of candidates and waste more computation than a reasonable voting bond would cover. Added additional associated test that may be run with `cargo test -p srml-council` * Add assertion so expired council seats are not up for election when desired seat count changes during the voting period such that there are no longer any empty seats * Update comment to refer to `reporter` instead of `who` (target of inactivity), since the origin is the `reporter` * Update commment to refer more specifically to how many vote indexes, since `InactiveGracePeriod` is measured in vote indexes * Update comment for `ApprovalsOf` since previously the comment was a duplicate of the comment for `LastActiveOf`'s * Create variable to refer to `retaining_seats` to improve readability * Reference Notes: https://hackmd.io/nr6kPD2sR4urmljtvHs0CQ * WIP - length votes should be less than length candidates. pushing changes for reference so can fix * fix: Amount of candidate approval votes cannot exceed candidates amount. Candidates amount must be over zero. * Fix so that amount of candidate approval votes cannot exceed amount of candidates (instead of desired seats) * Add assertion to `set_approvals` such that amount of candidates to receive approval votes must be greater than zero. Add associated test * fix: Remove assertion preventing votes when empty seats is 0 * review-fix: Replace with is_zero and add corresponding test * Update seats.rs * Update seats.rs --- srml/council/src/seats.rs | 83 +++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 8 deletions(-) diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index bff476695b..54579e356e 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -94,9 +94,16 @@ decl_module! { fn set_approvals(origin, votes: Vec, index: Compact) { let who = ensure_signed(origin)?; let index: VoteIndex = index.into(); + let candidates = Self::candidates(); ensure!(!Self::presentation_active(), "no approval changes during presentation period"); ensure!(index == Self::vote_index(), "incorrect vote index"); + ensure!(!candidates.len().is_zero(), "amount of candidates to receive approval votes should be non-zero"); + // Prevent a vote from voters that provide a list of votes that exceeds the candidates length + // since otherise an attacker may be able to submit a very long list of `votes` that far exceeds + // the amount of candidates and waste more computation than a reasonable voting bond would cover. + ensure!(candidates.len() >= votes.len(), "amount of candidate approval votes cannot exceed amount of candidates"); + if !>::exists(&who) { // not yet a voter - deduct bond. // NOTE: this must be the last potential bailer, since it changes state. @@ -132,7 +139,7 @@ decl_module! { ensure!(Self::voter_last_active(&reporter).is_some(), "reporter must be a voter"); let last_active = Self::voter_last_active(&who).ok_or("target for inactivity cleanup must be active")?; ensure!(assumed_vote_index == Self::vote_index(), "vote index not current"); - ensure!(last_active < assumed_vote_index - Self::inactivity_grace_period(), "cannot reap during grace perid"); + ensure!(assumed_vote_index > last_active + Self::inactivity_grace_period(), "cannot reap during grace period"); let voters = Self::voters(); let reporter_index: u32 = reporter_index.into(); let reporter_index = reporter_index as usize; @@ -157,7 +164,7 @@ decl_module! { voters ); if valid { - // This only fails if `who` doesn't exist, which it clearly must do since its the origin. + // This only fails if `reporter` doesn't exist, which it clearly must do since its the origin. // Still, it's no more harmful to propagate any error at this point. >::repatriate_reserved(&who, &reporter, Self::voting_bond())?; Self::deposit_event(RawEvent::VoterReaped(who, reporter)); @@ -225,6 +232,7 @@ decl_module! { ) -> Result { let who = ensure_signed(origin)?; let total = total.into(); + ensure!(!total.is_zero(), "stake deposited to present winner and be added to leaderboard should be non-zero"); let index: VoteIndex = index.into(); let candidate = >::lookup(candidate)?; @@ -324,7 +332,7 @@ decl_storage! { pub CarryCount get(carry_count) config(): u32 = 2; /// How long to give each top candidate to present themselves after the vote ends. pub PresentationDuration get(presentation_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); - /// How many votes need to go by after a voter's last vote before they can be reaped if their + /// How many vote indexes need to go by after a target voter's last vote before they can be reaped if their /// approvals are moot. pub InactiveGracePeriod get(inactivity_grace_period) config(inactive_grace_period): VoteIndex = 1; /// How often (in blocks) to check for new votes. @@ -336,13 +344,16 @@ decl_storage! { // permanent state (always relevant, changes only at the finalisation of voting) /// The current council. When there's a vote going on, this should still be used for executive - /// matters. + /// matters. The block number (second element in the tuple) is the block that their position is + /// active until (calculated by the sum of the block number when the council member was elected + /// and their term duration). pub ActiveCouncil get(active_council) config(): Vec<(T::AccountId, T::BlockNumber)>; /// The total number of votes that have happened or are in progress. pub VoteCount get(vote_index): VoteIndex; // persistent state (always relevant, changes constantly) - /// The last cleared vote index that this voter was last active at. + /// A list of votes for each voter, respecting the last cleared vote index that this voter was + /// last active at. pub ApprovalsOf get(approvals_of): map T::AccountId => Vec; /// The vote index and list slot that the candidate `who` was registered or `None` if they are not /// currently registered. @@ -459,8 +470,9 @@ impl Module { let desired_seats = Self::desired_seats() as usize; let number = >::block_number(); let expiring = active_council.iter().take_while(|i| i.1 == number).map(|i| i.0.clone()).collect::>(); - if active_council.len() - expiring.len() < desired_seats { - let empty_seats = desired_seats - (active_council.len() - expiring.len()); + let retaining_seats = active_council.len() - expiring.len(); + if retaining_seats < desired_seats { + let empty_seats = desired_seats - retaining_seats; >::put((number + Self::presentation_duration(), empty_seats as u32, expiring)); let voters = Self::voters(); @@ -558,6 +570,7 @@ mod tests { assert_eq!(Council::voting_bond(), 3); assert_eq!(Council::present_slash_per_voter(), 1); assert_eq!(Council::presentation_duration(), 2); + assert_eq!(Council::inactivity_grace_period(), 1); assert_eq!(Council::voting_period(), 4); assert_eq!(Council::term_duration(), 5); assert_eq!(Council::desired_seats(), 2); @@ -723,6 +736,29 @@ mod tests { }); } + #[test] + fn setting_any_approval_vote_count_without_any_candidate_count_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(1); + + assert_eq!(Council::candidates().len(), 0); + + assert_noop!(Council::set_approvals(Origin::signed(4), vec![], 0.into()), "amount of candidates to receive approval votes should be non-zero"); + }); + } + + #[test] + fn setting_an_approval_vote_count_more_than_candidate_count_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(1); + + assert_ok!(Council::submit_candidacy(Origin::signed(5), 0.into())); + assert_eq!(Council::candidates().len(), 1); + + assert_noop!(Council::set_approvals(Origin::signed(4), vec![true, true], 0.into()), "amount of candidate approval votes cannot exceed amount of candidates"); + }); + } + #[test] fn resubmitting_voting_should_work() { with_externalities(&mut new_test_ext(false), || { @@ -735,6 +771,7 @@ mod tests { assert_ok!(Council::submit_candidacy(Origin::signed(2), 1.into())); assert_ok!(Council::submit_candidacy(Origin::signed(3), 2.into())); + assert_eq!(Council::candidates().len(), 3); assert_ok!(Council::set_approvals(Origin::signed(4), vec![true, false, true], 0.into())); assert_eq!(Council::approvals_of(4), vec![true, false, true]); @@ -749,6 +786,7 @@ mod tests { assert_ok!(Council::submit_candidacy(Origin::signed(5), 0.into())); assert_ok!(Council::submit_candidacy(Origin::signed(2), 1.into())); assert_ok!(Council::submit_candidacy(Origin::signed(3), 2.into())); + assert_eq!(Council::candidates().len(), 3); assert_ok!(Council::set_approvals(Origin::signed(1), vec![true], 0.into())); assert_ok!(Council::set_approvals(Origin::signed(2), vec![false, true, true], 0.into())); @@ -853,6 +891,19 @@ mod tests { }); } + #[test] + fn presentations_with_zero_staked_deposit_should_not_work() { + with_externalities(&mut new_test_ext(false), || { + System::set_block_number(4); + assert_ok!(Council::submit_candidacy(Origin::signed(2), 0.into())); + assert_ok!(Council::set_approvals(Origin::signed(2), vec![true], 0.into())); + assert_ok!(Council::end_block(System::block_number())); + + System::set_block_number(6); + assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 0.into(), 0.into()), "stake deposited to present winner and be added to leaderboard should be non-zero"); + }); + } + #[test] fn double_presentations_should_be_punished() { with_externalities(&mut new_test_ext(false), || { @@ -1057,9 +1108,15 @@ mod tests { assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); + assert_eq!(Council::vote_index(), 2); + assert_eq!(Council::inactivity_grace_period(), 1); + assert_eq!(Council::voting_period(), 4); + assert_eq!(Council::voter_last_active(4), Some(0)); + assert_ok!(Council::reap_inactive_voter(Origin::signed(4), (Council::voters().iter().position(|&i| i == 4).unwrap() as u32).into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2.into(), + (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() )); @@ -1119,6 +1176,14 @@ mod tests { assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + + assert_eq!(Council::leaderboard(), Some(vec![ + (30, 3), + (40, 4), + (50, 5), + (60, 1) + ])); + assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into()), "candidate not worthy of leaderboard"); }); } @@ -1240,6 +1305,8 @@ mod tests { System::set_block_number(6); assert!(Council::presentation_active()); assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); + // leaderboard length is the empty seats plus the carry count (i.e. 5 + 2), where those + // to be carried are the lowest and stored in lowest indexes assert_eq!(Council::leaderboard(), Some(vec![ (0, 0), (0, 0), -- GitLab From 91b6c79c6f3fb97bedecae9939e6f9d716af0f8e Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Mon, 7 Jan 2019 15:54:59 +0100 Subject: [PATCH 029/349] Use primitive-types crate to unify Parity Ethereum primitives (#1187) * Unify primitive types with parity-ethereum * Update primtive-types patch version * Fix merge issue * Add necessary fixed-hash features * Fix node-primitives compile * Reexport impl_serde::serialize as bytes to avoid path changes --- Cargo.lock | 40 ++++++- core/primitives/Cargo.toml | 19 ++-- core/primitives/src/authority_id.rs | 1 - core/primitives/src/bytes.rs | 158 ---------------------------- core/primitives/src/hash.rs | 60 +---------- core/primitives/src/hexdisplay.rs | 3 +- core/primitives/src/lib.rs | 14 +-- core/primitives/src/uint.rs | 50 +-------- 8 files changed, 55 insertions(+), 290 deletions(-) delete mode 100644 core/primitives/src/bytes.rs diff --git a/Cargo.lock b/Cargo.lock index dfab26f9a2..749a8764f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -999,6 +999,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "indexmap" version = "1.0.2" @@ -2177,6 +2194,18 @@ dependencies = [ "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -3621,15 +3650,15 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "pretty_assertions 0.4.1 (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)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3637,7 +3666,6 @@ dependencies = [ "sr-std 0.1.0", "substrate-serializer 0.1.0", "twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4353,7 +4381,7 @@ name = "twox-hash" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4378,6 +4406,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4800,6 +4829,8 @@ dependencies = [ "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" "checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "141340095b15ed7491bd3d4ced9d20cebfb826174b6bb03386381f62b01e3d77" @@ -4904,6 +4935,7 @@ dependencies = [ "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28ea5118e2f41bfbc974b28d88c07621befd1fa5d6ec23549be96302a1a59dd2" "checksum pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a029430f0d744bc3d15dd474d591bed2402b645d024583082b9f63bb936dac6" +"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" "checksum proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index 1489b046ba..72fd73f5b4 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -4,17 +4,16 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -crunchy = { version = "0.2", default-features = false } sr-std = { path = "../sr-std", default-features = false } parity-codec = { version = "2.1", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } -fixed-hash = { version = "0.3.0", default-features = false } rustc-hex = { version = "2.0", default-features = false } serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -uint = { version = "0.5.0-beta", default-features = false } twox-hash = { version = "1.1.0", optional = true } byteorder = { version = "1.1", default-features = false } +primitive-types = { version = "0.1", default-features = false, features = ["codec"] } +impl-serde = { version = "0.1", optional = true } wasmi = { version = "0.4.2", optional = true } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } hash256-std-hasher = { git = "https://github.com/paritytech/trie", default-features = false } @@ -32,14 +31,14 @@ heapsize = "0.4" [features] default = ["std"] std = [ - "crunchy/std", "wasmi", - "uint/std", - "fixed-hash/std", - "fixed-hash/heapsize", - "fixed-hash/byteorder", - "fixed-hash/rustc-hex", - "fixed-hash/libc", + "primitive-types/std", + "primitive-types/serde", + "primitive-types/heapsize", + "primitive-types/byteorder", + "primitive-types/rustc-hex", + "primitive-types/libc", + "impl-serde", "parity-codec/std", "hash256-std-hasher/std", "hash-db/std", diff --git a/core/primitives/src/authority_id.rs b/core/primitives/src/authority_id.rs index 9f5e3c26ac..9a6abf1f03 100644 --- a/core/primitives/src/authority_id.rs +++ b/core/primitives/src/authority_id.rs @@ -14,7 +14,6 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . - #[cfg(feature = "std")] use serde::{Serialize, Serializer, Deserialize, Deserializer}; use H256; diff --git a/core/primitives/src/bytes.rs b/core/primitives/src/bytes.rs deleted file mode 100644 index ea375a2530..0000000000 --- a/core/primitives/src/bytes.rs +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2017-2018 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -//! Simple type for representing Vec with regards to serde. - -use core::fmt; - -use serde::{de, Serializer, Deserializer}; - -#[cfg(not(feature = "std"))] -mod alloc_types { - pub use ::alloc::string::String; - pub use ::alloc::vec::Vec; -} - -#[cfg(feature = "std")] -mod alloc_types { - pub use ::std::vec::Vec; - pub use ::std::string::String; -} - -pub use self::alloc_types::*; - -/// Serializes a slice of bytes. -pub fn serialize(bytes: &[u8], serializer: S) -> Result where - S: Serializer, -{ - let hex: String = ::rustc_hex::ToHex::to_hex(bytes); - serializer.serialize_str(&format!("0x{}", hex)) -} - -/// Serialize a slice of bytes as uint. -/// -/// The representation will have all leading zeros trimmed. -pub fn serialize_uint(bytes: &[u8], serializer: S) -> Result where - S: Serializer, -{ - let non_zero = bytes.iter().take_while(|b| **b == 0).count(); - let bytes = &bytes[non_zero..]; - if bytes.is_empty() { - return serializer.serialize_str("0x0"); - } - - let hex: String = ::rustc_hex::ToHex::to_hex(bytes); - let has_leading_zero = !hex.is_empty() && &hex[0..1] == "0"; - serializer.serialize_str( - &format!("0x{}", if has_leading_zero { &hex[1..] } else { &hex }) - ) -} - -/// Expected length of bytes vector. -#[derive(PartialEq, Eq)] -#[cfg_attr(feature = "std", derive(Debug))] -pub enum ExpectedLen { - /// Any length in bytes. - #[cfg_attr(not(feature = "std"), allow(unused))] - Any, - /// Exact length in bytes. - Exact(usize), - /// A bytes length between (min; max]. - Between(usize, usize), -} - -impl fmt::Display for ExpectedLen { - fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - match *self { - ExpectedLen::Any => write!(fmt, "even length"), - ExpectedLen::Exact(v) => write!(fmt, "length of {}", v * 2), - ExpectedLen::Between(min, max) => write!(fmt, "length between ({}; {}]", min * 2, max * 2), - } - } -} - -/// Deserialize into vector of bytes. -#[cfg(feature = "std")] -pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> where - D: Deserializer<'de>, -{ - deserialize_check_len(deserializer, ExpectedLen::Any) -} - -/// Deserialize into vector of bytes with additional size check. -pub fn deserialize_check_len<'de, D>(deserializer: D, len: ExpectedLen) -> Result, D::Error> where - D: Deserializer<'de>, -{ - struct Visitor { - len: ExpectedLen, - } - - impl<'a> de::Visitor<'a> for Visitor { - type Value = Vec; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - write!(formatter, "a 0x-prefixed hex string with {}", self.len) - } - - fn visit_str(self, v: &str) -> Result { - if v.len() < 2 || &v[0..2] != "0x" { - return Err(E::custom("prefix is missing")) - } - - let is_len_valid = match self.len { - // just make sure that we have all nibbles - ExpectedLen::Any => v.len() % 2 == 0, - ExpectedLen::Exact(len) => v.len() == 2 * len + 2, - ExpectedLen::Between(min, max) => v.len() <= 2 * max + 2 && v.len() > 2 * min + 2, - }; - - if !is_len_valid { - return Err(E::invalid_length(v.len() - 2, &self)) - } - - let bytes = match self.len { - ExpectedLen::Between(..) if v.len() % 2 != 0 => { - ::rustc_hex::FromHex::from_hex(&*format!("0{}", &v[2..])) - }, - _ => ::rustc_hex::FromHex::from_hex(&v[2..]) - }; - - #[cfg(feature = "std")] - fn format_err(e: ::rustc_hex::FromHexError) -> String { - format!("invalid hex value: {:?}", e) - } - - #[cfg(not(feature = "std"))] - fn format_err(e: ::rustc_hex::FromHexError) -> String { - match e { - ::rustc_hex::InvalidHexLength => format!("invalid hex value: invalid length"), - ::rustc_hex::InvalidHexCharacter(c, p) => - format!("invalid hex value: invalid character {} at position {}", c, p), - } - } - - bytes.map_err(|e| E::custom(format_err(e))) - } - - #[cfg(feature = "std")] - fn visit_string(self, v: String) -> Result { - self.visit_str(&v) - } - } - // TODO [ToDr] Use raw bytes if we switch to RLP / binencoding - // (visit_bytes, visit_bytes_buf) - deserializer.deserialize_str(Visitor { len }) -} diff --git a/core/primitives/src/hash.rs b/core/primitives/src/hash.rs index 8d04df2684..98a906861f 100644 --- a/core/primitives/src/hash.rs +++ b/core/primitives/src/hash.rs @@ -16,65 +16,7 @@ //! A fixed hash type. -#[cfg(feature = "std")] -use serde::{Serialize, Serializer, Deserialize, Deserializer}; - -#[cfg(feature = "std")] -use bytes; - -macro_rules! impl_rest { - ($name: ident, $len: expr) => { - #[cfg(feature = "std")] - impl Serialize for $name { - fn serialize(&self, serializer: S) -> Result where S: Serializer { - bytes::serialize(&self.0, serializer) - } - } - - #[cfg(feature = "std")] - impl<'de> Deserialize<'de> for $name { - fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { - bytes::deserialize_check_len(deserializer, bytes::ExpectedLen::Exact($len)) - .map(|x| $name::from_slice(&x)) - } - } - - impl ::codec::Encode for $name { - fn using_encoded R>(&self, f: F) -> R { - self.0.using_encoded(f) - } - } - impl ::codec::Decode for $name { - fn decode(input: &mut I) -> Option { - <[u8; $len] as ::codec::Decode>::decode(input).map($name) - } - } - - #[cfg(feature = "std")] - impl From for $name { - fn from(val: u64) -> Self { - Self::from_low_u64_be(val) - } - } - } -} - -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 20 bytes (160 bits) size. - pub struct H160(20); -} -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 32 bytes (256 bits) size. - pub struct H256(32); -} -construct_fixed_hash!{ - /// Fixed-size uninterpreted hash type with 64 bytes (512 bits) size. - pub struct H512(64); -} - -impl_rest!(H160, 20); -impl_rest!(H256, 32); -impl_rest!(H512, 64); +pub use primitive_types::{H160, H256, H512}; /// Hash conversion. Used to convert between unbound associated hash types in traits, /// implemented by the same hash type. diff --git a/core/primitives/src/hexdisplay.rs b/core/primitives/src/hexdisplay.rs index f02b0f19b7..b202fdf2e3 100644 --- a/core/primitives/src/hexdisplay.rs +++ b/core/primitives/src/hexdisplay.rs @@ -57,7 +57,7 @@ impl AsBytesRef for [u8] { fn as_bytes_ref(&self) -> &[u8] { &self } } -impl AsBytesRef for ::bytes::Vec { +impl AsBytesRef for Vec { fn as_bytes_ref(&self) -> &[u8] { &self } } @@ -91,4 +91,3 @@ pub fn ascii_format(asciish: &[u8]) -> String { } r } - diff --git a/core/primitives/src/lib.rs b/core/primitives/src/lib.rs index 1bbfaafb24..83f6a8d0bc 100644 --- a/core/primitives/src/lib.rs +++ b/core/primitives/src/lib.rs @@ -21,12 +21,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(not(feature = "std"), feature(alloc))] -#[macro_use] -extern crate crunchy; -#[macro_use] -extern crate fixed_hash; -#[macro_use] -extern crate uint as uint_crate; +extern crate primitive_types; #[macro_use] extern crate parity_codec_derive; @@ -51,6 +46,10 @@ extern crate untrusted; #[macro_use] extern crate hex_literal; +#[cfg(feature = "std")] +#[macro_use] +extern crate impl_serde; + #[cfg(feature = "std")] #[macro_use] extern crate serde_derive; @@ -84,7 +83,8 @@ use rstd::prelude::*; use rstd::ops::Deref; #[cfg(feature = "std")] -pub mod bytes; +pub use impl_serde::serialize as bytes; + #[cfg(feature = "std")] pub mod hashing; #[cfg(feature = "std")] diff --git a/core/primitives/src/uint.rs b/core/primitives/src/uint.rs index 4727ed54bd..0d46e81eff 100644 --- a/core/primitives/src/uint.rs +++ b/core/primitives/src/uint.rs @@ -16,55 +16,7 @@ //! An unsigned fixed-size integer. -#[cfg(feature = "std")] -use serde::{Serialize, Serializer, Deserialize, Deserializer}; - -#[cfg(feature = "std")] -use bytes; - -macro_rules! impl_serde { - ($name: ident, $len: expr) => { - #[cfg(feature = "std")] - impl Serialize for $name { - fn serialize(&self, serializer: S) -> Result where S: Serializer { - let mut bytes = [0u8; $len * 8]; - self.to_big_endian(&mut bytes); - bytes::serialize_uint(&bytes, serializer) - } - } - - #[cfg(feature = "std")] - impl<'de> Deserialize<'de> for $name { - fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { - bytes::deserialize_check_len(deserializer, bytes::ExpectedLen::Between(0, $len * 8)) - .map(|x| (&*x).into()) - } - } - } -} - -macro_rules! impl_codec { - ($name: ident, $len: expr) => { - impl ::codec::Encode for $name { - fn using_encoded R>(&self, f: F) -> R { - let mut bytes = [0u8; $len * 8]; - self.to_little_endian(&mut bytes); - bytes.using_encoded(f) - } - } - - impl ::codec::Decode for $name { - fn decode(input: &mut I) -> Option { - <[u8; $len * 8] as ::codec::Decode>::decode(input) - .map(|b| $name::from_little_endian(&b)) - } - } - } -} - -construct_uint!(U256, 4); -impl_serde!(U256, 4); -impl_codec!(U256, 4); +pub use primitive_types::U256; #[cfg(test)] mod tests { -- GitLab From 6cef98d1ce1ecedb763ef48093c1455dd9cd2503 Mon Sep 17 00:00:00 2001 From: cheme Date: Mon, 7 Jan 2019 16:05:47 +0100 Subject: [PATCH 030/349] Decl_storage macro : force traits. (#1317) * Missing trait def on two calls. Slight mcla refact on transfo. * Allways provide GenesisConfig even when useless (for runtime module export). * Revert "Allways provide GenesisConfig even when useless (for runtime module" This reverts commit 84a29bc592023d1ee107519c58693ec19dbde2d2. * Fix Vec usage (from rstd). --- .../procedural/src/storage/transformation.rs | 112 +++++++++++------- srml/support/src/storage/generator.rs | 26 ++++ 2 files changed, 92 insertions(+), 46 deletions(-) diff --git a/srml/support/procedural/src/storage/transformation.rs b/srml/support/procedural/src/storage/transformation.rs index 2a2179e0ec..104c5c830c 100644 --- a/srml/support/procedural/src/storage/transformation.rs +++ b/srml/support/procedural/src/storage/transformation.rs @@ -169,7 +169,7 @@ fn decl_store_extra_genesis( .. } = sline; - let is_simple = if let DeclStorageType::Simple(..) = storage_type { true } else { false }; + let type_infos = get_type_infos(storage_type); let mut opt_build; // need build line @@ -180,20 +180,16 @@ fn decl_store_extra_genesis( let ident = &getter.getfn.content; quote!( #ident ) }; - let option_extracteed = if let DeclStorageType::Simple(ref st) = storage_type { - if ext::has_parametric_type(st, traitinstance) { - is_trait_needed = true; - has_trait_field = true; - } - ext::extract_type_option(st) - } else { None }; - let is_option = option_extracteed.is_some(); - let storage_type = option_extracteed.unwrap_or_else(|| quote!( #storage_type )); + if type_infos.is_simple && ext::has_parametric_type(type_infos.full_type, traitinstance) { + is_trait_needed = true; + has_trait_field = true; + } + let storage_type = type_infos.typ.clone(); config_field.extend(quote!( pub #ident: #storage_type, )); opt_build = Some(build.as_ref().map(|b| &b.expr.content).map(|b|quote!( #b )) .unwrap_or_else(|| quote!( (|config: &GenesisConfig<#traitinstance>| config.#ident.clone()) ))); let fielddefault = default_value.inner.get(0).as_ref().map(|d| &d.expr).map(|d| - if is_option { + if type_infos.is_option { quote!( #d.unwrap_or_default() ) } else { quote!( #d ) @@ -204,20 +200,25 @@ fn decl_store_extra_genesis( opt_build = build.as_ref().map(|b| &b.expr.content).map(|b| quote!( #b )); } + let typ = type_infos.typ; if let Some(builder) = opt_build { is_trait_needed = true; - if is_simple { + if type_infos.is_simple { builders.extend(quote!{{ use #scrate::codec::Encode; let v = (#builder)(&self); - r.insert(Self::hash(<#name<#traitinstance>>::key()).to_vec(), v.encode()); + r.insert(Self::hash( + <#name<#traitinstance> as #scrate::storage::generator::StorageValue<#typ>>::key() + ).to_vec(), v.encode()); }}); } else { + let kty = type_infos.map_key.clone().expect("is not simple; qed"); builders.extend(quote!{{ use #scrate::codec::Encode; let data = (#builder)(&self); for (k, v) in data.into_iter() { - r.insert(Self::hash(&<#name<#traitinstance>>::key_for(k)).to_vec(), v.encode()); + let key = <#name<#traitinstance> as #scrate::storage::generator::StorageMap<#kty, #typ>>::key_for(&k); + r.insert(Self::hash(&key[..]).to_vec(), v.encode()); } }}); } @@ -361,25 +362,22 @@ fn decl_storage_items( .. } = sline; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; - let is_option = extracted_opt.is_some(); + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; let fielddefault = default_value.inner.get(0).as_ref().map(|d| &d.expr).map(|d| quote!( #d )) .unwrap_or_else(|| quote!{ Default::default() }); - let typ = extracted_opt.unwrap_or(quote!( #gettype )); + let typ = type_infos.typ; - let option_simple_1 = if !is_option { + let option_simple_1 = if !type_infos.is_option { // raw type case quote!( unwrap_or_else ) } else { // Option<> type case quote!( or_else ) }; - let implementation = if is_simple { - let mutate_impl = if !is_option { + let implementation = if type_infos.is_simple { + let mutate_impl = if !type_infos.is_option { quote!{ >::put(&val, storage) } @@ -430,8 +428,8 @@ fn decl_storage_items( } } else { - let kty = stk.expect("is not simple; qed"); - let mutate_impl = if !is_option { + let kty = type_infos.map_key.expect("is not simple; qed"); + let mutate_impl = if !type_infos.is_option { quote!{ >::insert(key, &val, storage) } @@ -531,20 +529,19 @@ fn impl_store_fns( if let Some(getter) = getter { let get_fn = &getter.getfn.content; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; - let typ = extracted_opt.unwrap_or(quote!(#gettype)); - let item = if is_simple { + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; + + let typ = type_infos.typ; + let item = if type_infos.is_simple { quote!{ pub fn #get_fn() -> #gettype { <#name<#traitinstance> as #scrate::storage::generator::StorageValue<#typ>> :: get(&#scrate::storage::RuntimeStorage) } } } else { - let kty = stk.expect("is not simple; qed"); + let kty = type_infos.map_key.expect("is not simple; qed"); // map quote!{ pub fn #get_fn>(key: K) -> #gettype { @@ -576,14 +573,11 @@ fn store_functions_to_metadata ( .. } = sline; - let (is_simple, extracted_opt, stk, gettype) = match storage_type { - DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), - DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), - }; + let type_infos = get_type_infos(storage_type); + let gettype = type_infos.full_type; - let is_option = extracted_opt.is_some(); - let typ = extracted_opt.unwrap_or(quote!( #gettype )); - let stype = if is_simple { + let typ = type_infos.typ; + let stype = if type_infos.is_simple { let styp = clean_type_string(&typ.to_string()); quote!{ #scrate::storage::generator::StorageFunctionType::Plain( @@ -591,7 +585,7 @@ fn store_functions_to_metadata ( ) } } else { - let kty = stk.expect("is not simple; qed"); + let kty = type_infos.map_key.expect("is not simple; qed"); let kty = clean_type_string("e!(#kty).to_string()); let styp = clean_type_string(&typ.to_string()); quote!{ @@ -601,13 +595,13 @@ fn store_functions_to_metadata ( } } }; - let modifier = if !is_option { + let modifier = if type_infos.is_option { quote!{ - #scrate::storage::generator::StorageFunctionModifier::Default + #scrate::storage::generator::StorageFunctionModifier::Optional } } else { quote!{ - #scrate::storage::generator::StorageFunctionModifier::Optional + #scrate::storage::generator::StorageFunctionModifier::Default } }; let default = default_value.inner.get(0).as_ref().map(|d| &d.expr) @@ -647,10 +641,10 @@ fn store_functions_to_metadata ( let def_get = quote! { pub struct #struct_name<#traitinstance>(pub #scrate::rstd::marker::PhantomData<#traitinstance>); #[cfg(feature = "std")] - static #cache_name: #scrate::once_cell::sync::OnceCell> = #scrate::once_cell::sync::OnceCell::INIT; + static #cache_name: #scrate::once_cell::sync::OnceCell<#scrate::rstd::vec::Vec> = #scrate::once_cell::sync::OnceCell::INIT; #[cfg(feature = "std")] impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { - fn default_byte(&self) -> Vec { + fn default_byte(&self) -> #scrate::rstd::vec::Vec { use #scrate::codec::Encode; #cache_name.get_or_init(|| { let def_val: #gettype = #default; @@ -660,7 +654,7 @@ fn store_functions_to_metadata ( } #[cfg(not(feature = "std"))] impl<#traitinstance: #traittype> #scrate::storage::generator::DefaultByte for #struct_name<#traitinstance> { - fn default_byte(&self) -> Vec { + fn default_byte(&self) -> #scrate::rstd::vec::Vec { use #scrate::codec::Encode; let def_val: #gettype = #default; <#gettype as Encode>::encode(&def_val) @@ -677,3 +671,29 @@ fn store_functions_to_metadata ( } }) } + + +struct DeclStorageTypeInfos<'a> { + pub is_simple: bool, + pub full_type: &'a syn::Type, + pub is_option: bool, + pub typ: TokenStream2, + pub map_key: Option<&'a syn::Type>, +} + +fn get_type_infos(storage_type: &DeclStorageType) -> DeclStorageTypeInfos { + let (is_simple, extracted_type, map_key, full_type) = match storage_type { + DeclStorageType::Simple(ref st) => (true, ext::extract_type_option(st), None, st), + DeclStorageType::Map(ref map) => (false, ext::extract_type_option(&map.value), Some(&map.key), &map.value), + }; + let is_option = extracted_type.is_some(); + let typ = extracted_type.unwrap_or(quote!( #full_type )); + DeclStorageTypeInfos { + is_simple, + full_type, + is_option, + typ, + map_key, + } +} + diff --git a/srml/support/src/storage/generator.rs b/srml/support/src/storage/generator.rs index e28dbda89e..7cf5e28ded 100644 --- a/srml/support/src/storage/generator.rs +++ b/srml/support/src/storage/generator.rs @@ -946,3 +946,29 @@ mod test2 { type BlockNumber = u32; } } + +#[cfg(test)] +#[allow(dead_code)] +mod test3 { + pub trait Trait { + type Origin; + type BlockNumber; + } + decl_module! { + pub struct Module for enum Call where origin: T::Origin {} + } + decl_storage! { + trait Store for Module as Test { + Foo get(foo) config(initial_foo): u32; + } + } + + type PairOf = (T, T); + + struct TraitImpl {} + + impl Trait for TraitImpl { + type Origin = u32; + type BlockNumber = u32; + } +} -- GitLab From 754f28d8505af2f6ec10cf1d267785195dd2dc8a Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Mon, 7 Jan 2019 16:07:58 +0100 Subject: [PATCH 031/349] Invulnerabiity from slashing for certain validators (#1355) * Invulnerabiity from slashing * Update srml/staking/src/lib.rs Co-Authored-By: gavofyork --- core/test-runtime/wasm/Cargo.lock | 2 ++ .../substrate_test_runtime.compact.wasm | Bin 43804 -> 42266 bytes node/cli/src/chain_spec.rs | 2 ++ node/executor/src/lib.rs | 11 ++++++----- node/runtime/wasm/Cargo.lock | 2 ++ .../release/node_runtime.compact.wasm | Bin 841783 -> 807803 bytes srml/staking/src/lib.rs | 14 ++++++++++++++ srml/staking/src/mock.rs | 1 + srml/staking/src/tests.rs | 16 ++++++++++++++++ 9 files changed, 43 insertions(+), 5 deletions(-) diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 8791d2c1ff..8721c4d21b 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -1112,8 +1112,10 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 440d0288d7fb526d5efdb5c36574dda232b197d6..e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6 100644 GIT binary patch delta 14107 zcmch8dvp}nnP=Uq>UXueS`v~FdQ>+OdPBGR&BLe!2xG9p#3nWni+%#lLp+3yJvJ>I zo541AAU6-3V>^U|@ng({IhvVFGR}!Io6Y9rS#Ofru$xSdvy;v2 z@4HpqYGE?_-y*th)mOLf{qFbvzFYOuJM!ngE1zF{A>7%{D$*XcQaM#&l|4$Of-80k zKU`ke*0HFucyfBOSQt$tqM6Bui^ukt9+l(^UubVpl;Yus8|dzlWBU(JPo9`Ar6u*k z-!)CBbSFS}ju-Kpo;sG@Ta+9G4H7heu$VnogNxp}=xz0!JT^5oEjjrh>sscbhcvo5 z{m9hG$>?ZWaudi;AZy;kCl2wQZ0JETzL(&KvIh@N=BGbjHpGdyozn3H@J$$XRlitXs{ z)z?iOD^6xlOz)dIwtsqm@wl|CQGkjki}@4N#mO8nI3V%0Uu{&H12X(2Gp@>N!VdZclwz; zCXX4)2ET;fis8_M^eEFDKAdA1zlsx+>5Y<4_v42NX)wArBtuThZZwXhtfEnqvKXa2 zXt0zd`J9p=>8pSs?lD8w*ZBOB`4`X4NoH7=asRK~%)u|HDgJGBWc^~AW;*OLocMDA zJr|(|=mx*Tkoz&R!*BsR=LWx1Yw;P(oS9);{TSC&%V7l_!cM-$(N=L`asD>LX|330 z(6zl-KsWf^)@V+#R$P0uCZ7O>oZ2F5+?g5mmXR?FD5ugajsqs{sz4X>ipg5)CmX8G z2Jo%3VX}tWWI-Q)TWtf!-dC4x_bgbW->dn3Sgsy+`gNSx1Sc{8OYp`%b6H$+`n@$S z3ASNk2RB`5AK+pXNCSVvIn1xQnsz#kx^;l8wRLFq>!>XQPzb~VqWNXbS;IlLaoFHj zG3D~kq$FvCmyL53ck3EG!rXARFd68?D?XAw8S+Pjg}hqyHNaP5H!Fw1rA-iITYO10 zYIp%!!^;v}T+15dRS-v^GZJCNPZ-)FOyUcjAVG!P@L#%nT~LpI`hV+<@&7|__^&)G z`Gj``o8S+7pTP0g-t9PU^c}_VtG+Fs7ND;hPQ8UUXj|B8e3!PywM6n=a6yVLs4@P1 zt#3Stl|hk6n?X^CzDkM&C@B&Hg+TxniUevowN_|xRgoA3LGXcZ^S4xBJ2v@si}HAY zYzfAaX)HiVu*Fyk^jeJN(VC$=cs`_%deW%28r8;y&bq}6vaLcwb;U#tw@y?MGXZ?- zOi-afZK6ifSAq5X*c%})pa5(Ftw6giH2{U;FQ5ig4yvgNfeHGIglfyLy(H+IeFoW< zMK2#ts)|Vf(37tXtaXZ0l|L0&%2fVZVCha@uUixSUc+w$AzNN}BP>1$5_>^npMe|H8IM?<_qDBtdR%EEwfXzD zk(~xfA5eFbVIjw+nAfF)p$5Yd@+f3&JR_16_M4Tm2_8rQ_|eH@$tF?WV~Lb*;Ox3Y z2sW74D&=qk-@SP8W(Dt-?8 z$8QX0*~Dy5`$-1eUtV$q$F-f^e57LnXVV=O`?{%fNSqaL{8Hz^AejND;nAt}z`(cg zP*-ou2I9kvTsGXe1saoPgcW|eqlF*qdat4Gwo9Mj+3s^}5&s|E%YAxShswAJOWtSP z)8V9H7>H92HJMV#jh|*TgqoEx!^tlg;YN(@GCZ4L0^q3)&jC#GAC2`G%^T{7hQhuL z{w5GX$gh(O3Q#08VLk+20;bRa%@{!89}D$ND5e268R+6Fo8TTUT?c?u_vR&f4RKm3 z=EgI)Numi>8Ll#&DQ5TG{uVyGG|c~d==C*<@K57XN|`~lBZ%TbA2Ny^r6UmYzMgjg`F&5DLjjFEd`WM|BC$BolIV$< zR526Z(%atXAz62kKFr9W0OZBPPxcOGJR~)Usf11TLDp?61S%o~z>TsINGar|!4E5f z3t|13?tk_Eh$*xGdD*LMKsPj!anL6SW-<+?iQK-vfdT{jCIu_X>{t4~B(I?0jfhF| zBls>_E2smV7QlVF!Ji%a6*Ks$;Q<_98}7vM+rxhZS?p==o83RMh1H9mvnF~f|Fh0E z{*TMAqUVJb8{lY#ND_4RUsiO<^%4oem<^4dmi;1TTy2GpcknO7PqE9~NOa)1Chg%A`N zk)1Oogg$*@yjgE*g0Xe{-t=-DXVRYn|pl{;DRmrO!RdGLdH6{Iy{sY8Sqff&FYiilijcf;9E}jx^sf zLIB`g8@ZnV>FPBbP^1vKk_r}rwTdAT0*?zT1-Z5ZS^%u5myu+WMDpo7`YUu>rTm4=iF&|P zHbZIXNyxOi2_{?Q4p2J$2?eJ)nH^jrg8+MhjXf>X;6ZPh1^62-%3@^02_qo%5yO)` zK)4J~!4TG3T}UG3cp~Ym_+VA(W705GpX#^{9Yzf=^|`Ve5#4Gjp&) zi6n`h6%SMPP>Y8b3Z&qN6=d0hhzThcq(q7)tg!+UfkZy|SeIb8HM6S>l%VtuQ!68{ ze(RYz2|O4irs)U-4E5@`amH|7eaa3A;0r_sZS(raF76!0-af30wWBdWQ znJn%u#Wev&r~S*B|~s0o`oS8 z0|&*EdMlK|MT+J!9n&G7Nd|*Pv;uy|0gCeal;P&_qyxqh z5`u(JHN3a4-p**UI;h#qe6ovG-7MH=3uydI5~1ZvPI z6rt=6&_v6w(V|tPEnc7blV|57Gp6@hg%lGt3K9cTv)gAWARnRIAft6_{t5G~GjlzX zIb466%s5SVLn0}22r1Ke%fxDSmVaa-8APQ2k5BwSMyT01~VfInSe>h zslk#mB}x|=1=jAe-pSvdSVnPP6{eTXvk2U|YvXE2p;@GH>yJ5}d42sdIodTEt==oEmvUH-?#$ zEN6&O6+<%M0>{u$3W^@&59z)+L+LBJpnioF5|TLDazGsjf@2Lri3&sRQJDwb6d)XH zo!%D^9BU9T2#?`dgS;ysI94IJk7Pq!ZG*K`%i}XoB86^Dk;yScDyG7`2v5(-{PL#t z`}HuQM?d8rZd-#XCY06qM3Bgq@TOV2MH-_7dnza0U$0m@*8)pbCH2& z`XC?N+>SEehRxeiZN0d8`-g^^yLA`<>|vU>#F&fUxn*z|frklfAVJ}(?Go2|Ijq^X zOkBgq`1vba+AHqy%H!5Ex-d)75zK?fU51bNPu5R>Faiw50uTn#41X0QB6cOE+`w`S zmkkAx>@#)#Vd{B9PAS(Aid~nW8<-iIOyFxuN20bBpCD`IB42o2R4G@e-Q!`&KGg?N(WYfnMFPE9AcC2Zk%lsyU5PVarLg*5f zO*UVxLSQK%PY?#;?`w>zHyiy92prNAv50>85(_hko#7fmRtFs-`Q!JvcSD{OjZC%(cEJ!U>Q$ue$Sld{0Dv?UrU5-=4TfqSXb?=) z1#UA5+&(7hUbGR_f-0&$%8x?8k~eRS!mqvl>;R5Owzf1|D}fzFSK(Vc$ap@twZ9u{ zCcL2@k~s~%u+w~m1TeMe^WN6`Y6I=rHiGjPwk=*QD0N+dJsxKWuc0lLA)m3sYFHc_ zVpy%-1`qI^(^%#Z|Ho~^u-y8+BfDX_&5HtvlWWzJ>(F33a8Rig<#+_*bpBn1`6ymD zkdOCB6n{~Xi^N<;HIQNlgnO_n$nsyj_dtdC3L9<}l{D%u9zoc10L!*2fmYyVR0B7t z&O*2Br@#$R3M9Q)xF5FEYq830Agp&$+~&vBR^i4^g5<>wIB2(<@FAT*xt4f2{Vz;0VSc%G| z0%ujL*!YPvv-f=D9AiEFNB4C#2~S8C8?GNB`8^4)P`ke!iEZEgL#&y9e9@Zgx<7Iv@zYcxV_LT0BXD zaPQ=@dOM89ul>6xEo2dn)8x#jzX`5|&JL#7D*ESViW3`T-Z zq6{TL7_o9hNO~*3mK&-x;X#B9 z%%F6~2kTJ1E4FgzK;laMn`FzrKq|zl)FlPVNw>x&^%UH4$kKaqwC1L>X!XQ^eyZsC}4HBlQXid zHP|hEK|Y1^d=hN^ZoV%)?MY?jTI}QyzuN z!YY~X8#2Y{ysPNyuoMUTe}Y-fpxJ9ePxP`5!CceEcNN=ug=wxc2oupc|>v}*hAw9IS{)E=>XX&PWfxvxCK*TR>f>o&$1#73fOI!F%N^0wffZ} z5=4V0e3=j>s4orrE(SF)Xd0aZ=1oM?)gdEg{;5*$IQqQCLQZsn0*eZkkV8}_C}@8>p}RMY{LU639pGUO5I_h-gPy5S*3!u-24B4L&& zVgBHZNSI+w5Y7rYg3B`5(U6Ou+qZOa6G_w$WMmR(-<7TO^|}my^__i7p?tsCw`?)O zY@H0LyJ|HJuof||!H4!QIYha=9%AwsdbnUlfiVRXQdQk3@nC*t%9hww@7L5(+~45W z@Q~qHDPgS?uOiK3SI42AGX{zYH3Q7Qv7aJ`U+f>56p_QnDV%`(+A#*v^$&$1)l3t6 zF(MhQszJ52@%wF5$f%Fcl$X>Sw=3oD47$SL-i_=H#F}Fv#g;%FH6my%ISmQBu;#@o zTGgzU|DW=5{=&G2-*cc9wybnuXq||f5vMKWAQfAvfF@ZTNi zTGU`dZ_Gyc|-07>=i;o`c?jr259mF<=Q9?j$3w}X2_JrYwkD~1Hse?UG zov$A3YI0#I9&)xI86sXf;Xgar8>uc|$jT*#if3hu-(#XoW6-cmkpH_76`?TTGv$Xd zBw)o|!Uyh4s?igpUlB770-Mxw$pIL|eJertUm};zp!q{a;`t9Li3|lPf z)G-&t@k{)vBP*6!JhjOu!Vf40%520b^uci0J(Bp}A6bR*f=BPhaq?(CvevUldyutW zJ$fe#^4}aSA{pI%Yz*fw9~<7GhoSdQ6ary`=3s-s&`=Q7BB8);E2sNT&DOcCgzkDB zKxA|8RsmL~73AH=e~r+fd3q!QMk8G!{|e5+qlmpsdw&rgzTc3^!5hMYL+}-Tbh^NQ zINdq~GTAm5!ggCE+2^NJ@G~;uyALrGS+`~U|Vp+q2{yzTA6Pp%-G`{`eP4_}L zfsH(E9xtzy_Q0Z`s!%_X|KFVm4?B@VGb3Q0ETjA7qiOE2Fg!1836g@=Msv#-&)Yb%zh5j^zP@(kkzkI}CUjEJ_BOMK9H)g{S z2dK!1uo@_r!vUiKFE{Y+lZz@kO(XXIi~vnTsV27IT%iCp0h*3%aKN^X3xv@!n02CB zHMi9~ZQkxe6|LU2lbIQ^(H>~01>!$_YBR;1(Wj4BV8gMn!2J41;S3S<+ba;&8*EIY zRDq}ocM(G4#P+P3<*W%-D<5cS%at8j)d@%F$>U^tCuRV_qvEkuqw2*f|XB) zy|6K;xq?3$@ke+ydW7t)2TxMX8Ke_iD+pPMTd1no)&|v4e%GTrhVc#x#-&m*9u3l? zZX-x}c^NyJRU3_cdUwdD@GodleobxW!N=&0g0aUov^Hs|)IdB$-IYXt4l0N6c1dl~)_)Kl-CSEKYg+4yN(($5(U;;w~k!B8?$e zYLnLM4}u(Ddc1ENM4T2GIAF?K5l;lLD-7lYHu()A_cRvl#a{r63=pFL-QaJu$I^s^ zYyKu}5b`8EwU99nM`PY=EHM&TX0h56Mdy7-AxcY$Ze|G* zE-Z2pf8_Kazd94JE}Qs2RpR_NGlAU;C??fW%yV0c0ZK+@A;n~RPs(D0MuifxHR#ri zIpdIrH&3_mcOUcLMbv{N!-!E{B(%{bm|T-&K<7t?7=jo9E8eh157--?Jo@CymZPKFfPn+Q;LNNk;4$@{WdxTK@NgI+HdWb z)OO{n(UBwjr^#vX-#pVtuA=+dMXZx2o;{9bTLsNM+uHg>=1Chvpp$qf z$w{=6$#BA|kl{p-0!3|n?l@A0GtZ5-Q_5g35;LX5Oy{2zGkyQL#3J!73^rjT5nLH; z2{4@C9p|o~;PJQTsF?N7=N44Hx}Wbtcz4J1om81{W2)@)VRzMY^5>o(!n|L3et_JZ zNw|Q>gN$Kwk2;5~swME0U~a8kXNFO-V|VRCLf0>AKu0IWVlP56o68BDQQ4r)I;*~Z z?6Y1a(R_Vk0=%Z+qc`qa__yLGdlII!fq>JQGH`OEibx7MEkFFj^77Nm)6w5WoE%|;*G6OE_b}G;xYcMPsS=^IO{>j zpD4PNLAwn<8NW8b`|IGlZTL0x!@DxI{&^ez7Wy~gT#StNhxn=Z-3tHtLik;^2YzMW zcn2#P!MWnpB@Hc1t)!rxK^sJS0c|VVe*u=X(wn$8(8Bif){5-br50SZq4lHvnM;@2 z(8fGg?+L(%aD5c*BD8tXh1!Vy+%DiuvsACQ;+n`nv(Uflb2ot!%?=fSj{4rBx$tjx z$ESYA8ty+{Ja&A=-t5CG=raMn`!i?wPd~H!L*UQ$dul!T`OjYAH!g;G;^G~A_{BT< zwii`CchTVTi~Y01FFwWio1Z&fId7Y*#Q*K3czY(F%oWp-SS%CIB-5k0 z=DSw!I+0#wOn!_Xy|kEjz3kyrFYCcN3TAV~XnZu6i55!nd?A%?5u=2tI0voaRT z#Usf`DwB^!V~J$Os8SY-rSEJ)P4#r2e5`nEs#pj|2<@-G(%Bdy*-kwUJp zGyw#A8ut}b$wHzCZYGkkd@Pgi;n%*fESf5nMzhIWJeSC3iqS}>R}){=;Jc&a_{L?~ zhd#UMw$=lc`iDTFQ>bQV@)x0d9Q0r5ThgB$JU$0%+x;u|gt}9Oh$RY-t(!@K-&{ z|EJ7Py_%f8{KX*_OvX|~y2NO@1Qw^_EAYk7FuwKqp7_@1=W+)d}D65p> znN&0%$tF@6h!kY=HeU{9ZvWxX%AnAUTygLI!;>ctKeGRDVU-sw-D@e*YErAclQy&0 zSXZ`E-4V3=X^;b(^J|kJTPxrFdLWoeMZm*UA(l@^M>FZt7=QfrmBDN_7l~#@)9Ev-giSTGvT#*(E{ zA`(ev6UlUBJ)eG~Hr0onw$`6G{RS!i=0mLvJtN^r)nI7a9ZS#gi^w0&(TRQX6mL(-(~IBlyH(XQ zz}WxzgrTeIes$~K?|%FD-KrPgR$u<1dbZias;s(~Rh4s19T7*h`XDv6YPG8DWe+On zwzZ{wl@n8Y4i(17CrXN{RSqBb5MXq&Qc*N&)={%k9!jSZ`8~%glLtmmDvomxwKO{E zZiwz4nLKcKYR|E$(VXHs_tgdKU34c*caB!@o0^y`?5iklf<_2h8m|;4YjD|Hm%YuN zdnP9)rW8&1SVx_Q9tzOSse30*>`4se#4T)TRgM)TusQePV}}%vd{OiMX1zDl?|1FDw44V!U&1 z&e{Ef7I7V_9GaLssVX9%j@%yAZ?s_Z+CMRQVCq2Ss1mD_pvs9#>DW|dPZ2ad zsB|?*;DN*FQy4#R)Q0y&wpOMJ<-$~9&mrqV=@l10->)i5#ov6sT~+$U&pzL#Dgz>- z#n_;5Uu>@`iKewQ>e^!m#>&ydnQJe zRD*GBvS1uJu;=Lb#MGWL8dC=*4l8MIh$#m1dvXh#mUXPmFZX@<6*cKp^pN8BDaPf8 zFDrVt;{PUNj;cCr{&7`Y(K@S2%rO#la0geprmt@CbIo8=F*FR%Sj@?tT;0?fQw?Qf zkkNBo8wo00)s>iw9&?!wa*eB-Tk$w|=q$keb_dPR74FQa9-P#S>cGjBQE}kf7-v~U z3HST;pyDSyxoR+7#~BFFIj9)ZPhD1wnC?&%|2MqMRTUQ<@n;&{;(LxhvBcH78p!pi zO4P&MCO(ZA7!4rp~JDaL5?%Whyz}>WHCmyGE zYs^XO1#~3nwWn~-odUztG_zCqfIgw(3OLQlrl%d(O^2yLQ3p-!JZRu9urzK5HWG!% zyeI%V67*e%LW5l84Ji0)D0l>OHGk59;h8mhn69T{Zn;1=7U-r00y+}3o~qHXUXFeP z4Fi6g$h!EUt6y|_JUlQvB}iNsRClc9TPuxH~Mkcg82Yj)?lbphB}#1lmG<8 z;++S>uBp2D90Eafh+C3ASnfP50(69!YD$4Mhkt(hs5KOEWp(ueW=bT<1$T-E-Lb0Q z)DMz%VirW)*Kx-(0ijW#;j1xVGq*A_2sc}OvZIm>+ zvbt*GMNeYo>Xxvn6yTdw3ann9?Y4cs4*u`ZaPcjz?{}y*|F2bR(1!IY;vsLU2}_t) zx5d}Iakg6g#QOk_CEs=&zwWyS#~%L{Z#^skXsFkV2mD*uJK}BsDo?ZGpZ36Xk^YM{ zf!^u@G8R)Y2gs^%2jtmdDy&MRW+V+xSRzUKdSZ^WQYv?tq<5M&0rthT2@Jd^7CT@j zJn~9CXsEXaRm`Fiv(-((I_{tuVHfdNt=U9?$wpXHl34_|%_%V*O*=a!Y=rEmk&U3q zEgLcK^wK_<#)_ub=T5IyZIcWz*@tVVUm#a}!}L&AYkH`tHRtStH$a?0Q){)MdFcx% z*$dXQY%YQ8<|i-=hQ)!9$c19!@o+ZlA@Zt zbpysV@?k_m_|SZ~5ok6p#$-}KZ7*h@uYrq~!rLIzKMM~>A=5yY84o`OAE)XqejP2Y zU@dfT=q+NazQ+IT)0Y*ROw}_p&+ET&sL#2?`Gy#46MxZ=R9Ck^BN~OPvEC2YOa6s3 zeSuiqxQr=cN8>Ql#dD3lnRc%BYNyqxjxHDAc>Ts%M!s5K%eF(vLtuLpe$Mzv!GfrV zyf1#)m|hdXszW0|HxF?ikMJP=A|%mKv~|WqQ6G7G>g5{=f~h_pq%km(ImT@ZS3<9! zUO0&3UoIR-qO)RPMIN%Q6iH~t6=ggc4Hc zX3)4)9g78nD)|ntsjoDU*HmI1GhE+Q@x!DO-(kJ!zG_@@jCCoNg^d^v~+>-CC9Hn=R-_+X$|n zY#Wb|F>`URPG>JXUA^$MFAl9DUQMfGh*iA$YO$jIH*-O5fHroVVGG3HcP#TOF+B+1 zK{$#~=PgVVyE10H5!H(xWp&B z`nJJGE7F?aB7~KZ&++0Wj}!oTHmwZkdJP=-iWPmoU`z}y?ZxqvOWSe0cjxx1 zI6@R63l?*Tb1hBc*?~9EbM3MbvMFa;+GqY~S%*4TDj_Q~--|z_ibC=M_HFTgvJJs1tF8?ZJyML*2ovk(O3E2Q0!3a@5*b2c*nyBRs{#o~!~pO(@}N zqcql>oRJDC)@ZRKVZXsm&j-R;7t_qVc-O-Qy<|gmn9wfr&1CsuAsBSX`1xr(fS^N< z7{8`Va=AsGt4jAAP&sKpkd|qi$w^4PFhhKqb$DPM9GonR$Hc;;D^Z7;d%&&G zZ4(7I_n7gX%Z%<_Q3r+g=tGu~dng4)Uh8Z&$@*z`rVWoa6T2|&E z(LxrDKO&B15eI0&N)w5&O4tY>My>(tGtr{#oX8MG)QntJt-?LQyAy7RX$Ut;&(VY+ z#5|G^(m3CMA4G$qF82nI3ydO(*C^zYOrvlcOCm#T;sp~5Hb~YXXhja=t_8jScDgf2*8UBJjJMl6mq{YqiMOK7>_=28SAF-!Th7K4;mf{2W1rl z;oTl|7THS{z)lDeOM;?nXQb;i`Bos8Vk&yX~i3Z{=nppP3GnQnT-H}kt zLn*3sn3USUpF|ZC#!2&=twKvxCQ{4H+qgG7hGZmOfc1`x_vD#RN zgj@GN>k%)miTX^lZ78}XzO{xUNcrbAcfnz=8QxIxYr}>MxI#85lLux2Lm5;~KQ;`L z4}j96Jo?x$Ff;<@ib(O@J&Hm|lRol*=^miM47dCl1w9O(Puj04s*0vO2Ra3i*fz@pv%mqz4fx7@cHGJa9FzFCJ13Ogj||N_`AM z0Lh|N0fteE21#z_f@dFxx~-;{H)X=erv9lx4Z{D!-CWVcwnyqkaGkr&%%7woVHq`m z5zaG8P&{LLtB9{#LNT-r)5na{$cx1Obt@sYUtBj(^+0M7NW>J9S_K4+A=RICvT$r; zF=XE$n?-pA1IH+Wsrgw-@od7Ip#>}r<>rd@h=Ya=aBr=NF}>VJ&8mVJl}7Y&zdZq@ z-$4-uO(G)<8DKalzz70#xfWnJfM+ZOP%Xrupd@Z$YDF1gGs?j7G>)n4IVj4Y39A$` zDHLV|Yqt<)glY}M7>>D%M~D%q-Gt29iz2d^OQIEF2@1k!L>5FGNFmfz*=S5th7ID7 z?@$P_)m3-{MK1U>n8v^zo6Zj0CkT$#d=8ntGCI~EA3}JUfnyEwfrQ{#gFv9r2ge%Z zJqf|FH*N-v4s<~7DLZU~k~qfJPCty|OubbQ8*W1Eq;jS&;p%{b$m|}tHio2pEXs@z zNWXO5Eq=aXJM)NuhcYpkr(W%nmQ@g$!r8-(A#RXRWg5^ZAV}?0;}Vd!1d@0fv0>0)5>kRS z+c2oO4eKQsExZ;!dyE9ZswOoo+42~9yJO8hc#O9oZ(yBfOQ47J8j#m)2=YXT4}vtL zvBv9+gk?jJybPSFTttt0fyEf4jC;W97~}}24MCSWEPirx3-dg)xxPwbiw6;>S*1UE z08t>Qr|1wYEdakFr^c$#hir?cY)5PhViD)r7@05hRHGbP51H(gB)+9+y`@ z0YEvg5SyDD)*uSD(RM?n#-qSkytO%jRQ1I>DQ%5D+R$Jv3-%s;QB^`|2X1@AmLA+c zvW3#xr?>2w^F)(aytM)C6T%FnZdxIQq3icG77+ZFR@7^pK{C;RiuJb~ z1l_?pXuK>WVnya3M9&>_9IWvoK(VTWBQ`@Mx(U%A=sP!52qIJ zag^#R=%|rmGEWoiGwI^Mrz;8}&!Ef^LcbcH2@`Cw_Wcmife@?LBj2*xR>L410Y0cHH{z z_Be`8|FJ!W&h4M*(-41&{_UMNc7OI0OY5PpT9ibwNBs&TmQmdK{ZFLutY=38qb=XD z?8Ya>jtp+Sy`vjigH)0G@6T!_ucIfOzbVByj)pJBWDyaz{I^J$H8FI(}ypj+^e>c8wnY_)gN}pWm5<8ur~a z&;T{W7IvTF#}@WgOAB8U<9GEm--sPz17O#V`a#Rgckeo^GA?p=cPxEO_4{X2UWN!tQ9eHKzjslsVk z&LGSQXiTLV1W|S3uXeVxu=vT&5(eG0D~2#~eAiMJc-Hv`IclX)-zO;K;^~TBMB%nIV8EYRx^r2_fGr)wn15AJeWx`$)5f_IIh7TYo z$6yoGwNK!Qv&?z~iy-7F2BTa`rNBz&J4iffZ{BH$Eqgkv5oyO^9%QNr<6!rc8=`c8 zTb0j7)M4|F#PbZJ9W#PM49FiaD;K9&kDS9MIAo3Nn;SSllC4yTprkAq;xvOX%Tuui zR1Kle{N)|9Cs{7ap{Or5om6P%n|m`b$G_Oy4RLBMv~){Vp<)owk;;NInHVaE1ZH(Z zH0@mm(c7?hs7f9{C!2$Fz%=oO?L+Ld*St?|;QGFH+Oig8pVp(;xk98vdk#Fz70R+X z17k4wfA};vk`}qsaFuo%x)h?Mc(PDO`uGQhX4WpgdRLqHexY%(6z12Zy=yY}S6Zx4 zZf+VJDn=o_@nTz5hJGFdo`?XwQ6~aJNhFH(5f1$sy?-I?HARXPSWsqT8*UkZnNU6p z1p|ra)YlGw4ERp)nBsO;OKKe$aNqkqoS$hX>zkA7n!oy^C?&r=D^bIo?Hg9vu$!% zv>f|Bkgerx!$cthVPUa`xQ0n61&TbV1^zpFKI@& zrjwJAfhC@XJ0}KV6>pVWtCYmUqmX=Z2Mh&POIavc8Ejyh`iJ=}!$Z3p=n+5Yh?+v^LS-IYUlY!Ab5DE$*>|h$f2dL z)3$<6!#Yb1wo44y>6C4|gMI(H_8S?EwgCfFy8e*Wl#&)M^(_c>pHu7V9_`G-o*}Z> zO0Nv`sFzt(tL0b*h``7L!&xAzw6V6U9ilqAObj1u5go%`@%7P#a0P!ex)gZ}LOcaq zvyhSS92p6bjL6cNB_p9(8IkyroJjUz%hnPQHwj4C5)i7r)oN)W(BF*`rb3y;1!=Hj zVT$O)wtYUo+aR+Au#XI0($DJP$mf>_|;Hz z2^iJ&t#sz0&8<9yS0Iqu7`BkiJPC=4Q4z|pLX^EgJ47|Qaxt;5J*cBX4^GeyHb^55?0^t_aA1@z7JCmii~VCk zsORGc7tu>E=FoG5?<=rPn)vH6iX9(6*e@^ZPCz9~jP^LEKEM*pHtVX6T zz=x8R-3NPWLwM%OH;5FBi0>U7jM?+!JPnd^s=C60;XcA)+6wlG?(r2YB1+?1G1gbd zdr*)4(RdfC1-}{Jh~vgX73LLxd}tWg|NBt?9ZD=R5^UfwO}*M>SV!n#w2nv2>^x$o zUr< zIc|_=gu>N{|1nV(i;px{Os|F-MGFS73tnFGYN1(I;U&Ko!ohMKv>l9gtq4Hsg(@+W zVmZ05wU-eLoONW?E(9sqDB$A2ktG{zGqwMIGl^G@Y?>XcK|#?wXZzR1e4(;pPJ99S>zB{jqNYmVh;|9zN8*LsVcO@c!q_H5{F$+5Ka>op7 zpcPpf0vck7Fh-Cs0SC;jszB6Bt3jV8T8&R!oVug8PEwiD4X~|_oLq$0Q87sF)Jg+~ zeYOyf2!8B14B=;v_ldWTwJwYVVnl6OCzV=znY^}nzx{Y!6+ED1!!45y5?sWpav6)w zWz25;$(>|CDF`#YHP{0K06hD#QZ(dRtc@313yL8(&P;B$7mGmx_Dy7)=Z|;qn#F;D?3xz`K&=;yFEbL6--&}yxbE!+J(k_O8n*S&y@N@~jzu&EUhI-lhfb^^cbvp3 z(3r~;ymS(Xh(E^|KJicYF4!L6;Y~r#vC}sN`6VY9wq+Jj*uvVF5MUa!UycbL)3_#| zX-rZoIe9?DPc#&LCL6-?b-WOkP4Nm%)iLi>fYMt^Hu~07OXr`eUgmk?+=&%)xP4in z+8J3Ui{EYY(i%`oQLf|n;`#Ya#dNtQFTJX1@de@smP%%;B7Jffa(PG$7kwu?#Me*0 z+mF}lEb2!k`ZrJ?$*I*LCaU+P#JivF!Wd)|1iLQ})_(lyMPm1TttPMmeQv5=Lr!Fm zHF82D=iwZnq?Ol^vuS>ELNzUNkd|7cZ=_Yi?m(nf9uT4XB0won#WpMmVQ5oPpEitr z9Ss}qrs;qdW0Y?)vd*&#NF0Fz!mMn|kkaKKimxgzNlq=iAd3#eI^J*J7l2O1$gK#ShY0$RF6 zONZ?1rc<%e;z*H@Ef7{@u+accP%BgP>AM0GDIS$LSzXDCaNV@qAS3Ly-=G&4QQUxC z@j@9g>JXIyupGKQo)ZiME3*r{2aQGQD9;es`Py@%Q#+TlOYP9=>mTYd0ku1`7xbl%%m~egMC9mZ zs-f&YdXzQK{NlkjM>>m@)iSV4k6czb-g(psI=6wEV_cz{<3|tCfMVSv-Ay+Z9LfD+ z5BZTtj)E`t?nNgzOHIU2nLn%Kuwb4k%tTEe{%Y@|N0G(;;L)KLsxet~#*|4p<=Kbj zl>D)DgM3>rKE@T9YjV~KR9B0!$G(WNrGBapW_-n|Ym%}v=7 z%wxy<;(wl6ig}%n_wJ&32^a9Dk1>1?M4e-@@J@It$W+WEe40@fZguTOZr-B?fR0YG zg$+o>s2@w?ieOFVm7<9M_4sDI;oN(AISR?;)4S)s+K1Z3gQ(I#h+eLak3sp2Z;Pv^ zPvRZGPd(9%0vQy8s4(Ei3qV0-?bp8l^7sDVPrv=w|2Xr5 zCqVj~*!bj^SHBxkQFHKc5f1;2!TsJPVNB@6xz`Y#|jjg0fV z_&M;q9{$s7;WyVF_=R=j@3E2rT&sA4CV+DYXAS2+#5scV49*L2{uQvKmDa6V6Gm*?Sc2rD&hSxdG=A=tAdhXw!3d0B4%TZr_YHk%4BR zfA(`90wtOqHIqlch#%8j_&4+Gr~ZYt?VmVQ87vl#;-k64gGVMO#ww+$qk~5Z_|)#C z_}9;#g7-UmcGvIj_K#AB%^Nv{a8=CJRYFD3nA;<>JHV9xmXOj3O5xm9|i zoX92%>0&uq%8ur8Me*zBmgvdiXeO6R#|y<&YP3+ui~i5$TFb>kWvG&kk5-D=a(pza zdnS(^o!T=oaVR2Q`CO_cnTRI~nQS_r92zR8GU>XTSKfUrw}S84C2o7ZS-klJoS8cU3zFJH(E-SN8^cj zI+ZFl>=lF0ufRwRkrd`A4<$|n#Nvu3m zEEY1URHe{%zldDu5x;(6-GY1>L>?`a@^>NmO2(h~x_?U<(G6;-!3f zDAyr;FGcH0L!-&mP$82qjOKw&vNH`dy6W~9GvGqHR7e&o@l+<06yph?(cLTl@_gek=rvR-$5Y8% zW~fxkluM~X&-~xN_TKpUYu~@A!nl~3sl2k3Me;=uWwe~k4i)m5Qo68|K8kVd~uA4s}~w0iA21dDI`bBpz2Ts zc+;1(twX={L)zrbnu{mdwtNcGIa*AVlKDh3kxQlK`Mfqg|JSvdh}4o|W#56rdyXBx z_rT$DHUs)B6rcJ+I8r91tK=bpg;FM8%H_nTzpy-lFL+DITs)J?C5pvjDW4bL`a(34 z9L;Bv$z(d8&Sm1sYwE5?4&*3h5PM*{jJ&IuTD5@}s#_p_opj zvxSvn^3}yr=teG;DU{<0XhI>GUPWIq GenesisConfig { bonding_duration: 60 * MINUTES, offline_slash_grace: 4, minimum_validator_count: 4, + invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), }), democracy: Some(DemocracyConfig { launch_period: 10 * MINUTES, // 1 day per public referendum @@ -211,6 +212,7 @@ pub fn testnet_genesis( current_offline_slash: 0, current_session_reward: 0, offline_slash_grace: 0, + invulnerables: initial_authorities.iter().cloned().map(Into::into).collect(), }), democracy: Some(DemocracyConfig { launch_period: 9, diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 1c711f90c1..8ab8a6ceab 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -252,6 +252,7 @@ mod tests { current_offline_slash: 0, current_session_reward: 0, offline_slash_grace: 0, + invulnerables: vec![alice(), bob(), Charlie.to_raw_public().into()], }), democracy: Some(Default::default()), council_seats: Some(Default::default()), @@ -312,9 +313,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("bc4bdc45ba03402f9b4c7ec09834065c57205b1742bf2469ab9fc54544d8d002").into() + hex!("0bc6c118c326c65da9d0f93199f471aab4f636cfe87ab9a56c823024ca83995a").into() } else { - hex!("6bfbf71fa08d99f2488e295807059269cbc43ea21af3316a92406974593a1fc2").into() + hex!("58e1f1493e311d9b1fef3660426ee289736c38eb6f7d98911551c51765163056").into() }, if support_changes_trie { vec![changes_trie_log( @@ -340,7 +341,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("24f8ac99a6d98e9b53f4f6ef6ffdd12ba53ea3f247200a8126fa69c4b5047fbc").into(), + hex!("ced5607b16774cdbf750f8f7f0a99cd4afd7eb14db376a44bb8656f2ce02b18e").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -369,7 +370,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("7b7d3b509a444cdf214825d3354507823a4c91eafa493f0956448881a81ab797").into(), + hex!("8a506a6f72c7efb75fd069a8c4f57c8e0b6b5adbea9646522bda64d4c78f5412").into(), vec![], vec![ CheckedExtrinsic { @@ -659,7 +660,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("bfc8051f91071149cca8b8dca6290fdb82eda6868d48cfed25f8ca38ed3a1049").into(), + hex!("ce21753c3f806443c2758c982850861708054b65097fed82689e7b16cd5d6e24").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 0a44e0b021..ab578ac885 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -1472,8 +1472,10 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", + "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index fcb764ca1fb11099241f950674dc7e4ec262457b..b7c15d3bfc806b744e19f2f13d9837b14074b74a 100644 GIT binary patch literal 807803 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 z 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 K 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 !L=q0>evlC^~oz)NIpUD*4Y1)W}lqS63} zHW2aM9yFx{!qviL@af@R2n&-pWQ!|U5)G$jltge9ZVU^KdHTNs72^5e1k-u8yc75Y z`ZwodxkLZblF0CC}X*)Po}o0h!|U1_q% zGj8{22RRuyE;*+N*JUw_iN)U_ng!NBTh!O#Ud7?>F?81x}s z2%V;bL4s5xa>U?rFlcrW9SjS{A&7LgJ)`f^FXPP3t}{0Ujy{z(FwNlof}ioeOQbJR z*O#nf|h1%rM;TgwrC({EQJc+!>qx@bFPqk7f3g&XaDdL9Beo%yUEO=KSERoLe?Wa zWPJDgzy)dxvP74IuJXVSq;CiT*^H&+fgi}>5DWsH);ta2w8Bfku7jQiyB7TkF=aQe znX%594Umh7YoYbgO&o(iUM&u2YtY$(Z4J_>z1bfPVAVGZ)$FWlI2rDe@qO!IrzuX> z&7P1NI2XdjO52t9#?oef&i+%~Nrdx-=atOn5_?K`x``BeQew8!P|@r4Y^S%}h?z$I zk#b{4@tu}`>){bDbt{@pJyINoLs-zT1v*r^Y;C)G66L5VZOv#;2TYh{UF85Ht6b$Q%8HtAD|$d0MbANi4(YGIcifRmv64n8yIP_FM6ecrMX2_>?m21hiRZK zbKHT!yRjrdq~-xKPPFsxsLBN`Y6pFzv9jUGgbm0pjTC#e@eUd&*k&Qldg*ny6m%p< z*tbeYir49)BkB?nK@-HNASi5;T$FprIK02Md}%^ZSF&Op3m+ZO2-a0e#G=%veKhVe z>1e{(2DMXQWmsAfPy8+Q#UP?tLF7u=7LCu_7mjdoixXRM6Xx#|!DeM*8s0@B(I`a@ zDRoDw=m+aGSPa{UA;J07cO+W(g*JGlX^nBY$_vZgN@-~G;jdJRB}tXnkt#iu)8<%t z7{tmUCuHMJg~Fo*?!l7S#V(v=JpmK^#=?u0`^8arSxc=pE9A^(}+hmgR1WZte4GP8Tq za~!Ynxl)8U>EVtHok2ZZx`}!9ssHP9kdmE+3Tp}s=;|)7?oO|cHZ-PIUE>B7L?*Eg zH(WyIs`GHaq84pa1#>`PQxGEY0lkngKjxJj20s+JQ;1-!m5yfKMG#X$j=L4iBx>iG zOPe@!DN;CPZs71q4r9WHqZ+)Lw3rH5+R=ovz+KmpFi>MQH_dHlHT4_DL!{yRQ$zR{ zT{E^(LpIgak@8f{ZX-zNrE;;)_NqcUMsi@5!NYWphYuK;kw^rDBzQ(XW#zOmiFgcw za&iEG2xvP`%FwuuA25DXQr5n9bdpeJt1w!$C4=41cmv{*ZGAVP2Kd=N1hU-~6poW2 zme0stKid=5W4)}Za7t%`vFFgch%EmO2I5gVcGfHh1VG?^$+u475$SL`^9CJ?Q=oP( zda^C~>K83IcNF--fh*hb;gGFp*`QG5PGR&##q#&=kdSa0UzGPRz$QqnFm|scWxKA0 zVNY_pFBE_(cRO&O21-X5xa4jGhTHDHe^xGqW4N~4&_xEY-mIiIMkyReLlE6a;l*FH z+kGI_k;2c$=auO;y5q#{oUdb;G{143z0d|KO4pQi@22Qs4^~Pvs+2mUzi@MGRB-KP|(R~I72(t7?-M< zj7c#|6rw3YlKq=w(sX4Qzis|&Ok48jgxr!2Xv1vI0y)9$x-|$kfm2^8l?K>Zj+l4t zP`cesEORw#n3(Xtfu9-@Vh=R7gg=k%n!hE+Ka8{a7Dz+ss;oHkO?fhW4nqaOgNh778vmOkh0=A(#1GrA~Nnme3+qn9c$Ma;m$TM0zMTE8d_g;(dv*n)fYF#Rp=9vx3l?DBE8 zysfH;_&iVDaG{}5S++nHk#J9##4RXnixI?_H&G^yxpJ`aKNJRkepOEueY*y%no)kP z8jSL!05HH(NT1NC$OuO^^HY&U%C{lNEd8c%>}HBBS|aJqLf}-X8(H52R)%JGlU0G& zi$Z2lpTYtshz#|ES~~p=on0EL;oM`hh;-+fRluP+yX{mEj`ZaKk@N|C6i`>nk|G-y z?X>LNo4z=!ReiWaWinREvX2BYr`%Yw)q(g%rhB#s^pfxbYcVN8AaUp%38AvAjthkw zSP0_|Cp2fhiK$Qor$PWUxEB#%7H8I?U;urRKU_E&`rAaed9Ng7FdJl5f(d4D=8du! zo%`ZF=ZnqbsJ_SO&JlpVL_Z_+cP6e9A@3utdzIwr|=|KI6=!&3%|>&;RP@3X*x69;ks$ z2n$4utG_bywN2u}TZ(3-X`ET`(r~I{uls%(6?M|U$43^k2f!Z36ZSTTB@aiChp^&M zk-z<7Ws{*JcEpx<2%FE~bs35Fk*UOh6ro*)s0tmMj6^7zaNLA&#B3hs%O*3*Hc2c1 zEBS+PRBv29+9q%x$7>@pv@aZ*ga_Wyl?2L&rHe^I*%^lGgUJ={RP~NCF*Lro(!H-x z=t%j4;%abAfT$?2NVMecE^-*zrHh!?Ai+aFEKj&E?I|oLK_cP2rQdzPj^{9|7 zYZzmeM>TF^mn0|>%JihC$`HQ@#cn(8Nl%wWBvLa~*;Ykwzb8FYKJ0*576UG2J}z3a zNohn|GYGsZy*DNG%>?x|K~Re{l55n!H5yQC$)PHwRMkyRMg=Bf%`RS4of7x1XUgN9WjK`AYQKk~2!ncm+fnqqe z4YYVGfnpx@(SU~IXo_PHsHQD8IKSZOP$8Y1$q&8C*TPw0l34IZzYG^a4UxF&mX(MG{9%+3MX?RzW;}Um@ zn=!B&KNJ9Z#Q0W7muqp{Q^!He)Oc%UcV543Sm$Bm~-$&m6UJCjOVzg~vi zlriPuWx*(2lKOz2tu!A`ml8x6y+K%5hthLZH~PQP>&s@1hYN#WDHS<p9~m}n0^?PvKLvFi_(qrKVU;3yB z*x9sCPZn2$IVS+hNOKO-p=nXXw8l-*uWOlVZ|8dS}kQ>C|`t(J_t1YXmTd0 zC$<;<0EsuZ1Z9i=i=JY?xn?=Fi9?MI&)s$)XFV~Qk{slp5%-vQ8nm068GD-O6YR!( zVPgEW+0`0r?#W%Gz2us6?S%>{rSdjn8cKTw3(-6kL_jQ|ykvsdEFxGV)(~UZla1{_ z`pk!iB+(EsL)C1M2V9RC)F97TE3@?%>aoFeuk4+?k&hnh7Y&&n3r0R;5JwtRo0nKr zV75p^W8iE;XSGBX5t*gJ{tDj_%6)o_%*PXh@x^`;>G50f)GIflhvUa^1=;y__Vz{I zqOxM#vAty5pFy-y0tQ$mk1zkr?h=GUSUi7S4+oSqK8+RNgQ`e#Q#shiLa zF^vS%^2^zkS`1zBHe6wTu0ito`GABc z>Jy{SMxx(FqCaIM25cn4bbml|ea%A=|3{MQeMn~TDq`sqvI7i}Sg@Gxs+YT)?+4Wq z7YcjrSNpnezCU0zVixTYz=3ZA$`~K0$V@lfK0~z*CM5Nb2%g{{X!bi1^eLFIUz@iE zM9Bd-20w=z;YEf+z>8==qfIf8fuiEYu%tMh2wgxHgAcxlKo@{Ujd(ze=g>i#;ztP0 zHcAFWp}G(jjb}py#-v0UH7(a71sN~~UF_9oNWhX%!7a>Q$$7bo_EW`pBqQ||8)u6!7sM&3;cg8K&5o36 z=F5!>K3Ycu6j(VpB}(bpQ$@4SRIrA8weN-W)TyFQSu?K9gjB$+xnpG!h?6CiHKT+( zjKQ(xh6Yg9vY_EyGl6=KATS4xG;69Bjmy8_n%%81Kfa?R)`^c2iXZ2jmUYVPG*7E%E4}MV#4er#$a`YBL$M}Zg^N&iy%93^E2 z779=rm<1c6)?D|Pso7Fsox_4y2Q&>+cNY1z-cpYa6}?@5+_79rPl7ed_uai=NR(44 z+gH!C)V~Re8ppsEF0bHV>A7_Myz{IyM)?tqwRw!8B9^SVSHuq|l2Mob($_y%(4sol zDhp6@s}ho~RX#lATJT1U;dsBV?$M^F63$%EYDj~^$W)bNi^wDCDGrgVb8!iMAZ!mJ zgxC!zLdt|zn}N2|Q{VkPryqU9;6bC1lSTPKFGL%$&}J%yO!H8S$_)HEI|W8zEC&rY zzb+RCYzqv)HNyN&-RMpK9ClYf3>})d$jH{J|I@77msz1(Pzzj}tK}TE5a^KpDYalp zc50E1Q7z9>i^)7&X|ts5dwgEx8GeK73d#t=l^$!r_D1PWho%!&k z`T)=g{m5j?A&apa+kFzatd1Hiis7+~>H1jBF;t8aQ>1lt>LUA3$EdQz!;Iq1^`3I0|-6X&J_F)#yiZPAdCPw%!kkj4l1C^E)bOLrH znbE}hsfq(+yFz9-<#(~x#45-h5t=>^U=3|4*!Z|g^NTTYaDHexJ*8FBQ?h$4 z&Woi}xd=`6V>Rv}fW}mZtRz>dXcURxhzKr8#IiCIfSObmn|h^gc$~vZfZVAItuBTn zRkEZ`5t(>(^hQJK0VsQ+97Uc z`=TKe4xBZ=ft9LbO8+bK#F*~xp#r;2z3#RE(J_$>Xyt5hsH`;40|_XUXXFmLB2yo0 zvnNRBqx$B0L=JjVw70=^2%mUIDZJG20z_{b7r*jC8MGu{-hk883Ls+9tuay`xvK*#o^bT4Bc= z9+em*W4^>9l#T(9M28_*22HD2eLVIm|55=FnkZC??oGG{O zK(^eTz-}^rnO*Zo{5<#q{i2iF(Sp|GqFFJxSj?SCXwlS0Lnw@QmxpC67d>>JH64{N11IS zVqzvv{#+uHN~fj9<*JujEp(h(k^efe0q91*2NtHQS*_Z`?zJitO)rtjJ7r_r_+QjT zqJQ3l5JZp-op6 z{PvAo&6NFl$8BxI$1!iT}`+J|^v`+*JSCrCf`Zw;GQ8aCsQ8rMNJhFfl;NqQavw3}=oIa8KF zNqRr9fn4b)z4+BuoU1+ANZq&(--sBSGq)dWu1nTDh<&v>>3uBef8jAkb@hW3U+u+z z%ZqRE;S1NMh0oJ+ zW#1dqa%KNH>mgOHUffnFXlLlklpDTCc%P;zQgACJe3D)*FmM6Hj`CgLYNL9#5==4> zFotffgV4YjbXaQfe;g1b8UBx-g0j?z~kV?psM3%Ka5tfY0Os;HN9RqZpCoDK?} zu2s{U>Giha*^+%z1)E94bmIa*A5a4o8 z0rJv-|1fu~1<22sWeVu0J?M2Y?4QlS{+Tz0eQBJtQYm1EB_hs?c6LAtdR?2bEc8Fy zfnFzU7~+3CK(A#PN8jk5y#CvN^_fpT^Gjbhwy2Jt0dsiZy3uXEXVt;b+*rV8DJx8N zg|UPqKXd@1`96)+ZX&f~E#ZMTG8{vE*BLDjV zB|VEqsja;}R)0$72T7lFlAe1S#C(DGpYR0phQ zB3K{Sz5yiOBC!542iEJ$gGJGtj7L)Ec#m;rAs{ESUCu8*fFDLnN|M{NI1?8MXH_Eae^M`$g;x*U4fIb^!TVA)as?G9uwN65ag z9ArP5gY1X=xjGsl`}3d(UzZ|W7QHztb>u-dDR-;(G6d&IF5{P=sBVO8ifqPMnLK z_=@c<(Nsl7q7~%<8$$EJs_di>?kKOfdN3pKSo4V6I=&F46RL~N-i{EM86qur!bf`#o>HVv2oa;=wL z16b%$_!T3FXl-dFGfFWUWfw7(l#iDvr&S3P24+F4?E8|If# zKK{X&4GacgLm^cQl&x;{n3TPmuR8nAm zZPQ?;zSO_C^A`j)O+pJE=3+1j`k1Jt2ZI=7$|Ifci<*x)`P9@r)_a_F7NR&ytjnwP zmSG+eMitBhT#Su^d_va^6T*EUCVUKcsW!8F!cfZWyuk_WRqB+SV`3tR8y~Uy8{+yk zYH2N=p@w(|3nxK22{gs6pMV3euQ8vJ#5rR9j{ zWGFmsd{c#n(|-Bu>|_SFNi+ieT8$519}Cl={&enew8WKzx{VoDf)3bhfO!+cC{SS< z`6u%uPy?f&zsg*xtFPFJtF6E&Azp1rQ~h|rx*IRp{Y~F zn26hX5LCd4Y(_#jQsK~U5-M~^C{++UWTr4jb~Zy=|M7RsLWInQ3;*GFQmsTA6_s;j zQPK09CeBOH21jlM+NhX}3)Ha+_nT9PoYkxv8hL1L9LFY{bDBn+#I62oXsu^XVh#dW zPmBEMIL0td(`iD1c9=lJu%ed6;nAmLv%sqOi4CJBDfQK8W*u}3am3(dR*)>0Vn~}v z1uE4?c|1)Np=(?sxUBRLEEd9UF6>1T;5ojBA8?PbP=LXm%p&m)-^3fyG7=UnEK2;d z1|fMtUFQ%L%7aK+M+%ZJ+!bv{39U)isn2MaHE|D*x@F=!XjNkN(yyXfM#2w0#fBf>aL(y6<89d!yriFBSfPqArZn-%_0MvqBG>LB4k!Nv?f{x z5r;=` z7?GhO+yDcf;Pb;^?*IPa5|Z0(DHv#G2^dIS2!pnqISeu_!2^=5D(}%kJP?&=|qcF}y6(Mj2iU=*e4DUFxY|uqjy0M}4 zD|rcu>4zbWl)KM#ELENJe-M2<*9Y||S%z8EYg>8D*vbjQ!08Ac7#VD8*^IC`zn1OvZ8o`J4`aJe0voL%@1udhzf3S1thX8R(#JUw z0`y2eUKV?(!@kJp`?Sr{xz%h>RpC}BaLclqNF5HBWQm=+*s7Tl zdAk7&6_DH1jAlvdI>Ux6A|yaV4IpVGIz@FrU7&X|Y+xGuW@43ZU`=0Crr20*jz5Sp z6!xN$SvKsQDm+QqRF7(jnJTfimE6+|YpB}^0#rn0>$O48iov9pwX&1{B_1}7YA34l zZ~o#xGxu!z`Wx=2H3HKJrbHtN<&J2PeKsU~mKh1`qR22R-KddfA{#-ii&4Wjq)q5d zT1|=S0^{@sc-14r{IYEr7>2VZwz!XkHzv$Bl|t40*mziy-XbzBlaL$QrybKl(z>#; zu|=tk=aun$9xh!bTUR9TMGYZOE&x~RmnfdBt_RS=(!|0>|s3#C!aJA4E{x# zjRCCazQS1#MW)eOpQl02>`>^1p2|jikd@|fd{rzm_;;;ey}=h_fu=DnQ8* zrcT5}#=(IFn>HoNcZ0PS1Hz$Cf#){;ca&H!)*>(`TcB1! zkam<6B@J1ixmzRs^zVI+LUhP`R)7QJ69G^PhEbJ@%pI-BFxM$P>8aOZa`o^i=UWs8 zZ_t+?U07EPoU%e+|FjO9Qa%dlD7QiWUlxWC@(Tbj6mnCM8QeANa*k_z3Ke8zo^H%ytSzNnkiK z7qqY^tr@dH!SmES*nq202p}y7BreM0;#wH2w~F7?j~m!68ho0q*+bhR@|<82^F)O41`7rfTTV%CJV@YB%!9k z>3SB1i7_BlO!}`6SxS=%M!-Zf_z@0@+Cig%2Q!W5s&x%hL*Iw1v*LT&L z)wT7PU9xILeQ@2SD;t%r|9awo1DE&mU$v0^mwU|8cqo_4#qR%>Od&Dm(pP~HpemeHmbhOU<5wi-+M#U5ML(p;H4ui(ERr*t`r3It72p8Ys|R!+WTMSW{buaX4}*wwkN=wuMN$YZ;`i7OIx00gq8_`-Nbq!S0czE2xVO3499b zhTu_`UyiwE&%NStaW%a+Sr1*15_^NZwqzOI5nZ>0ZY4!j4w^s?8f3y9%XDsqZmj53 z*wuc1_$q{LR>~(UH+Pklw3bwoXF(Ss)pF6Cm1*xenS*1-cR@{`Ed?PyH z%2%LF^@#_pxHbWCHNq}skRDXv7!OsQ7PVewLQhehOVWN#XXGvh^g0KW)84X{mIPFO zB*#G)jySaI_d9CtTF)VUt@>_Ir#eIPULP6|6Nkp6&#mgn64GZtXIN)LlcQYZUAF+F z;w8J>ugz~u)PN_fHj?`i$&M+R&8zYQKV%(&QHNORagzsQ3A;*jI2#AdHcSPKj1F0n zp08sAWcrv4T$RzlIqPfpegPSshoqKK)kZ3GVcMap?LJtDw>KXwol4k&Cx^O4lJdr7 zP}ieKyVdSCyi0W@VF`&CQ5jzWHib4L*_}7t4g*cH!w3sc%e#r(#Te^(MAjH7qG(h@ zu*QnA#>$*r8?8Y4i$dyHWeWW3;uf1NcktX1l2E`RWZmq@y7_#_vH-a-rP4H)*mcHl zXZ^dZpdI6OHXP))283Xp-UM8$nT2gB{N~pz)U8i*F4lRz@HJcK(F`#yj1)fmH49C^ zG94*=+MjK1^&_mJyhwCHA;G}(xm~bxV?zo~3k`X2+Lv-w{fk^xF+S}gs`|rRRlj>t zRbA^)y_fD^X&wBY{}4K;rJRw%U&oq-jgi7%#8=10pT<`{{YkFfp8*@M_|$b7Z2Z@1 zca!(`X8OzCJHYe_wyI{xShKa$v1YP7<5@ zv%Z@<5=iW5H2NJiu18|lAqRrx^MZ&m7{a{RK7X?8^#{mpQ9zKEI_1GhU&_Jxat_WI zpR|~?yteym4_rjsAE@1*wJidAYi;kXec&S6zOS}7Yg@eg*4lo5?Y@g>``+67v$l7< z<+kss-Fp#j-(9;WYx~Bx-1fKE?xyVvB+dGs+P4p;fq~vb+s;6L5oyf@#-GJkXQ2N* zzB&VaHNL_?zw6KEVIU{WyJ~wb0!h1TcV$Sr;VmO+S8ex2w7rvSYSMKsW!_EO>?o$M zXJfw|4Zjj!`Sc4pG<-sGWJxXJXt zYiZW6?ODH`{Ns+U{p%c-&L_p*SG)Zp2JE)l`z|8)x7E0N{DP(Pt+j8vh}^f-ZoP=y zH`i{-aQ3bYXWy#ie{b#Pi)j0%+Iz`;p>ktK?WT++M&53gxUse)LxU=RYb^1e+Kq2x zZ8y~3a}h{=ckPA@O~Y?Dn(XST3#QxabPeDI=iXks?jmw;lZWAg>)tAN!UgBvQrnsh z-!*TU7&h0oyp6TJtG4-VtnHn(cfF0Zjnv+mk)H7OwkoY*CgxFTz4bxaR2zO9YkNm+ z(?yWiwY7I-Z8zUCd2Os+dl7A4Q`?vg(a_sHM9tbYgK4;5EsMR3F_};Q(|^XCmQDW0 zhyuA5&x3X*$KOT>7~SOQ7ED6yuH}irq38PzWz(2%U1%e|FZ^BZ`*P_QT0Z6r^#osm zJS8@VAN=8Rsh71*7VSCoy|i!_cIkFBqWOn?kEE63%|4y^ z#5$Iais4EdmdWHk*KwSB=lC_->u)zvD`GI*UP(4Z8Y$#}0=Un02pLHwo$9Vsq6IiI zhf66GwWioG&WX}4bUVwyMumc!I10wj*-k2n8;2jjQD`eqimFOkl(VIC7UXo?KP!zo zqW||w^svOmuX)m^>#ZG#vn(bUQtt+#fUZX>ROiahWD-OQgUoP8P^jlkY zJAY}dWzeRU9Yw_lQ6w*9KX?b}z>uiSKb?b0hYHdn72 z9_igM(BHUr-8*{L_6=1l<@N7+=bDuumU=kem^iF-=3{aVs-hAzr~CF#RUq;Db}Ik+hQ2fW?jH5G(IK4s#R`i?(ll?%#`c?*Sx`qVSnzDr0v8zaDt!PpDrKGRUrKhV%U`;5? zm=2Oa+*Ig#IlM*05gu96I!Ts4HaJW=s~U^a*OSh2MX0V4-ePsJ^g7a6AXrqoNjgEi zi_$le&dGUMdb*l~zFb1AcmwIU&$Em%{R+~NxPd^o@`fPGa-~}=q47@1PuGf)VoBxZ z0>V78$ZL~nZ1c{E=E2K&p%x1?H)pa$H1W$iLaQ|BI_O-yBuJsVi5;4_WY7&FyL3D9 z8Imdj1OX*FXpQg{MX?aR0%Iwbqmagc5*B)@VfAi3nY1oJFHA^-nNo@|uz?j1i*per zTAWXxpW(xofeUR<2enAK62KDMYry=pw{}QpO`sG&R(CUl-pt^Jq55JmeIcFX(smjR z=kzq4&C+27><}JT0OLb+(BgK8T>>jRJ%|Z(DTwET#3ZOZ8vS0d*#(=oj^26`6npCy zj}yC$095-N7GY9B@h4h)(#drJvB0D#o#DgHlE4Hgfq)7E`H2eiokBV@!}i3niGq7? zfP;bxz@i{xODl9%P|roxpzauXs>6~ooGO$IZa^{jVBRS5MHgo%ipbDZHYw92%xxp9 zFnsS7;g?g6ca9-FY!!=-wvVG6&g?=lrX;W`$Qc9*EMs|9DKvNa;aECk&VN0wkBsd+RUl>*D*Gmif^+D^` zM*6kao{0YQE)KgJ-+QS2kn|9lC#gW)iU|zXQP)}l07e2cvY|3q_eESRiE?2 z?b+W$tO&tAMM6IXLD4RIh=8eD(|$UQP_|FLb{bDY%^1S$)wWub3P8qMb#n-{B1&{{ z5agUbQ?~AaC=%4wV(1T2t(f(?7<&zNXd06>rRPVC#UiFH3?^b#i^(8_p+uF#S(G!l z?dGtO4+m)lJBNenmcSZ}j*aY;X=K0*AYigtC7cu^k*HsKDelkp9XR|$YP$_+#q4c2 z8o-z0++;UH@xEfqiOZ_Ds*9=LSo!2>3st3FO4#NFn-#EEfV~VZqIFG^Iur*PlG1fp z43#&sa2+u5;|+MA#1Tbk10t7(beQW zP>+2ptXNSfl`B2HebxRI1A{eMh2$*`nH>#g0|6yaU;*u}D;h+A#|(u|22Zy=VNHw6 z*8w>cm2ppb)w-p2JL1uT{$nu<*f1kaELic-1jmd8fI$0* zDrZUv#jHJp#ySMsP~DI+9fN2c+p%99$C&H2g?5~$A+(Nh{}K&p%p7uS-Qg5Q3Njo7 z0GeJ6yFd5IX0zVOR*q=2akE<> z;SrmbdMqbk1?pP@$52+4-gQIf5G;(E&PK`mPj2yIqLanN z4sn1uxG#qv3+J#dEKdn*mmeU2BYIT>L1^oOf#3w(TtgQ1aUNV<0W$_%Eg;E?wb3ET zZxLOFr@*0wh%(Vr52`$%G4KqZF?EgBmP8|yo?P$T-N6v}A$$S)Zb~5fH|yQPu`*;;oM^<58gE zJk+i9iKZ78zNOu>fs>*L2}57Q`ehV@%yl^~Qyzbo3xWPJ`kRPyIhDvr9C*cY={ZmB zOp!BwQ+bOO&&goBL0!9aj6P&F7=MSYBN7-oS<(8(tR<09G4>CGZzmpPS}BYymG$L- zHxjhN@Wk2Q5;#HOXs)M2+n&DD9(6~`-W?B+Z2R~Kf;^Iu_%3~ljXbTbU$ujeS z^imuWz{tqBky1=o*y{GL{fRBq+WsI`w0}9i^86`(wnhFQWp(?UuWp->>xwxkG22LV z%5b{D>$fe^GFFP|<;F2w()vHowfRBEC!^1#u@pRNgR!s- zc5Mfz3OfTTdYK)3#w5cJ@aE8Z8^7lqO(jJtJnPSH!4XIsAS!x^n4Btpi)!iF=+A&y z1$*VH^-!{BVznL_@+0xphwTUAs}I|g@f8^U$`}5##^OpuSaet;2@xhsFEbwUi~O4+ z#4AG+&ycWYZeia(9Cp?fa3+GmnT*3ysq-S=A^a`n7`PcaHr`YLLxbhaR?(WU`PxY zn^*_6Z&lzbh1PBRK|vLSVse2f-u8UOv_TIW#acDL=hC=8 z2^zUo2LeMa_bY)I3vO2h%v)CVqSkptUYByrLX!D`>@9^?nn~2i?n%w**+;~CUylP2qCiTBhZoU|FEyc|jgRcLdn_XQ- z?*1>!%|WFv$IV!^B__*q_)52LLSpJlhu{xv$QoFywdBTHp4R&l>IC6aXk6kymktgW zi*o#y8kZoN$Ktlb{|@y!8XkD;1!;cqV5J|=0rVQ+lELV{F!QTRsLWB zEu3NdF%fd-I5Lyq8d>oYdm*iSb3wcJ$jR0tmcj5QX>B1b&oy~>AvSeDR%cG|;)A&$8sdqwD=0+;Lt z`Q{q45R|$qSp$H=9hb>h(#v(rmadiO|Dn~`A2LDYZJ>xvC|2Kx>szPuQLc=qB$g`W zO0lkBo{rTV2w?Y*3I$mEoPNv^H8yKl2yWx;1UFoA+<~}uArO11p$PO!2bWW&fLfRp zR-<{zJW)8|lnDKR6HdMpPO8F*pG>mKGsqI##b-aDk*Z`DY}914lztbBBY2j0b6Xcm zwb2*JL=sq4l*bcip(qSOLl%>5V5k5AG0%YUbV8aMGx(@{5#_MZMBj#VU4cIqw8Wr$Ne-V#bw|DzhH}ixAofzHGy; zKg;Rz+Hc@wsj^p55r^OS^>EJAt4igv4ol6yJY7VHFx@yyL`1=k(s{SYzL5T-|5K~9 zRi1`z4VMdszyM(QDz8KuBo|*;$=%FXU)o*I6D|hHxMzP&E`|nuE5N>z3VISh4BL|y zuM<+J>_xIRzN;{J1s(&~EB*c-`aIX%fKywr_MQ*^RlnbV>24#9NTYKncx2Dg?fSq@ zU^mZni8pc^L#|KjPUdDRCYIRH9D_qq_v;k9i z*7}O%zZWkGCR+kXApbE_XArBh4g)oAhC!yLhQ1PILN(eh%PHmUFSFfAS@Wx z5~7h7f4@%y4R58rbM0l@V~ttu*#(9J$is>^Ohkf8)u{FL&=8Gqw_4YStcBWgEg(;< zegZt@7+DdzH5h_SgalxuEx=qo$K9T<7anORgKau^>eLrtP1Jzl2wt)|*pUR+3T_jH z!6b@fF=tTB?UDe-6A{ay&9HDCRDyS!z62gA$lwk*rox?$I?g1-Q0m$pE~%9Vy2Q1m5Q%$pi9SWcW>x7i zxwz`ce}w4OAs~{f*^V+sHSXGwmLJhFy*&1GxlGM{AvSeAy^@8K;{nj&&b_1}7bC24 zzC43Q+!`^6L3fTGM-cIJTronl2E!YTQ&)v0h z*uI$)WXP5F9*3^evr1q?elGtTb`GYp!~$q*FAx*FhT8FTWtIGgALlQT|jqR`re{DRiI`1|0OSyL5P-Q~xyG#=TmR zY$jE%LE%J1663t_K$JRUPTdXFtx$@LV(e`JB^RCYi>zxKCFcvQhy}W9SU}0Dp{t#h z_ST_fRY|L{60dauB^&$M2(wCH_&Aana+r#1gbf?e_Z*1Q2$#VITrF%MRE#Q64=lS} zE+JD>*jf8 z)TMVB2{#=m+eI!aYXb$5xN`|_qzyS-rP|_T3fh@)DLbbm>n%NlrD53`|FJX#ePV54`4kcPqd)O)e)3no{L!aA^IBo> zwNkOCL#|Gn)-EuEUsrAvbJ>hkmes<-bdJ)>L6&0lxh&Pb0AwlYCQD@u#-S%(khcXC z*vTI$uv0*^VgYMx_cXkcN(E zGnF{R00`|G#m&JQRq&?DV}h!@+oTCkBwWGI%hT)nbTDwUTy z`KzwPI?CnG#HnDeoPGssN*cTIhs;SdZpHS&v~)b}n|;Bi<*yV7PbX{oe@hnQCXc|7 zHHa|i_HW9Mq}Ag?z3EHe^LYets)Yc)W6=Uq8K5v%vCsNsp%j}u_p2Jcp=S~nhgjuG z`gG%ZfBGVt2A6+&=E=`(~T0T+{i{i@>H-LBysCf=vQy z;VdN+G*(pHS~-3Co4XJ5&)^=0u$+GF2Z%ZS+7E8_x1W5Tx1U_^FJJu{FDv}{Z{E=G z{lx17nhBNDpZzEEhtm=N^jkm7^ME2GXi94lOS28PRPdP?eMrV{=uJOWvMYK!2|rO( zLT6GPXV=sz+eaZ5P_!hI!ZRcD`L8Gr;6$sk@kLSuShDR*@w;|kIg<{w)7^G)VrfNB zp|{dgMg{g*nCZv%J;`$PUyH&VPJ{u^>Jq|PZU&;wwD^%_52sCP!-{29F@Ws;p6K&m z#abED?$6ux`7h#U1`tzA_b!y?(kmX3%?`xd+jQmkxVxm3vg|jc9^&OE!eaD^$3lcG z&xARgI`*Wh6CBjk-B2TbL8FAN8|eZ;>&4_#Nf=^&T>jD&L?mr8`0F90MEAVrb{I-* zOZqmrpq#-^9)WQSEX4e~;*dt+l1{*r>SjgV zbaRD3W!1>WL~Rs;jH!!;z8f|!(v4#J)&KmtLW-JEU3^Pv=SbuCFTUL!e;dsryoyHY z@u6RswatK=-LZ@;C&@yMvG2?;DzT~94-u=)kPCx1E|nQ6n#-?H@1bIMu}7>}>Gp)t zFl$_fyYIsQlb{wB!iF!|4B~L8FE(sbv~KW1j?ffLz6j7e!_>(f0SvPmVEj}!a|)!n zJ+WwKs+EyUN{A4+3neW2fcTFL-sYwX{-++u2KN-BtI27h@i%xI*u+UcNtf-Z4W0PU z5-#9SiY9u4^TpERY80-=axdzq_i=Ue@yDpY$iL;lG&Em~kHyEEYzjC-zTU?lYpQT3 zpJ0fI-X7nd;^O8kI=wJ>j{}YMY(VQgT8_xmPovWX12OcX;l1D%-mWglP9FTuB6noo zUSe=?8X8ae$kD4KShFvj5k~aTtUPskhzU+odCD(blENhYsiD#+Xp$LVsDTSJK_fX2S;)xMAO{YilD0}>W{A<4>K zg-@P*E-9USPIkfjuv`!fN#79}Ng}g8?X9cq6&7ssQCX#Hj$a(uAfWs`kbup$_M+f{ z@&l?90m*W6<;lH71?3vJ?cO?yP>w5=HQF%*31@bWotG<94zf$iC!b3{C-H0G0TepU zvf8#Js*xyWq(!Wt3`jH^PAaFU4Sit1TF69MDJ4x$I)wy23n))gTv>}B0MuTlOZ16B z{?K!cza};c2eIg$r;&1EFlKc`_*wg*4sZBFqwjl?p%ReV{^3jb8)W{@?$sp>Vo zBc)F!nm1_7r3U%toQ5lo*1?c|8n#4FC`f@e)J_df9~dn@#f3iaJ9E0pEj*)7d~Z_W zK4K-7EU}*?zLXzJ>JPr~*y#JdkC)1mAEx^xKG|Hs)yXu{pRD-sQ2!_-tCB^P6phz- zEE-kTM~hE3>$qM0D0t}w&{+ntz)=@GNsk%21${~SeP9L*IgCqJt=tgfwJu;4`mGtt z;NaK4SZ2jUm#Yqb?1xHoGc(E2vFVe^W)HO|r;q4q zESVZ>A8fUg@v&oLNX*E*W)d~}X1vyE?H`*+X4;bnC#P>tT8|!U zjn8>K`&(4do|%~oU*9y}?Bu~|ig`V6mU9}Q54GB@=~(STnC={#8w+W7P9AK{&V`q~ zV=8pl*zBQ@aR1o!#LUqLTCItY@c#Lu`&;eslJ#-+e!4I^HZ?Xq-kMGBXt&0Mu3fEG zmiAzKY0`ADsk&({qz!Q+KwG&CE`ADz-|-Y$!&@W?Nl# zss8Zk`reYs~rOuF-k_Odfz;?F{Y=sQX*9t@iQOL`cZecTUfP zow=J^akL+voStYsYV9O^16NSd$z-~9oF_*6L#_7Aw(p>_*=+~Mj&HkTrrp{$JHH)eROKutPv2;;fb?+YEfBp40y!WQg-_XtfH z{TPpAgOeqTOgj|lq}L(QESpiE(=j#s!%iFahg##e+SC0lIx=x9pY8Rw+mZ(lwUY7q zwlT?mkwqM?{jJIAgP?W>Ql4#1Y)u$n;c{Q=(bo9IJ-dFowEw6r)iHhJ{^ z)_w*yNBueGct2DV2nfIef*dhURyj&sK!A%mA)n$5U|l@WYKbJEykldN6Ul)Y(c=;I za4do5BG25C%z=+%t@f7v6i$xKw8g+%FTRTX@TC_UJ1W*nW)4`@fiCnqmK>a9bTU$& zJ2WGH#s$x9AqqJr;tyriOtFW`8g%b#uOwm zOraL0rUU~eW3xPtC7VLEo3dnUdWNpI6EUGN-fS{I+d_aMXD3LPu&2?nS+UgI%#qgg zEIk2lK?C$?-#8WPbKoYkFdA{}gx{HXs3RV)6jO zQ34x*o1CC1SeTz~x2B*T(>NNReWNp!JlNWoIH-bjLZIs7?3|D5(V2;P>K;kH^AJcj z{6#Dr05RaCH8pd>iX0!Cnr{hV`xevhzRk)KDu|eiW41}-HPM=C0o=_A9U7lRKxybU zC;JwV>b|YXJ_k3Wag(?ERL9uVEb_`LN+tm$NAjHv5}L{IB*;;A8}e~5GCeeRPr(H4$q+A@qmA9iN$oTgU02 z2_bkhX-yxWY|l&|g=n_EZDZX^HbtQr$awjo?jEeI$*%b};J1&WF`$C`rgKC2_ZYx^ zu<_K?{xKvixSX6m4nkmJWPwYgamH!fgjEy-pi!g@;%Acasn*!^{IO&Ll>jr&&Y%v( z87I(6hP6mU0qlz+x`h;*QRWha_aGzGLOh4Dm2jAKN}2}lMAWqKyMLA>ZnqwppKLqP zj>}5I{L2L4)+C*SWF^DK;L=G%^lZ|lMwYG!c`hr`q&Y&wGX?2OBNLNBf{a0DNYQDd z$xZNHFeQ*SCh$^HV~e*rnY%Iwqs5?X*BIp{QB(9PMiS zrZKKt(=+o25BcC6n4g}Ixn<@kqxW#+H|cp*7~YMM7wD?3_m7=OCnnG%v$7>p$KW2w zIQJ&Y<~GqmP&X6FgQ2x#7O|8}O+o~yVo^$L8wwu-P*X(0ReS6ETPH&G_qWE5wI;$# zuCDp&5l4%8Eu7uRYfFYj-KcYKSS=cII%T$NL}av zaNqo#ilvk9JJ6l} zP-||cH4zJSf7>~Y(7h8ad~$EAJvlRR$IQ&s%z*>`vhbs<&0z?^3|Y5UjW9If7`crP zv5ojk_t6}k7U{jpD}NV7O^kHIxTq1eoTI>r+eQ*^Urb>3Dgxysc7?1EQ#kYpuAp<$ zAIdc=a+;kzFh8|9nVy;6GCw^A-_Oj?ZW(usZ_z|}@}NoGcFU}l3BJN-5#m6ZmI5@G`!-weXgR&g%kobqI(QWpAf2WN!@fs4O3hI|4{5^)Wf%s+7 zGKKDBCM%ZJJrbjHhs0wt)K0c$)ve9R7*j38MWRkga9>o_*r9;vFbbsB*3Q_8@E$UH zbmH(1N-7!UOA0~#h`@l(hydvtVXg&j<#}Rnz${|XGeLfEM4KLM zH9Z^uc`N>c*(peC8`c|R7VFFD@4r?5#1idYoW0P6R*(*33&DX#9?;|y4mYysjQUa( zv`69NRyEr83lc<&5%*bh%k=rt&NRPpvsNdQ94yf3EWbkd> z^fsI|zB!qH_w^%^klq|cfD1*`p~U!P1ea%{MXHCYHYbbq&q78CIf8+ATaG(oFT@{k1?$eG3mlHr-^UyqKLLmW zaNLG;Tq-C`?##s!vpX>6JJBpl(~}$op-pKi5s5Wrd7ZdHrb6^M}YH z2-9TR4b$_jIfE!0TkBiLG{x0y=4cqo43N99cbTsrOj=`@Pv(-=1f2E*4rp;}qFlCM z;60zlHkW=ph>8UNZZ10x>5gI0u)M!TX`9KMG+|9Im>6QGhq0RkU6Hp9aYu2rdus-h znn1`nY;!Zma+JoWNMaDd(b?A2afZY}5jk7?&^!Z>0pFgVo<>(MKo8?yYj&D|6y5vd|rt#n%#RFvMzla(_G1!H135+#&tYf+2rx*Hl}B49+CV1%xA4!JHcuvx z%FM!En>x7_;hQ08@2BV)Lb9K*}!ipBaICJK-_UQt`>V%lbY zSj0F>hftA?w7c1?^q9@(jhlm7iYA?!m!pvmEI?aF_THgo3V}C=pVn3w&GD*Yh;czI zsq#Q;>cGu6kIT$ug2yNhk0kGkeKDFD9@%9wRkAOh0XrImf9u7+4 zwr^Wle)~RCc>8W$^nteWgqX3!@W{S>9kBBfi|(MzSn`UB*A&zpGe=paoxAlRSlA4) z+mZ)dY|vi>u`15DErh}JIi_UYMqymtrr zv}NWPb6?tYkw!xqUVwT6bDb%rmK3MaVpP$>tqRd<1tOXWvMO?KG{rPCBG>6B|C!!f z$Gg={J7Lw+v>oci&4{4f19lHenBKn@6-J%+tYCQu8l+j?>kNOcD+wt1}ZI&L*!?PnJ z<`ppmHW@ajxG^w-Rn~?4eL>sEEf{3%#nc?@+o{41_;2@fuW@#3mvukcqW9!j7+y*o+PHJMeGhYUq)TAj{%oT@>xeo&)J`fyl z(qtqPCwb!-<2U`|02ns~Nxej!2Q{TL_$L@UElO&Tf`LE`NVZ&IJf#M#6A|DgW`+vq z2vr#d^qzrfDH#}Mceqjr=mZ}NzRH7VT?%H3*{e3A2=>;Z^rMrrn9AdaCgzVZdq=%> zh}5Ry}^Cs7v1|T}zRV)oH889huz$U2USR<_?{d-pe)H$r2=_jW!D+ zP*}j#MBpwdI#b)Ni3mns(ne|sU5n(f*XMy^`jm&Jh)Y43xS- z3%SLx&sWa0YmPE6o;xqDy1Xv_&leQ|Jrzcl9b%yi{5j z{2^Z+W_e(`dwdV34Itjr((=k3CS--m7U41nTYJYQ+xH#Nia-R;uwd8(z2kzcb%Np; zao>q>LPH?GlnhZzSAYti#&zcNbCX(8kLzK_;|Q7B+26uI4blqlgCkxQV7J(6J;6m7 z-_R!3uVsoH7|T< z^57v>In9oe;VsvR@PdlUK<OeEuoqXnWSvz%d~ z)fEJ11Hh1=GmY*vfj=^->Am73%-e%kFquW%nXPz|_!9_b)&w2WK(T?i^fO}_LxOs6 zzL5P8rZ9M<>yt;B>kXfvqy=1p4>yKvCU#(EUJ4tw$K4@yFgs$^A&QCHjNzHs=X2B9 z0)HTYFe{R6FOG@xZw;NVZRLGUK6jOQO|ifkfmIZV1K6^Y@hPjS{TSQWxFqKA$5dS3 zgBv9q0GqJUQ4#mF6)_Dk*@oi9s~ThX`_WZRDr{PobFBu{qP7fykW%I(Qi~+EG`W9I#GZOk>%HFoKRm5t%8gdjTeoF~!eNg0R4> znjXiJ5}Gae*4>6jnGr=NEg@M9@tfDURbo-ixcNk1 z#HGmrSb}IXS?80VxM+S0=$vG1#}Bm#g0WSZ17nj!WElr`D20jfb&7nOmpGWk^&#@v zl3d3G?!?$hvfG?mGet%yFl8>-V*ljatSRjXdPg(Gl%-W_K-5E##&QAxq%+}a<7mX5 zadREPtGI*U8Nit?d5rcO9=S#4|J2Ec|3CKL1WvA^+8^)kSu)vR!Wtkzvrk|$x!rxc z`}Qyi*-0QILpHWR&+WTp24<$m>6t7nGC@>CRyS}1R8&yZ$Wuf_i3^Gw;`_PqT#)C( zr|fBp>r>AFnabw1><M?RZ73t(-^A#G*i=q7W!3TNOzX zQYuaB02ulWDkpR(ajTFkL~e`;DaIfw&+pJuZd4jPraBT`L(v7>b4lt@K`JEW7ow2H z01$qW$(^V@;TpxM9?%tGQmG7^D>?9zs8nF47?^#)gkCTidQ(7>NOYnGGEA9Ml9lM} z4x1JwI|QK?Ii}$O`BY_SbV5-jBH6%ABnwkj*`{JC3Wr}1S<#7-RztGrqg6yTQqWr| zOY#Jwr4Z1EG3VQa4rV@Ke~;9q=`-fC&?EH|mnTnJgyoSA4D@tFBdJQ2 z^UJC#sTB$uVW3E3AyuIPD-o)O(+`+Fs6~KuXw~7V0FMm zg$jjsMX*VXqbril3mQrGGEloIKAnUlK&fhw;)FXUvC1HtiE+`b`_-zUDC|Z#wPe3D z^(9wICLFT1w)jFrt{|{vR}Fq8WIYu!UMAw0Ej<4wT-iBgRc+aFK)SD@{los*BdBT} zOnvn88{EnX?J<_i#ic@HMwEs3T0-*CF;Nnc$K`01VGR}DhM(l~mrfz~(v@!~9QFnPHENNYNN9b8bqBry>P|Jp?*}#u6N4gW@ z&nt|tlQgt4>Xx-OPLg^=b%B;+U0JRLLTHkM9vq%yi7xCQIu+<+yAm<}D0U>U5JA~3 zLArJY-i{_s`cmo(T8p|KEwv2)B&ugdXQrEwMtRRKmkrvWjHFV zZ&+y*RGLh5IQbf4s}~10w!~(O-6J6}hN}!1LG1CL7J3`@4T(cZpET)-dH{^J9ne53uoG9xQ>sBCC6{%`0Iw+93YldHI{@WDzi%7ngUkk@ zNsgOBgTSx0*Fb@T!ciD718OyFl8H$u_QZqefI-CWWtsLRgen7dMfYpRBGtC3WSOB9 z;NE2R68jw(Ou2nZ4GSs&c%mVa!&2syDh zAQd5^P&SE1)dDd^abn>pS0T2nE6I`Q^<+0D7x0Cq6&h3--9~45Nrg#BB$5i8UmA3W zsEWWM^pTh+f`5f|Vcd&89W$*TME>*N{An$MO`GwP9i8 zPi+Yy6Uw8fA{B%Nf=*^ZYYIsXVxwR^hz5$W zSy`BcCa;2q6&+X^g}MtD0}$DyoH8F+g{$OfcWhLv&r-Sm(E>cO0S6d~bxd-k*hxV@ z!feiS)xlQ)ry*0V6N|?%@}cRJQySk1*%%FnrAcxlnWK`T8EOf+M1)JLSj<$CXk0*B zVRcESnpnxCDFKKILFUOqqOur#G85rUvLvk9V5XT&bf7QG$@4uJZvch#DI_|GIu6{q z=&kxGq!Lg-;G6*q)vXp8;(XMCTQg3k^M;|#Vd6@B9JYtXB^MGSSVC@xoI$`*p-tQr z$OVEw4>Y}mg-9dpjgnoH1EfbeZY6e*owMD90q$<9V=pv`p^a<6KrwCv&dV%|v+ymy< z6_5iQALw|h?_&tNRy9PmSFTuMX!Op#`VS#(vz}A`jan z+oal>gpc{Osp;*cjWWz$Bx)0kl!!u)1O!AVBba&M28nf=))6&glIjpar&_C2VXW$) zX!Ite4IztlU+6}Jb%n5N#(2*G~wuHFI~Ul2A}hCWJF#oCP0(b0ebqDx9!JT|O}J@-tX=Jq!}o^Z~lKhcD}a zg(nby2!ffossM}xopcaFYt;oZVDyw3gS=2i&aZ$MU>#I32&sr|W9+$rP+@Q?YEFAa z-cin`&n9kzxNiugO>EtWMro%hP%ry@MTD{II74*yP2QqVAPP z+bKe+0Psc<4>}QVVx)?dzN2u0My98V`4xE1wTTy;! zFXGORlX{>Xa&RAtl6-)=;=C0>7ZGPGK-EPd8aQ4X_^D8W*#ngx&Pm-v8^6NXfHZPa zn&oMSnJ$j@gWk%8l~iR~WvM1rE#tmn_`z#_V$#DEB?X0Q zrCc_M_A?xroFo;MTob+p-0Esb33w3e6Nyw9wjObEjuXLRl3zo_U29{I=oBdQ7_p)cYD-||g`?i6Hl1J?jnhO} zyu~V_@u#oqd0Vv?)HkTKYRX!It_Bbb3MdgcGJ6;TvN{Aqa|egxXqzNV{EDr2yo74) z2R`q|eIem6if*Uz6kK!|UJ*xDg9xEBCm$)Qg-2~ut#Ris4#r;`oR#K=wa&}xC=DO9qz+`o(Y0B8E%M#l_EH19FZDy`bS~t zAjrCi05ybiORO#0y+m5MZ8-XP29^podI8O}skELgs6daBM#LpBJD{S(p8pzoTGACP z^$ys_5l<_Ym8!Z3p=MAVtR$t1u-K8QP*W^914FQ{6ygvp>J%{-Wv<7OE-5DU;Itep z2Ro{|57$f(071`{0(3~BxfJe%!l7Dt>!I_=QA=Gm&=mxWx<9;ZBp?AW1Qr&Gt|D$E z1`)zR(h_ha;*%w{l8Tim-DvX)_GOAOTAx9SRp0I$$WYb(^qI39&>R;Era) zd8w<&IvHt#L(O3taWaTb?ch!y+7XloPRlsvJBW=WwgeUD5W}G$d5Ta)na&O<8_WxrmaInJ)N1Sbw8L{DJujrNP#d+=iAMMvq1%gd9XG zHQoK9Oi#lrU}&U?j~NoHSU4=QV_AjHnn*EJU_HRyQ0;iPMF5F{&@PFYsF$c?q6Ldh z`hKy}5-w~Khpfo@O{gcSd#H3ST2@oRU@S#HZyqGEO9IeGvP~w%Hh{utn#d4GLw%`W zeAM7p1h*%|bFh(24>8$rYHxf1G<{^HgOw4{s3I4UR1wrmLC50^sW&M3sNi5)AjKyX(8>&6QU#LP2Rk;A8pRb2#)VBJNV||+<%{fXMAO<4 zE*v4(RK1Q$)sIpG%a+tq5Qo{j1MW_+1w?4Yx*$=5#8N>?i9T`1$f){YtCw!k&m@{t z#l*%3b%~niB2v;l!XWIT2#XhO{8$o1tWXw9WR~oLpco{5@EK6MUpMyZz|r1q<%QDf zby(_Bx4{l=wAA602Nt9}$H}D&1-Df294nn!2$2C>Avj}-qa6#<9jT72kjjJ~lB1Hx z2pLFSFgV%|&WNx?TD-F=n~j%A7+B6%9G+`eXio$;>8Lvo5ztL0G(mviju5(*OmTwH z<*3UPt`F0MU3tB(ln~{u#e{-Hj2u;VJ1(`81evxm)HQB2#^NToa5q6r2nh&8Nm?mE zQAb->q{K%zDB)iaOrQ3Cc2qiH)J<~(Tm;xOnG!1i=BY5~L%&0f0761{s*(wiNQ?;r zH6%$upjDM#T1^QCb$kclsj{iWpgL0Y48W-(C^hBmA$v?1DZ6xCh*nQ5ViGVcyP@1w z<)CxW69H&$=`tL!L#=q1J(<+5nFz0}1o#T}mP8-OqD83+bkJ>^h!9hSg1vv1>`Ebbt4EB5IY*5b#-5Nu8XG((7BMQdxdl)>cy<$7r zqxyIOwX=s5+dXpNd-(E37PjEx1PhoSutVWdOFD>8;Ul&F=@uR&)i9r{KBEtaWLTqS&P_GpCWQ&WB6*Z%Sc;aX!)?AE|%UU;; zUpaJ^91U0lHGhJZN4 z2#!{iu7kIt!TJ$S23*;4IjNKbJV2!KTp&^WT&WS~jeefY;r;*_D%iMjMMDA<|O+<*G3N;~#D@_JrP!PD@2g#?9u1z!spwoRLFhSuy zk zgsL3aM|h$O4y0?7!h@Po0iJOx;2HEvJG*Lk@?zS)!L?0v6Yz+)fPAso&#wGt?>ndU zygQD?B>!)B{r%cI|M&vEFL}B1d-0dv{w{j|=g059>$lI`ek8sB=ABPI^zaqG`6Ipm z^fk9`eKKA89=%6!3HG8IGF9WJ+B@NPO1@o464ZP;k^oo0}lH{tk z-fG%!D_b=_x=_N2MJk;A1EX|`6-p2lE*IhI{Z~zYTw8y>85=JXf5d}GincZflufK} ztRD)FI!d-j+?Rtm+y>R(N&N4mE4reRT0y839ge;l7y^M#-;Tm?$el>RD1&j9TbE*Y zLu}UwYdY!$yd8vMoZH0=`iy-d$bPTuvq|!PGM|%O=;&JRI{BoyCGWz)1uhOg9RhxucMJ*V zgNg~>o;4)+D3R9x*uoNufsStM%V7Z^YO8I5$v9RXD9%Ar6L4+BEQ9ryXTu?GjDUzk z)j?BGT{BOz0D097FA$!%jU=W@kqGVFKEM)h$W+ObkkECZUkD6X;qvgVi2;H%i%Z(6 z-$GGa817M-)Xh?9E`%2Z1yNE=VOdO>zY`?jdhI8XpH4H9#t;o4 zOLKKuoz%2X+A#vaQjm`%S!4ygkw%ZuWBak6MZ_J?D`iizo;E{-<*m?AlSUdCC;4~a z4yFhWCF6$5NoZGuK8p4V`WIZMpwJG$NlxszKzs`#n7TD)u41(`E=*oY0*iZmLJ2by zXYVm`UQr#0#wmRpm(#&qpqH+99D+6hvJc%~PNXg{A`rGtLTD#SB=+rCD5_g5cEePBq&y(xX|;d_+xxU>(LpDw=~F{ezJml$e)I<2cLy3s z3!G3uO^n1?F=?$@P=O+@RNg68;Es-kN^XP!3f+B8<`#Ixi5ehP1@Sc>I+GYR(3g-O+HYMl zzB)3nU=%mWRu&i?nU0j`P1$ciPZ*P_yTpT9NMjqciX;s8Nc*g}g$5<P_Sns?Cq7=4Dmw2QXM(7LHUz7`!9|_ zsKHvr{f_<=ynK=yq7r}vU~v_F`>OOWfRmzL8m?iO%Z@Vp9&eyX3#~Lz93Lm^E@Q!q z2VJE`06{wL!7EGzRcz1+Y7FI7H6UoB$D)Y@hLYS$)KZo!yHsQo_!0~aU4Td5!-Hmv zzBokZCFr{)ONEY!CJpfV%F%(L1@geK;uo>l2;JKzGCLxq5|G6hyvq1(@5CxZsE#p# z^)mDrf)L~8RdIo%;Bdqi4b=E7v`vJnBX>`p_0MqPSN=4(5h+sO7R0dG*mRD zg4;eozQ6#{)i6DD33d^iNP}0gby-yqVf;{eNPNpjGnuH^03a7zL2iH#Jy;|9aaNM_ z`NaWyD4cXlN&hY2fT%;ur4S?7VS+AGd^HpFP@H@cwF$6PsKALHsL2_QH&H%t*?qV} zZrcicbZRp!1xQQgxhu>58oBpI;cFJIPp+gZK00ywi>?F27N}g%XbcI5Xl_CHT**Sk zM){?cz`shE0gJ0bI0-BY$TV0OxCT5wCK6e4NF_UetOb`4OA?{+hx;k7@=}Il>ex<$ zDyAanFRovLyyq;WYd3}~q^=UJ5%Xh%lpX2TLvZj|oO^8?l@b+(Oifz2@r0tMt>5!U zl8Y9}ErIzxGm;>|{zzxCr>A{}45ar?tb+1Os==(SB2vTlj^cK4KE)=D6GS|*KLB2v zHlL}72ub8_TA6oemY8loHGV7a~!Bn`tz8EGS9m`2vf z8F|Ap3MnI%N~Keol$pw=a;bdEN)^&ZI+aeRGifuOP3O}2w3RMoj7%z%&SWxXCY#A+ z@);{rFby+hrp=6Lnprbv=1t2iWQ}Ypo6cskW;UD6W%F4pTgVx?R4$#%nF+_i1As3z=W9MZZ9UYgWpJ^QENs7M* zK3)VTF$FkOOp^ZKIZ)h~YFPw7Nd@7Vs4R+0(jPn%rJ?eYlmO2}X{OTlsnmyNQ<4h8 zQ>&~h>=+qVoU!<7t3nV=4zcXe1!}NpCO#ft4hCy1SY?=^<2*u=c5G-H0Oyrp^MkT< zxFJ332tEp=$3svQ>PgxY!|{VYPY}_)fBW5Hs&(uT@i+MM(!Rg#+qZ9;^dIr^NiWA{ z;hp*mPxlGQG4d~Imj2c^6e#AD*cVQUQTX3gx@S&E?iKkIwOJBJK6>Vezp=evT-2k( zy<>$T{i+WyR^`NEH*Ou1S?KS7O&hyD^ud2z?3}=ltoNznU%vil&+mH~%{XyM5RI4T z|Ka2Bm*cS$Vs0`Rw&!J%d2r}Qt)(A5d(K(%@}WubYKgzG9&%JEZ;Ush@5ZLfm?hW$ z;>4HkmGAqmKUBOtbF^sxONR>F=sH`a{D5lZi{C-OpZERaq}B%1m7c%FT4kD8jJ$E_ z8B^&|7zI#_i1@qstA+yaV}GXJ*egQCpN80qmYArs0sp>z4Pz9%7pcbfNtkk+pE{hv zlk|t4*ZQ#*Sr1j4_kK|{*;pc?lNf6}OXv^PMAe48RN+K05hx_`pg)>8D5y9p(K3BT zZ04-lhoIkD=NuM`9e%`-N5x`C&pqbYOuQHu*Vp6=F6gxR~%BiQ(`{^R!f9}s2 zZR5(CKQ3hQfHTJ@IjcPuTQELY59wG)BRT#_jSq^3q+^+AQ0O^+h5#rADg_$o8~<%6@s+{oFr2X)mt_N5Ppbw|RsCn)vvkIP9- zlc)J*s#xr$U1PD=O8WWt>s8Sdemye$ec!&n50D4XYd<9*i1!bOzw*yq_0ILY9|nefzF|NjR7jt*Fe)`%v<}eSi6}00CHdUJSr-9+5-+ zL4tTgQ&V$u!?fm>mg#e5%$s@4tRrS0cF0kOHnuh#cG%(5kBT4NG&gZf!?DxmC614u zcvQ0CtmgK_f|(t0qal?@Cmu|Er17IIe@*!1Ia@C;e){J(-g?`eZ+Y;OkA3dRuYUa-&%N-AeX+(lhs{r!`OdQ! ztvT=V8*fA8ryl#4Gkebbm1{0? zy<6{m5Q(4s`p;hY#fy!z=d4`gdSkn9eE9J%Jn{V>zWDpsz5Wevdh;!J-*^9q9(eGf z$G-5ylV5xKJ3spI>bpPx?XN!loi*#$Uv$Y8#W&q{`zIgy%oAVy>eqfa=cuDE+xn+J zzr1g3_P}eN``ICfo;X;ZcYN`>*M9sHpL_hTM;(2_iL1_CxBlWww_fqu>p%VE_rCv= z7k~f9;mYkJqwl!u>-!cKPw!ax;ZJ<#iLZUp{WT8?XMp0oR*L&iRu zJ>kf)=Npb`i8n56G#jTi#HTe+n=_;P(8H!}Zb>xGn=!qirD0k_0-XJ<#-@gu&GAEy zZ0c;7Gp)I)wPnk+#Iz%4cQ-C?SkMq}oYQ>htj@;cPn+GmHaXCEq&=>-O_l&UB}Ek@}{>nEo?e_TH=to)5kuM z8ksfrgJWkkjqPh1d!*^qS?~VpjDI#-Z@jf3KYjPsBgP(W8GCF|wsA(Y)v~H(R`bZr z6B;gUykz>=>*mgzan$rxGsbRi{^KBH~(d+&SS2k!sy10Q?r@vk(`oOR^!o#(8)@IxQ|*0=AQcFeISpZ4Te z8Rf%^+U|{;w-8eGIG%r1W#@I*-+cc^KCx%-Gv~Z!_?jzDzNV=Go$ocq z7j}%@aC}4R(0PrgPCudPtfm!>hnzX~k>*nyPi<^#F=xid?%185e$Cf|$LyZ= zx_9}bGsnJi^W!%zy#2d3ocq4d-cXo!W@Dn~^ckyWv^5=m!=B5$l`|K%&RLQ;;jaHW zW9AZJ9Ba(7 zo5$Yuy6?}N-7uqhWY#5T%xXj{n%i1V*f6VcTf_X>GnyM_8$E}-{w<{1#|}e}JQ3B| zIXbvw*dBs~J(+jdNqOo}Zb9m-wlqHme=Y7rB`qu|W83HjCRTLzgTy^jH3>tuDtTG3 z_REBggV0dP*9%7R;Q**Yh*T3n$CDI)gSC#=JmEsEB~mZFou|PDO@W zMq6V?!#y7>Epe=i60Kqly$mj`e0e~p6>Jau$H09C?rOMCBAj@VpANLfi1C@*&>Bm_ zeG`6Mp>Bi`%gp{Ow@N>PVp|ah9#lMIJ6dBm-HfG5J>=(y^SVf{OC$-qHE1BGC71H{ zP5_J34FeXnm0@4g9m2l6)EeWpkzn070jwY|U=h>6e!X7j_gBN(ISH(r0BZ(U60Tks zEm*X1vUTR4? z1J=a{2P*QzV8b(iI^-o9!(*Yty6(bOR)z>zI^J%o0qaIp zFNUSlSba>RII$J5xSu)i?W#@epDL_R0T!!9IPX1xbs+e41n`z&u)F5~VYNqKSu z^U?2(a80<6&1j9C2lwr8NoBAW?i#rI96bg81qhGMU7C|eBOKa@*uPC{jhz9P>BN0Y^!IYOcc7mN zaCyx?7CZvMqvtuq@%sG``WaEd^AoM#Iq=_+p7HGk#1l`!Px~F?$J__60Hu(4j+!OM zjXc{C&YGfcT-F*(BJ6y`Lr)=|)8>V+^?c_b4a4Jnlwmo-xg8w-d(>5^kPttHc&4$B zqMmxapV8_~ux>_L;sxmGc_M5R`JauXy$0>za-T;W*NxJ~?hNz(rAMx5e*|p7OU;(_ z;YaWvhooPIOZ*$BWA}v1C5>VCE~INmy2rq;5l%<>HRj`X0Y1$Q!f&2`M;#Kj3&C}H ziM!t#(muvJ%EPdp><($gWUwBX1lB32S6Ev8dOfPadJ6AcA9fdm@6&mQ3}EZJB&sVt z)TU=NShd=?5wHkn7`D#iTnM;44=C^R6TlLM;m=m2Cw{3Gtms-XS-q|VES*=~0YBjm zJ*~hq#=)u7>$W=edJp0V$LJwgFV<3-7S>i#7BPXKl$5>B|Pr;GAkL_6uZ z#tHfH?mZz6P@F!FkKhw7;9b@`t&yndbMjjfs zy@$&+ZV2vb_=7c0`R@f$pt;-)KgqwGj^*E&O7}seW4Y!p2;+W4mb!fU#qZ%BjKzBK z&bY*G^AX|tGa0NQ4c1r2CQX(b+}fE&G74VoujCYdo@_k;GOZ6`+k4cD!pD^PmUkQD^L&S zk*N;#+W4YYuh@IX!@4p8t6txaAwNGYHDGNAEFD*02S3wp&POiwSFZ-E74Omh`VjK! zeO<5b^?D_1)aw&~Me8Jwg)WOcrjoV_IWNBjKmQe;vY?MZ)L9--+<$ zk?=F&|IOUi*adL!flD%@Ud~zY8we-a@@BY1)Ajf$A4Pos45TA|>Y1ZkW1VpO;gSsb zHMlfq&w?ARH}O&b`zX2IZiich|NC%B=GDuibXOppwk`GWli^>6@OhDNqAz+n;?Mqy z{-^a<4=1>L5l;2h!zuku2v@cjShPbLcGJDpbN11QA6a9wk)GFxrx366Ep7LO@+IR+ zQiI=(cn&96y_%nC#R8;fJRQ>FDg90GGe5`fBBbZ}cApkc>3^m9xt`}EJ@bLF_f^+t zF8mCa<>ake{f$Wa)mnO{MSVz5ybe7*k@P#^=XOq$Nn$r>^@*mxNlV|N(yvN}eXP^+ z+rXD{oquq=zRuP?)0hkWPD=-7F9=P~2>U!h%u*9@;2X;!H8 zPa%%$sn`Fz27^P!O!%B>p-q(qXw(D2COe4 zFOM_jsRwIFgEdwI*0%vGpsj#aufO!Zzo`bS=KxFRPo~;m_tk*)n@Ah$@pmt3ZF~Ul zjLVD@e*r9=SFBgBB^rJ`TBBYKr%V2WVe9i1_Td{<6f;^&(wgGLVCSkQ*Gn3 zHDH~sVAZOZUPr3ekk-cMHCVFdvDiw$B3!KnORpor()<2b8Z6Gc0kDW)W4~UPdaz=s zBj;h)SFpIA_2l^$t&O$j(A9v&JQ2a0Dy&*_=vKhub(LV%!!Nz>=W1=FeDvHKsaHK% zI<6))SlnL^1D1|ok4Ne$OO&|UruCOq1J(fc>4;u2Y<(Q{IucIk_3Ewx>uFW5TCjBb zL$Gw3(^~`9vw)@3)nCBR^Pk&CZWQmwG*}dW?^&%el0$U9djb6G5l-v=>2T*q;yd7f z?#%Ig{6d7^jBr}_yWp;i8SO381Tmtelpx=+hjfV zz$HHI&2R~xo}SX3hw!D5@KfPG9pU8u_6#Xc==o9ze;DCik$g$`M-jd#5>9eW9N{C8 zaN_rViE&_B`11uJA4cP#KX*SA^6wn}OQh$uaS!4dPbmH=Ej@?-7U`MSem;_3FOTu! zPe{-6;-yIX){lkw!*WHeBh(`%wRoyeH~gHAdEXG=%a883Nlyb)m;86Eqo*4~~+Lp-ABO&_oJe+y}ur{0P<9%D+|AMxw_ z%$(5-!J|aJihvKSEtdM&vz-KO-H{8V^633(uQU z{=Nh5YWR7tp&Nc0D-I9#DpWd_Az0Rk!X3%A#?C_id*MC;SB#G6+UFidNcf>-iVK_4snCL`Z`K}ehAN=|3pYD8Sf~b z%GT-jNh;Gt#Zdm9%6{Lot3o>4^@VEuiIzu2==*DrZwcq>gJ>_$H%j+u_?h;QpC5ub z_n*QxJ@s&im((VD9!FlLZRD@Vm&G(#&jJ?1VD~$K#d0>m()kqf^CS8i`T2RV2CN?e z7U2#*Q*Gl*HDEmlSiEKsys5Ua747A=vHMslr0oRj3cK1*Ve~}%zO4oT!Fgo*nje z_oqT!rnoWq^)aTfGmxI=#odVKex|rRnxDfvke=7rM-i{%-`r1!`I)xok)Gx6q!v%` zEzQsMT7~qC_0jZ8ke=akx!bpf>!PlgyKqrB&v+fazf02m-@&~A<#!t)`HFzyG2 zGlVeWx9M4ocjj00d3HX+83yO0^gRe?`onrS3hzfa*PY>7&InSZ+cAliO+ZwT-wWd0q*5+mm)pM zT%2wQej9#z{(yJp<+gq%90!VXBmS*xLjEhNYwg$4a{ro3q>lF`ltD5RJs&8BZR>ut zy1a`c{5eolD4N#9q!iB@>-BuD)~z0 z?f#7XooF}5b2#&WKSX>I@t=Zw3fx|}YvD4_7Ui`#Jj!cvc$C+=X_=HKIGlJ&n)5vf zZ-e`>0ZB_Z-dFKQAfD>M;a92fy$D~9_bb4Np9YuxF8qZ1%nM$$T+RW~b<>>Y@S6~x zg`fCG3QvMY5D(h}mv~K`7kmI=%+w2sHCSym zU_Aj?vj~WK>cO%!SVj$4-;BVjN9S}{t82h|9q^j{e-U!qt4FIB!-}tzopdErPF5Oi#`ip zKg!P#e!okFUkjILxSlTw|0aafJbDM}bp_o2hT8+zhikxH1~ABCM`i-4hdM@W5=Z5r?$LBo=qkY%^hRbWI zF2^%paXjK_?V+a??>x4Qi+@F3Xw4GOe#m;?LOuE6b&UMfMtw|9Qi&P>o7aQhpH%m$ zo?j)e8iT3GdV1R#pT|%p(Xh{4`Tu1OAf<0G>^FZ;`J7 zZ=k%fi=U{5S#Ry{)zaP%n55U__05NWG5owfMb`xmkFEf_Bnt{H= z|5y+Fgb_nWQgD2`%2jN)K+@tATRUc zh(M1Wx7uJrV49o4OlM$7GVvKg$}Fb!cYdH z{&Kbc8qr{J-LptfG?HQIEYwHmBjG+3N>fA;8foVdRRtPzw={l&2LHnMJ- z+CcSsNUPW5HDKKaSfr_wocQ;jZydjON9*1mgpkz&m5>9K;MuZ!Y@Fe^vBHWCGQ~Ez`sI8Ow4Ekym@$HBohI6wT7 zwH8n58=ng6&$wbDJW+9%-C4ZNezKH_xOr*Q6rPJ!aNb&7&Z$BF&yvP{4{V3Y@A-t5s! zBt3a6+RpvZ*B6f0yl;f>)IZn4ulFs5{U>1XINcIS|7-ZU{}{f%HH69hJ;A9p9|Zi% zLKuI*JL^#AYH;}ehj|D)51H7d{9n}a>$=u^biTZFPn$NM(8M7QbD&#B(>&1!tVAAasXO8Yw0k?}oh$N9LH zmSqKY8IQh*{Feg`hqHS#!fCH#;PTd34(OYmEv z-k0KiE#8SoUWOmk$lw$mv{(zbRDnxbU2SFZWH{} zFZ_HI`Iv5RMI66V{EhJI^LP)^Qak8*TLjK~BK}8_mihl^+WRAEbvpM@q|C>)w2XhO z%Z;8*Y_g@THK*fvrgOZ0uzPinJOlDLTpB-4zXpDib&r5cIK$x#=bLC7jUPQ%p-iR& zBicK~z2mAd?m896eg6jdxi1<2xUX+R9M4{#q+@s&IK6>w(sBWmUa|k+^ds{-~GnjKWt(BkTCr z)QO`g#!-5wwR5V^`I97M{HA1UCrPVE6Te#T;kiL+*40ZGiCZ7>N4-3+D4f>psXiA@ zl91;lCEGAbT0NThih2*vXG*iFUcyM+=7>M)Wm-VtTcVM5{KU`Hdzg+;8kQaFrRTUy z_+}^}xt4db*DEGTz;u(66(>onNB8KS z8t?l+Cz%#g^sJJU8KOyv=bih5P%dL0nA7Pz-We+JD_BQauKm@ItNEAMPa=NgVLKs) zc`oY0YY2ytOJ(2m!>}%Q3;cF;62QgntRvUaelwXt1ardVik`|7OVdr^7uNF7eoUJn4}B z1@)x0LJvO${;wgN$4J-pSkG4TkW`=Oqw6Gkk)C-SN~fpie$#ajY`;orb)ChNsQ+;k zh({0C$4@`6$M!XpzSeylER#g#h!@@J{RmDMl|y2_+^0yw?LZl~;z#|-^2v<|r~dvD ze$>t{^-39b{WclyB8>Xw9)zC?m&5y2_{9is*TO%9cUn)A2q(FQ)8CKxGx2)~aND%- z58^$I--8Gzm(za>?^Ny$2&ehT;orl1BYtN@;QR<-l-|aVbWW6}gr9?-i=T%dx4CIh z+A`6dmc%y>VxAKYE`dvZbPs+6YcBj$R}QB(Q1~-f%D!hi+dJSVxsCgn%3}S~y?}8z z{QNu&KjSNhkxTgY=#N4i)$xzwb-btXqi28V(+^PgESWXd5}{v7&CmG$bEGG_K~I|& zPyQvEKS2R_euebRv#-|TDXvHJQyxWDA z+6kA&{~EZ|4!%$KkC+^UBQGL+72MtEXX+OpKN>IkZNsk@zdro9ZY^(=>(>vEkLvMz z04F#UpM-lKT*4!rE?f!!TVP{AbM|hyR8O`!Sb)x^{Es1=#_1Wjgl`<5QSl$YTK4b5 zZ&3T^NJsSGZiG|5vs&c1-GO+T>-WH=HoPA$jm1wR=@%kBmD`PY!rN=$QhOW#C6~+l zEa0CG|IgqeOYE0$sU1;xT?!ueQ}Z>lpI%h;y9||~{%8Ms_}k!rwIBW3eC>l56Bhdt zAxqtdzE866iARDo>YFRL(m&+nD01(;_Y&a}8Z+czf<-a>fsmIDO&aK@^AI+69YzT_ zId;7|UldO?G&VI)Ynk3MLwsNZpVv4XSEL^$zO6CuczjSJ{Djm=;VZqJj4y1Qo;V}X zhWGhro|R}{fX`1P5-E7o6i-hkkuc@kl>cTExkR2*TZsa{{{Qa(OFhteb{92gQ6jPU zoFz+_Enl&66};#EztqJ4>9(xa3S1-J&rZbR^wL0o8WT;;D9V zlL%4K#o=;!q0&yYn=btLS|mQj zIXdE7Gma9_H$uR!;v1LZgJ+_%j?mhG=p$!Po&oyYr*l*bz5BzScXV&pkWF8mEz(zxJ3Br3 zeacE_XL$&J*5I4l_-^PheL{PJbQ{q+yT9*h4`0)+@Ox(`zEYj`3V9FTAG92|l(Xkv zHAzYMuT91x{zfmFmP`5hj7#5CbTat3qIbe;Cu&;w(bCS&<@D8N z&t2PB8Mz2O?hSXXX-{rid;ndWvt7e<&3wr!WId~tIk7yI^0(N-YX(O$=>sUxu+v`N z&6Uz6t7K;i>EwPCh)=@r|9EE8zGqu@-Y&VOZJNeO{S&ots%W~x3y>3t>V`gyCwf3aZvCFqiXfGi?`~jA48EeCd=G)y?ZGcXo>Jno!r#*I+w4 z@zKN1&J|v1bQ`KKJiYiLXF3I3$aqExAC=0TdYVFB5iLJHORY=UPTtC9T+7OPUOIEy zuIj?VDL(AMl`+!=%PnOxwr!WJRNH)+Yskh2A+N$mXgWK^ zD++LPIirxZQL|LW#phV(zna7ei;|T~6@1G`7i=$+J@fpoD3#e@@7UrwU7OmIOBZ8& zMKq{6`lhqdeI(NXg_F(-B*B+A#V1>JfLi{p zl~g%oLPAu=X^s$y=@Rba<&!*0Oy}do%6i@R{5N z2MLe9h?~O~b~CPnPur&ajyJ};L|>KcetXdIu)bYTc1Qa?h2WK8TJhCKraL>uCz~k^ zIE!w37k#$5t7{X@$f^#fuW*l`8A~092>cqC`e*=oibFCJddfD;bjB&9{DNnhj+?c$K$H0Kfp0K=Ew@tBm2M z&#qTvtg1srTXq04=S&l5?wP(-%BOwb%5=)ijH5xXi_sq{SNg!z5t<^e;TnaK<7Y~q zZ|3rT&b*wdRW7zGo&f#K!~CBx3Wb`Xicjey%5z_gJQbmhA030ik*%5ucitcE4#W~6+}%iu%O z__Sr(wcQlRZhqp4*OSBDUj{Yq^+9?Ir2?p9K5L{(h0cSW@j0uM1EJ0O>5QGR3TI!? zRo!80%iA<=q#C0lqlxO3Qkb(P%gQ*}v|&4?t~z+Eu)jE124z8B!}2}P%X^?_=#WBc zk(xlY<^Tyln2X+s?b;(YGP@RdXWMig51;#XTzm0Ab&nQ{=XxW{@P*`!f@fa26JI&T zhm)NZ$Q}?gED9mW6{rY4Cr^3Aq!Yd(ePkKMIXTbBx!FR>GC(s8`<&%nmyKGNPqn8c z-dovH!Ey6Bx0K3)?Jq1@SzTv+(&GcrUeN~bG=E#af>rkl;>@j>~Oi|XaB^kZ@thl$;G|FE}aJ&Rd4(GuX_ZoLwv^78DQC^aFD%O-?m-XNSm3gX@O-qPm#&mqep@{ zsYD28Y_!(!-E1mTFdVCN{+h1MbjrB#<*7b0ux1%nQ`is$KJ8ZwGWC$c81PkS)0-&w}&-3b8I%uP}uz zRLMdHv=}7J$!5@GcfHfqc5!?1lKDZS!-7{15`(K)sI`5s8SQhssu(IyBw!w+*e{Zx z5Yx^YX2H(+kT7gWQ{8n(BczADDF|L!6YLQnfWVh7REt(vCmkV12g7zbF2pWiKDbH; z@^EIu#nJu%H!oJ^unFMn6?;g+PJ42hL}bA#hGZY=go0(+MharD;bi@duVLmSs+^HB zli=Rg5JbX~x>DLk*31Bn0zsH?q5zr1@-4{Qr7YAMo5qMouHu6Q9qa=`@Ag3t2lQJZ z+%*t4Hh6y58FqVeH4qF<93AN`lP(E7@Ko0hR3V+Wy^?Qd@+rqLN`7Ipp~SWkP+rp4 z6y4$S5JaKkP`@qKR!C9?c>9!7A~CN}+Ok5905RYW36R^%aQW&7Dc8(p zEkL+Li2^`SEb#p0)=(5MQdZhd=Pl3j(Zz+_r7OE+|2kejx=Q;1D~*|qs-bMi__mQV z)9F;9fYrmzUzYAVT?j*Zj=lY!m ze!tOG%(U}Uc_YE-F8V*+$3II}T+7+Cg(FLLahL&PinrE1fqo z`CKMnS`lGymqT$7Rs(8-K`<-J$-$T?Z*MN0&*n;I$;-H2DxWSmYZw8synxJt3nMrR zwH2<^24&kR%K?Y%=h99(hdx!HTyLQ44BHMQ$*F>JA?uNNi~h!1lg@c+PFF@xISjj2fz`!NJHDH7@;M_1KJluFuwJKieU+k`75&6}_j-^^OgHUhN?Bs? z{eH!4j+;6)a-8yh12j_8z);sgMVW33=s zLQU=DeLICeUSVe?LR}P)2xqkxl-3(Al_7T=0ArOW&9Uw0u>F@V6#T+2B~?bdAW|sU zId3^>ZV#kL)3nl{a9+-bh?L1)Ju;?WCQaAYHizi2NF^zZ?6w+oGZ$#+fc7h$_KmwIhfPN!ZtFjftp<32DzrnFc6{k#QU|>y5=Hpa=oO$r7sEzzC&M zE0xcYw%jZ@RxV%2?~XgQyZ@kA1?1~*zD=@W3X8(c z@nFx@Dfjowb|GPD1p92XU59P3Wt;F`Q{846HvXAuKjjrlXv&-8)q0uIXkR}TF2E7n zi4cE>%L7IB^csd^XQ7{h_RIn0F5ME}JV}0u!FW}7jjNa3{#7Dfc@Tz4K#f(X?3C)W(XoBM+z;grZ4y_N6xtAQ zt7Q{Vaq0_Hmb4Z|A(w-OE8{~9zAfH4MA!ryt-gMY#4z?@;jDpOlrjU_gqD&S5@m+k z)XiEJx*z&>r*M0GVU4Y36c%Vm($R^V&**PVl3lr@ejugHGxD~Go3Hc_BQtZUBmY8s+)Zr{|<|xbOvjM zk;}T!`<3pFE5WQ6qt)BrcVQ!C3m%?jbO7fDzP`73vawvIQtz3nsM8HZ}i`P0a+YI(A9qVo4uZS5H@>}offrzddth`RK$`;Yx!MIXv2N?sYN$uo?8+=jm zsZ`24sT_1#g^Z8=1n)y&652MjCpU)spcRRkot^6k6_N%d6vQ0^suCz$c#LLF>_L-p zEELow*Z*)_ZLP3nrLcJz_ArjZL*!NDmIWr5jm7jkgSP!^py(eh4@wv= z`DOu|%mqK2F`%0DJ{JF^Qq2YkxK7SY&}^NQRmQ1G$6K+Gh%*&C#`fe?Qqe$2g{q&< zkv)QAn6#)mnU7=A9H@bVV_=t~1nJGjzM0__J`uMf28`Qm5*j=(&Ms#BXa#meBB$#ITVV(3ImdCQt_7ny@bYBY3kqmG!kk8!Khio7k3si{-$WWiGYixD0=AVhv_AxRz`Q)^fSL zYkfX`c@)?|(OTclLk_@Bkcs68+NUoZtgg<@JJ_MeK^fYwbnWaD2ckhV#90&*%Wlpt z!R}%&B(MoIF1nPBGd`Pf@U8A4pL#kwFQ3llVb2H)wX~bf7rq$3a=+JRebvT+qcRMI zNbODwMFopEnR{Y30>z=vNjtFnDZv;n4dawA#rJQ|%PirTfM=Rc&Prm3KTfw4Y#0XTvsNmVDy5%1Sj#rVTBc#>2`K*=C}()6!h^7eb^-=|6HBoxgqj8@60Cg&43aU2Qt6DJhwjjRDy|Lz z4NciDtiv=jUq9GEF%1+C@?+-g3=D8e-vGdBqjGAbrX#N&s__kjom<{16?_O5d5Dpj zZ^jST4ptw;*oNc@p>)w?L>n(-ej+x0a%UA=k{dn6gFG;75gxG zbz48?#WAJLyot_&Rhya0yD8KA_QCc(P6T1&!#1*MkLFnR>4OCbK{AE?Je*fb*;!17 z@5EQp8IlRdPwMi3m{Bpt&XTZ^@-n3q&bPVQXIMv83QiZnPMBr`dP~0O>>jV3G*9+t zTBI_b4NIb|4ZGZ)hoO#_WHN?~tqTE7{thuXRl*I1$Uk8Al5T zigC2S{9o}Eij9q0_Kyw{7L!TLMrkO56KK$oi(_%UutUI+xvU4185|Y1%|G9{S2W_%BaY_Kzs`eA%hi$^d`8K^f=mJMUfeCFBs8c9Ed$t8@_S%T3* z$({>loMM+}G-m?$rG2Ik+r<)$x*Z=I!7$VLmv~mowW>TkV2_ARh#}jBImw8(ZI~pa zUJr*tXyY7wFt$Yt&W|Rqb`I<>>h0QIE}zS0ogeRSwXraAwPB)TqzY;Dc0O11%e{rUJ3 zImJhZFpxOHCQb%c&5MRSfgyj+%)kog-K>FcC6gBx=17j1Bc9 zMn|a5dU2vry+L;f0|;o+E$k;|y}~cz$_Tis9Pnv$A`W;@XEdN^E~@NwQUeE)$v_!I z+erQU)T)W~GjGCt()7U-X4AP}PF77KDKO}T%;=`Fww3$U{#6ra$$bMx&KVe;pnI(U z2$alBltPiM+K5jZLKu2uPuj)7Hv@8V$@@=MGFOd%0EpMXsLC{jQ@gMP0mX;y3yuc- z@A$0cWW104YSQ5UI^HV08d3gD{4f#Z?S#q`JCEXE<8R|+Csdoe#rTRH`_;njk|v3K zkRd$aus^VYoj<~j>9W7{_V--FfM^i(4JI>quZ0p0#w+w5t)(t_&{#JZUX*e zbVR#xaGz$QZ_T+`_Nz#|&vW)iRW*miT zPhQlXq?1JL$xD?Iy=D(-CaDvdoO%u{n$k9OY_Q?WTbVz^*}`8ec}s`4q2C5aDqUw3 z1u96&D&o{C87wn6ubJ^_^SuB&Z~Xo{exyLj@TjcB%0I^ET%e4rg7cYwIuI2BY=R)S z;*hbI%0c03{+aEv!U-vbj}?8OA+(*-wG3T4F-q5Dzp%jo0nCOy0Zdp*rt#9NQVMu7 z95GAdSX#CK+bQoa@p%Hvl%+&5f=PdkA6FI4M#Qp*{}!L@P&b&G$r*l~33Xv6UBEtZ zDi4Jmlth1z%UQtn>l^G9Jsb+jm48HDop<@nsHCSajlpA`m0t#cs5|8{}5aK5wH_J(7K<5Cu6m=jn!1m^8NK80! zlJ#(T1x^yBcPCDQE$W~}qdJOm6TKXs5&hOTq{_zb7>K!6I3}PC*t#D_g)W>gy9%v3hJmtD=btksDX^ zSDrB@H5t93!v;YzK^t+m5Lj*l_n^SoH=A|e@M<*4#u0N&aTDtx>>*0#8(-BX*{~nY z_$BbwIKt#P-c3_zQng*)6h;YK3eXgLC7e6WWnq{7rl~Xuy)TY3Mo?k$QNqa!7n>mB z9ux<=UpFV@5*pfGl4)je{R1rrIJ>bOyJob5)eCdN9Bh1TA3F@V6{zs$#KBl9Vkz@+ z84EZF82!NR@|MKv$mZ7sl>x@-H@DHs>;eC>Ig-20Qo7*Ynh3UOC&cwFHqI1`tc20& zuCOzK(1BSVj=p)k-+Hbvxv<)*t^tg_ zJZ#xu!_#*laTs?dz&>KvFswkGp>v>uL@WFpX%?`xjze&`1;c(zA~5=9Ltx_U0;aA! zsK~UcKM`vQ3A;`(Ap&mV-WMCD?+-~?K{4q-JOstuDohmr3iL-oME7+~W@&*RnFgn7?u++N_1eU5-I#wld7KNc-XSL*#a~X|@|$CBadO%c|G_p*;!R_k8TlVdg8N zDO}2d-838(zy%4og2udelJOFUFWBxBMrNcH$1Mh6lW;@XeTgf%dRXj2D`&cf3<0`6 zOE6twidBQ_VPDy`RBE(N9~d1;u2STwsIJ&?pdiFf8ErTiP!qWCODKhv)?gj8o}lmZ*ek+tm9UM4Cknept2S=#X$FshcF2Bx1Q@7C6C|r z%wURQvjpdQ9NZa{c0QJvY;U`skUkzhDX_gp0VcuL$6x6NSU3%a+gANT24_qy zEBlF8xB;++ba7A}mjl4w!^r3M0DfcvKd4!N9XtycE2goY~thxb){~yijUP(2kB&~ zPI&+aSx_isH<;jpZ!EzM0Ec=0DY2e=LtVfyfNNN=bw_&}>b4!ybxv%Di;LzkdL=t2 zj*_NJpJG-*DIPRH$_N)WanutU{WP)vg>8eJ2ctyXA7Xx*SqYL1#LY87ttO%Z7+u^y zmBIZjDcpURc_g8(NvjWG+`41p`q&IMnZQ}4N;t0Z86M4`H4{_-f?)w?@=9)wt}nAo zk0#W?lA0OEm7Dj$W184GDP(YVA!UA+*Sqock1TsQej71X4Li2Jks-{fGIVWY4tsJi z33)6r={Z6eF@YgSnOG)mT$<^8E^$f3mV%~IfSLh^HkH-HgJC$`)Brk}HF3W4ab_9D z_kcbG(zcK2HW1MBuyki}8BGS1dNPHpaKVD$WTr==dus2iTr$lDasNbb4t8reoCV8D3r7?4_7@Ym2(7NVV0E;= zU)`%pyF<9C0dks$ql2FLr9^OLz$;Ensk7v6HIz99w&S3~H?l6oDdWrkL+XuitiU&c zZH17FTgEb2>AsSUqyQbY$c!Y;)P+1MVnu!jddSjjfNmbjt%{BL+FSGN(ZvRIE2 zh~S{7u>Me@CJYNey2-4DTu~2o=RYPP6#3xja3drpgpK9#slaQ|t}$$leoh7?zY z)rB};LZ6U8N*BwmF!M^MLHyI+Hxq9-=)Ts7YTe#;t1qiB(Xo2i4bdg(Fe3U^B8|fGmh` zu;%~Nc4oaz15p&FqXI4BrT?H3Vv|U5?AVE)s`5|?@kS*io{ZNd5@{nrDE*V{`@Zk{ zzKidUV`7Jr1gVuOwQ=K_@nkY{mvhcNrAmFbNIX(*BjL{bQBfqe@0+NLg#@5#r-vWY zl`=da*q#KwaYp0X8P%l^_#|(DQ?)H{o@jbveVXoNrXq{+6hcrtcKVdJV7Ji1bK*&etXo8;9bN(uiNL)w;A>l# zygP(@6pa_+?hDeNLK3GP;tu#Q763YkZNXJFJ77vPY54?NK)NP~ktsGJqMP`0 z*VZEs6(f5Fyw34sRuc4fZuBEnc9=PzX&g7^_hZ8Ner?|XvZQO@O*?_oD^RYgZ$@Dd~mV8Nx9-%(B*8_oDad=cuQ0>ZRKw~>;5Q( z&gXh5R>+}-1e8=(3F55;Eu428a59ZO5J3v%Du~2F`vwDxdj{)|2dceSBS5C5g%mKY zF}4}@n3-?_M0yEfut+WcgX)r4biWzA>`)ogzOl6IX@D*>2?DsvIT-*q70aReQEj4d z8P@+N{YThd`K&f`Mbxjpq?cOluWHisI#Kh)@uu}nO?X}lJ>aJGU0-f3Mg09k&5BXc zB#Y^ZI1mvTHgcfa(tk7Im)=~OoHO3BhGdkHJV31!b&Mz=p%dCaM{A*zwjk@(NF<3U zRebP$(6{_0JCY1j52>=@@Fby;s1t(iR1?%?sdsR($HouhB8;==*<1NHLK_f#OTo(6 nMj2qZy*y)CGe&7qL~xF-Oz-kxOCcU(mmHu?kY@F%U5)1-im|gH$vMmF~APm^hvRguyG0yg#&lVVDqa{lMj-x+muuRUl+FV_@eq6AMni-0^|)m z8~LVSX;z;U#wmqu3Pd(VP)F<1DflDg7ko{SJR0%f2mjX6s>SiU?AbhiugT+nKXLr{g3n?r zi#u<-(@wi?S7;(&Wdi;%e)70UlXsoC?H|UEo3P8|T?@_ps=}`(|8dv7#;yO2jSD4$ z1`#wVdAra+=n8~xx6}A-CmJk;M#9?@_-+%&|9-+=HDE(-;;y?+R;&#c+?tE+cGz~8 zKa8I=PQGp-vK9ID_`N1fnmj3{;_-_%e(}4Vw%u|3H^zNq!;KW90^DsPgc-NT-$ACG$M3xB#6OMOW&9rtf@X;2%gGRF`(6LIi()X~8w%$RH5xBP>H+kZO@k-lLr8TnRokCE2 z-hb9Fl?IiHZH<#xaE3w*5H?EyD6ZJ3 zOxQ21HV&TSd52vmPMADl{G`IG-iiVnzt{Nf_Lw{# zrnBpII~HE^z97&EyWp*DcbYKCeDSWg!dBxaZz~jb)*lM*d25X1&qnSsVW;iKPaL=H zZoBRDCp2Uj+%A(QY*+Zm8;A*uW8VJ$f&L->Vg4NdNdGAR zX#W_0u0PMe&41H>&VR!{+PlQx^f>Pr?^J(}=p^rFlmF*Wd;M|GQ@vBXlf4tXqTeeZtnKJQHL zSno9d6#vhYe*V*o{EPiX{@?wxy#?L^|0(ZDZ?1Qgcc*`-f4zULf1Uq=|Dykr|FZvz z-}=r+!=Lr9EBOJsv$YH1;=+!d#dQi*Z>V4BEb-CY*$|c{cQ$r)G_hFfX!f^A{#F~J zpinJ_>ve_R#EzD*(9x<&epg2spQ?m+R>G#Pj-a?jwOlP#Te~{Fu-G-cP}rn^pH{ul z>sq%^*wkCE>H*l<7XH;675MmZr7QHiItNwD@w>%!z4bQrD)>#QYnWf?XjjB4U4T@& z!1G3aq1sZ#Yn4rbyam6n4vK%>wn)c8Uwe zVz!{W#f7eQ3WHe7@~OP&m}0RRW>lOCLuwa0N(^QBr{x-0u7TwmSgwKP8d$D@|0^1h zNGF`y)maM9^2P>;LH@7*t(Mx(##n8QcJFM2+-G^GdFuo#FYroV7;>!lvo*i;^Tv&u zPVx5hCVlyEMDp{!4O<57?`?8|ce>Z$Z~DDGelYo$2YbcV(X0N?Uq8+@F%?OMNC@kH+=uVaq)$2}`6L|cA!m1DdwZugBN zyu-W$y|1l4VxITyul!-FU+u8{52tzGox1)(-fZvdhak+ajtSR0)SLL7>Io#{Tat zZ}>Mi_|_J?joWpmH^bX_U+>31+1uM|!uTmWZL`@gHt*Vc)XqQJ<-d0P{rCU#r@#Jh z#G1YeQSp>;y0bJoxWlWK5TbWBR7+!mHyc^NaG=_Nzl~#tbT)>CEd?9}Hy80c31~4^ zXl(a7F*vxl3GbnVz`s;&96O}_ZGZJ@Q+uKE4+O*(YG>6_d&5qR;3&A??@sOPo~S*5 zK%KmGG@B^AqtQg)9SyxP(nPThBP|f6soDauG1S>oz)|p^Uu{MRjge0aWNwNAaM4sn zNn~!(GPgqJhYS~_-P|>-Sim5uFD1OLl|a#;O3-d1ZGxlVVZYi)+F(rSTQop6sqZFD zy9Kl#5!x~U0m-;_Q~G|@u5W^);8Bad|JswjA2X6B`fiBz-PoJVqHn`UM&F8&$Fuqd z7j}I=(LXL;*6PS`L2wj2nVXBJ`p3mfb}k5xf~RwH@l1~TH>5JHTakL!rT(AmpUf}V zWhOWZp3g1w3pr#qq%txqQZKs5{F0Fwt$TREL!0cYX+NjM%rtF+qu^!Tv|CNnmd1us zs%g`$ypluA=QXK}m;^_`t1e=`X2fLER^GnUP11(Z0X$0s`wdVW6Fh_e*>A8XXcQ+V z{RY8N@Vc(h7U?wLK&3&WBp%On8gycBQSgpM(uF-av3F}F70-#T!pPjW z6MI@Sl5rmdN5OkpBL)|CC-%PKBDYyRsR?Jyir^^tAZu14zRj#Y%%SY3G$~zGCLSO- z3O;gC_QyG>Jz=Lta1?yvLhaKW)E>7}BRC4CSz?`YdNQQx66+xPP&1e8uwh8_5ka?> zgNV!Y$sjZ)cvN$dv>fUF366rjF>#r6|BX=q78((Fq?oK z;YAgd$6dF02AhwalS9Q2#@3+`90f;MRD5nve&|Reri&A}+pc1Qqu{8lib31%1dh%j zDR9~(B{&L>aglUxf2qxLp>}KzYIoXYBRC3LQzJMEPH~}js!&VK3iJ`+ovo)QWR!Y~W+W5f5gY~cb<2on1o2wQU8wyn2eljRvJo5w7r0QnFbB08?9>R3f{R?JU7Um3^>%6mN5LW& zYJbl`?K(R(f}`LP7iyR0pmvR&8o^O;nG3bc`%CQ#7iw4Lpmw!gHiDzzDi>;tb5L7s zr$%rTTbnjF-wvQr~C3a)jbc3lo?SK6r&90k|AP`g2>)!iRnrWwifhXhB#jk)`V zoBGGarFJd|mL-bxTz!wdau4ehsb1L#oar-^z_++){?;7zYy`_tQ-a;*Lhbe()GpC# z%upjZ3hr>Bc4zqg?4HLN5Mlb)E>@3?E*VBf}`LO7iy2@p!PRAHG-qyF&Ao& z=b(1Jof^SW@PrGsCv#9c*G`S#D0s?++SC1|_KXX)XN6kbJ=#JocBV%oI0~N2-Rhsu zA+sTsX@`o`3obIhn1kB0_WC3^3SM%d_HqttXW6L{90jkqP-7Xj!9JzT%AX9PY%71WYH8=Ud9fm*M-yNrl3u{+OBm*6Nk*oE#P zIi&2B+MzDg4$DF9F1u_5V~xy(+MFEJdR<^S!iCzAIjG%XmyKYoin&lbItR607g&yQ zp*A-MwIl4Z5gY~cT&NwJgW4QBHG;7)=0ffG{!%-^h1!WZs2y&XjbJQ{xllVf2em`( z)Ck7HmHpmvB|HiDzz3>Rwib5J|jPL1FwIMapNf*jNivQr~C3eIw& zc6JVG*V(BNjGcEb)E4HTc7UB4!Pu?jLhalf)b_ViBRC4qbD?&A4r=?^sSz9ne{-RB zK@MuO?bHa4f(u=!U6g}buS*ygyHHz{gW4>+Yy?Na-(9F(l7re6c4`Di!KE(LF3Umf zayvDGqu_EEYFFf-Hp5Ph;3&A#h1yj)sO@d1MsO4?cA<844r)sfF9xKO(` z2eoN-*$9q;>s+W^FVyOug#1j4of!oY90fPz9tGV9F3jfTCfl~t)VRbD&CH1?qBkYd ztKFX%6v}vrW5C*jKHPbFvyndc)X%3{;LOwy!BKDvjuCOoYrMBk2-~K9Zp~52hEzsO zMe4RhOl+%F=WBW#_T8R?+9z7D3^jtWrshKJ&K%S}wo@Y*3ui9W?#@B&LpwEsu|VcR z?cN;JKCn|GI127_p>}@`YVX^r5sWo57itgYp!S}f8o@Y)Wuf-Bo~9xm>o2v(U8p^g zgW9`x*$BpwDi>-`<)HSCof^S7I^{y`nH<#Kwo@ZG3Z8YL_FN8XZ`r94j3ZJm)LzIz z?M*v1f}`L?7iur%p!SBH8o@Xhc4`FUB$NxaH~LHM zO&4l!<)HS8T{eQF;B6Ob@8qENvYi^iQShz{wfBTt-2vJQnvqO^MsO6opAFF9t?dWB zK3Ixee3+Yyk8)`KdAsHbj)IR}H2+C|sV%WkyP&83a9Ts(%RJB7Wg{5NJUl9%S?1}H z+TKDq2dI4r))?sSz9n`?*lt-_&C6lkBEGWeMwX%}B;K5F7;uG-NUdpg!%s;lLa+ z8&aA2RHP2I$b4Z>?c}ijQajv*+MFEJ9<|pe!8iluLhZ=@Qaj3p+R-_vJ#3eaV4Qk# zp*FX_)aJQRJ2nTk2ko*EjKv)nYRC7N+6gYyP84d6i{|&?Y>s8ooM5c>=(esVOmN5@ zt%j9@JFxJY_x4r=$>sSz9nr@2r&y;iU88v^dpjAXni!B_>#dQ;J` zEf35595UZ+mziKJ0lCP$AP2R(?9>Rx5|9hEv-_vvJ2WF14HJyjq1+l?*gr0Aw{t-- zR*iCVac&OH8&a8GQ;|B)Mf2wynOiZ>DhYNvkU>=?RH`}o-_~vJ75PCCGcXS-k}P>+ zf?IhAF_mPgff;`Y#=25NwUsd-`fkif;>bU&92qsR83ib+4K*2-E-?Jm7rB6(xR{J3 z5DcQZ>)@gsb#RL&m8k=Qqu^qfI#|>{nQyksOfc4=a?5;4Ef;yWT-{{vJqX6Cl&0Nx z?{QfUecx!;H^Eqva?$q{^+D5|Nw!MbRLS*BW zgG5c0bMa9|Wet_{@zIPA8!8th?_898T$FsgB=!1b$ro3ozPJh{P2lR(7uP1gxIXp8 zKawwQ#Yg?)+f(n{nJV3#Dm{RbWHl|Dg9GxS;NizUey({&CWRrxbgrF~MR zeN(0VQl$e@rGrwXLsF%~Ql&Ym(vhjs(W%nhROwihv}DI8A5ToZb8@P5YN~X4@}v35 z#|5c(&Q6sUrb_3gO6R9a7oH1XZ##HHM zl(b3SlKSGdROyaX>8@1io>b|+RLP_vRCdI4fLbzU=hGjbO#R~NRO#7N>G@RY#Z>9# zRO!`J>Gf3U%~a{_RLNw(Qv8}sRH~%XL#f`ap`y|^nUYGcWJ>=`;hZKryUlldr%E$Z zrCF)c>{Mz0RO!G}>EKl9&{XO0ROyIR>8Mocm{e&VO1grMOMP(yO4?#n@(LrFNiLzZ zb$aSY^HZe-snXf0(!x|p9riaA)M0#6QitVDNgZZ4C3V=`l+e#9Iy*U=DesNz)&IeG^N_{Bx#UrWGW2w>; zC}~PhrM^(duMAyvJj#^R@g-AI$BRr!9se;Ubv(zE)bSZp;_((uS{*nsU#J5iro;mq z`ZaZ$!hE4lJD3trBk0$7R6u_;`}mc&zZs84#7L!!8Y0mFqZ!Vz3`g$=y3fGBlRRI`Vm+7csa zvLNY1)>MrK^QT?mX1wNrc@!~%B4u79VR8&hj8biZLYSu(w?{qTC?#ZmE8!*u(HK69Xj~S6Xq6h#h_%{4(R_;L zQ#34fjG+uDFq5KWcs1!@364cmdt)Ffwol{24Ty)_cyTsZri?VAmH3INWAXAl5kh3D zR7+Bk6b&zsO;xp^0y7ZN8b!25isp-GJ`Q*JxF7>2rEnseH~UnSs(Lh?npzj*xsG>( z#MP|RXhLLF*E@#ITT68}>#W2_q6Vpx5;(>0p_3A;n_%ihJP9@?sU1Ani^2;%Sn1HA zuI@&q6YX;#vVQq4=!E2zK6>OIRo@(&ezlC-I4W#$y8YZ?khruTs;e&}yNequY;|6O4&$*0i5)uEDe)v@^7y{n&nVt>02#t$(GiTE{Ub zTdflut0u1XIWD!%(?ZL%)**wf)(MV9i)$SQoxj#;&;wEH=+NU@S6e3Gb==ze*XpYE z{p__)aIBiR)^Tbpe_Lmyu}o_nGT3UJ;8?V{)?v{3Yn=u?5VbyowXVAfZqSv!#-*FM zi#=s!2?9&)G1O*bXWQAZF58)Dw;h6G1;@67(~S9Thq3E2wH?S{vmJtC(PG;<#Km@a zKy)B%=d)sBJ7z<>Q;2@O*v?0=9esI#*@WL$w1&7z_h%BV`LG?_KBmL8Y7=|iBp_!% z#&hk`wPd!n5F7RSXrOU8^EA9pTnQXw7IVe6yj#PwHiJOuV6G%z{3E>&8#y2_;oG~p#&@ecx z_@L$V6v8){5FRgcxEPz3jM2J>AYg$*HI7b762g~iLwJ}sLXfv;TDmsO8J9kcB4rXI z7f+ut>(eKe{PQokgReL_tWH`u@_cz7d??@VrITY`NS8bIc#9afM?b4DafiuFz!LsPT}t%C7N{622FuD^#Ot~yS-z&W65KE>(pg^ zSK6(Q;O^FkOsM&-kA7w#tPiVmhPhFM%7U#7z>$Y7gbA~+T;9%dog zd;Ve8C9Evf3G{0r;-s3^tunben$B%v#oRBUZAYzP1B;vOtXG%q;NlV65S`#y!LjXJ z>|#6gSIg9P zRv%1o?5JWNjO*eY7KmUk%hU%$23!A4a4cHvgAZ}>!E_M=(SKuSXI$%Q51ezYf3>b! z$1SV2o|oWQHF2#UxI7sho~rR)kJeY~->$3HpR?CG!Le%M zTE`8%`THzxeP5=v4jF8H7QwM-ajnCk^Vd2JdLU~3@fz>-u&H&I4Ke46$9OpLJ6u9? zj!8ciAIRex+I!t!50*K?%e@Jfd+Wh+zF^@Y6V1!r^)cz+ zUw}l*)Js4Ho0lLs7A^J?FGJv7_oviuG3Objf$$PI&=p(YO{Ugeyu@o_fjl#&?O2^= zakS$L#R4x+u&5Iq5re=VvEl^B_=c0A@euhEf z*1Zpl_3N_mG)FrG^mF(dpCBVR)^FUsU+mJoUkHhoY4;8pY~4G-v1oDkz6b*6?%sKf zJ2o9TLDqfyDK?l|_BN$Yz#LT5y`N@k-KBd!PueC=-)ld?^-E_zaSgq2wOGYZ+gGa= zhZhRr>Z5{LeiguB#li?|;VSTKSP}o}vd5QNMg_mD?3)nBI+{E2X(Gam1j`BaV7Xkd zOiQqEG0s^Le-|vwj-b_v)g5;%R|=Mo6D-HngXJp0!h{Z*7cLPwOZ1F%ubhd&JrxlC8H%$nI9an{7tajmS9oYBpk6^B3PLFM)RUFR5)T; zC|GVxu&AsTj#w@dEY~GiR3;5aEQm z77<4*V!D4%ki3eX$=P%d7gm^4Nk@h%*$G&2iwxJTD>A&qvn~n{9EVSFWcaw}F!4k8 zvP>gG$Y6^M364dJBf}>kaPG*E*`fv_GDJ?T*Z@_+8%G1Ynihzd4(F-bSC3=5bG<%e zy3xUTkU^*O3zy(earY>|5A~fY?Z6tgcdb(x6pwnIGsf*UU$Hqj^m{)}2eP)ExCBSR zN}1`3S2+5!O;@Z8RjTO~Ej^!o6a(aU0iF&Xs5a)18 zg5|M#u-q!VoS0x?f+lCZ+$30zORzBGlQWh(1j}4t(eq#`ixdpMce}ETrjJTkQHiM> zThGnH%A5p?N_ORl)0%+X5 z$C1lCm&oN9Slcp+$1=wR+DU^4I-=Pn4eU1 z%*9A&4IUuE|1w6RQl>iE!(oEtXEBlm^>FgO)a8$3SHuOzI$Y8Eb-ALSTU`;Laf^*z z(KHuVgcxO+c0E6b3cGhbfW~sgo@ly@Cz?7ij%aH*B5mrYo9dROnckAwmEtysDHZsT zv9aBqYH+wL$Gj+Zw`Giki^`{V zP&nBvMl!b^ByS0lZ^cNCt_R7(f@Gr@3752;#rZ^#Y@m?9&0_U8izLrtcxUWdTo%Je zfRr@B)LJ;8nI?#(@a-K|!hcuO0{gKLzJ3x49M)YceV>GSQdB!Ut{*OmJJ-)6g5)c) z>&FtSLgE&Mek-mYm&NpTt*#%?xPD^S|KAStrT?{zJ^#AK?3ni>PU8e z{<_BO`mu;UG%>paOl7+`?dQZ|)``uItLe^W_q-tKh|P|x;)2A@?7mT#*?q}sc7Vq9 z6Pw-79n9{h%h>F`WHmcLW3ghh`-OwqA+{WdfzMhnJ3Z3fr@qP_URPyzS}PmSSSxX5 z|IDGXf3l1#yVF|PfW~6Qm5oq3_j(L$cpxf!jl{=rr;4+CcwF4WU}Tua_zKC9rW+)> zS418V?XpykCk)P+?12V=0mG27MXfZ_$1KRMn68e+7u(~q@14XrGMdJm}{u`5~9ne^; zxZ(cLq2c~uU>fd9NyAl_-Z)N2JSq(rOP$(cc!^FO7PCQJ7PFGoVgQX*8(Yj62a6fK zj4fs*tHl5sixpeU_Z=(-!|s7_^?|k+jP2C@NhyoTGq$V5mF+UNYd2a+jqL!-3P&Eza-LV3U*1gkl7^P~5WA0> z0qw5Y?>cBU92m{kB*s=Zd!@9}w`R-GN!%xTvMrZ!Kz0KMA#(2udr-51qkWA++5D@v zhF<#@@g;7UkY|6(J>hA|&@u0sXMgFs{(foEUD|jxe%2puDp7T2o>?7ZbwTPh`@MP3 zJhR`MvXRA<%`*!(c(U-G-tXx>^L}4X^Lz8`>;1gn8#&DT*|LEzt*4=9o;}eq-p3G9lC4rKq^ic>c(wviip5C} zu4K2$Bm}tSYbc0hX2L?>3TECF;W%f3*GcGzN94Do5nXDre1OCa0-pCWjhVGdaoK6V1%! zjcnS~O$(|9m19zQ14`XU@@-fHByDDuH$yS$MBZ94@?tZqT)zvkp-0v%e#HlGYhxa7 zB-PcEQy||3d2rQ&R5=A>t#^134YD?)=J5(7ZPt?ZUgwEi$jmV&z^Vh~YR1eL@IbC+ z&QJkbTj#h<8KMv+@z|7QLpa_#K)r6(x09lDbruZmrQ~Hew)PBW@lOKn_bI1~jhGZjG3ApJ~KW zqnSqBs2VYveq5utYDDPCk~qlg8dcKbf82l9Ecf3vqh6cQXfZeESBs;-u}#V%zNMjf zc?5-JSp)^NyP(WJPj8h+P!2c;Ku~Feosd<`*512IPx(8n@Smf8`!EAjx5dUtcmXSH zye^J4jT;lB>Hd5VHbSNA7B`Cc>OD(W5%2a`zNY$-&J#`!bDjnvpF+$#!IcIsB>cg*w z`8>$#YiU}PORY9RU15t-igY|Rlg&-4JK=!2iR@uMJKPOdyf{|>YUs!eT+y%S0&lnOJw zbxtUq<(a={dZ&Byy_3Cac?AP9&ojKD`MBcXW4s@)u1Xz0Y1p9gL~oY2>)MBSCwQlM z-)IhIdn1nZPVq|K#^LT`cKg`@p5OAlmG|6h^Xc9mo&WL2eZ8j2m%i4%%HiG--daa_ z^So2NU!UZCVXpVvA^$b#IPZAxi-&rXC$_eYjE1gsq_^5O>mKGE?Cs|bTlJgB_w(iL z$Nqf$@4o-PTm1R!`+NI%Up>&9Q;2aM=9-Rp{ ziPdx__a^;Ho}Oexx1MC<+MeWY=}8tBq$}}sSF-U4@B7k~+>WlqD~#~glrF|&R}wZL zF2J6@5MzNI(S?@S-+MaVX+eg_!~FEVu9Nq72FNa7zKwh*7wE)hx5uId@)tL zBqDmXn5-^z!%uggTy2?%)c`J&BP_)Q)GFMb=Izelp&_h}364XI^oMYVE(t2If%-T< z3_85Z-H2A8IJso`OszY_Q~l5#uSQPy!U){rUKjxn0f6~ znz~0c1?v(ko3r#Zg~S8lw^5BJ_r)B}w3;R`@XR4yQmP5eRn3;Y1m>!3;(g}+Emz-IJhwZ zS|wq}#zlJ6OSGB;n)a>5%R` zow^KoS_!P+s*Lb<@`Q8E;Ya*%AU@o~4+r4GG!GweSUJ3&kp1wX70=mtg5RFQh~pDi zaFaOreYJz1Jpc}V?~E(hTe*Upz|^nw@ zGa7tTY4Fm%G+4vbz*lPzOtD&zrN(wGhc8l-yOhzXsz7R4!MCN{94o@QQc~o$Qjs}pMUI&GU2A*dn4r~xJACPaupZ19)`QBh$lGz$($C8yv3kM4skjA4zZfNKJ~n_kimJem#CyV# z#Ct7c0%0prm8@sU5TvubkU!sj;jC)wOpLs-g2iD-iwr{sPYws~fxC{U{(#d2E$Bve z2VAH<04h;{|64~+)d=wO@atgjM(FNU*7{G&;hE(3C*|-oK7U*e&*Jk((36{4khexwKx*WdF@~Con2Fp=7 ze3|9%mBZKg{BAisitv%;@B}`?a(FtQTa?4Od~RM2Pv-MGaHf;;H4}dLPk+Fpo9Bz!q2IcUZczmNAZi>hH<#0nh)+>iI`R=;q@EAV7 zUJl>pZ-$q{=`4S(9KOl&SIglMEPtgO9>V9aa(FPGL(Aa^Jic5G_hIor%Hd&reo3qK zt4gi^h7*`b0}{SR$=2?p!HkR>%%3=od8uwMNKD=D=m&F@sX3f8ReM28T9y7p8~JSOL(}WWn%;?;UZ^z&6`JNDlw1IRvNu=J1FNhes$5F?{HCN+jWEz;)IGN6^_ns4MIz zlC=+PUFi%tbBR@tEpfUK+Zx+zb{5EPhtkAOPc~?9&jEIL@brS(uu;=GdzEwe($oCm z8O9*BuY3~`&F zm=Cb(7vPCUhMlketJ!G=8}EUS#*U_Pg~^2rAM$(d_44=O_KiQcHuzx1N{nA+psquygi^F>g5O{g^}RsCh_08~U(Pbz9d zYcwCOi}zo_`##o(WLGji4)uS4t*}0NZ$h|F4yl}RjJp$Ox%cR7S~$|5)!8Z=@b2=f zt=tq2JHbbt*9c_zHn!GQ!oPHNRA5UjTtTn4VAm@CNj@b@d15@VCcce2=&-lJ-($L7@_hz3|RTV_>~U~ zXZgVBmJbYe`M}thkB}wUjIKWH#YnFtq*r=w-R5 zTe?#np94>~yqjBE-Q4FhY+r5NM zs9+O*Ju3J+cfn!dqN@`d1aVa%SCqNdlUbElhvLc;J9zp{PQx`}Wv7&!8foa^;LWBu zyuT0|-G(9p`)6M~ZK`+z8wpR?@H@~v;o1P<>C51$Pd#m>cmf*_c)~93f#&Huny10wi785Z<>@<$C$N$5gzatv%@gj8kh<#tPrMAf zSDrRkJb{gbrz;1Zr!6#3o#2VtJ$vP83&j)INO-zx;CTu)Pb-6`5BuUNR6K!=gr~&= z&(lcF(;DE3`96Eq(@4b=*hqM~x=xy{qk?}iuS3A=8^S9N^tO}Lc7z*KC-Dqxd@2aK1V?f33%w*F0^hY95uH)clPDU-M&h&94ofUhRvgF^VU!k??fW!1MHd&C?gb z(<^=P^nJw>*hqM~dEj|Mx_fCMUjk1r_r=p##S_>_c>2e{^MqXW!qb}I>7~AS`hnsJ zY$QD0GVnZYrFmKnJiXW#Pg^OTz(&H;tpm@~4>eE!0iIsyi>Dtdp1?-J6HZPKbd)fZq3SQPlk#*VMnEi`XhKvFJl zT}*E}61=k2NM#qnKoC>vtsF0=kjkkh-dT?mQ(oe&OJk9y%9C*-{rN+XlILF@#gkjC zu-}{yY(M8?HTA$Yd6uwio)2uI=i`g&v8H<9BmjX+b?e#EUODL3Ji~J4V65pKa{ngV zc$Qb||H+*v%d2&Hwd!5b|FZ42%WZDC%`LaN+;Zh$e4dJ1J=exj ztA=W^eVqc!o|G}2g=)Z)zD0FE29E2p zzd$xuz<5Vs2Ze4=->h%E|lQ`;3h?!|C?>-l-d3biXD4A!~9-^j+NWi7{5EZTa zhl=s~9uOiq5>7BzXH|oR%$J25Hjn~BCVZg@#KKGSNNzo`Xb@lZfm?8Jfk`|;07EZH zgMy}{1Ah{M9&dDkcBCb6_T5}Zf)l>2Oxi6cQ1w|<9LMIZoPfdLm{x%D%VE^=js@0K zwSbBEPP7wV2T=(9(SgU>7#u$KJT8o3?XJPY+_)rUg+c+B56gFV^1HzP-F5t~lK!qd zt>`t@TsOn&?kFbaB8&i7!ZGvWj_1W!VlOgnsAFswP|Y<5Mjy1H&75r zH1T(hOv=W@#RNcC()M^mR|B+!^daJl^v|eRoO#DBxx8z!hcCKQqM>XQ5iAeCc;psHjakvnpH2ohe7JACA~?a%nEqH2@QMxv?|zl8KEcaXmN z7!qw6AHjz(Ah>#0t$$KCBrgq^C7QDT&-Eg#Z5IVSKtQ0 zGVB^(7kZ56$BwA>z z4w~NyhPMpb#8{Cf0j8>)^a^m&6*y^(2hcv~uhoS|xE+a?$#+y}u6(zGJrB5148sd_ zmd$&1wBu)O_z~_6qmcx-sV*oWQ4HN-kw5b34tZtMX7M#Y-;6(@_oU&f3xC$*yJ{Li zUHCIpta}iy8lcttu7hgfj)sl1=(rSAJuOJ9CfdycBy^5iR}t%1ug)TicJFktHd z-|W|}R&I_j!OeviUdqd#l&341YbQ4Ht6~yW00!eFV7dfX|i%ePF7CStnA=> zQ;Sp7HE15LK`RXNn>(PCVSYQj5gu?Ja53=0q9-h%^F}H!yi@DI8|m?iFAt!>5ESub zwK$?U6c2wyu`2Lt7iC^_Ofk8Ft9{4L;yQ)yo^?57xdxVNV7UgCYhbwsmTTbiu7RqD z@dNfoV@P|}{~x#RRZDGWBSqaB?cUkmnYaM&G;f_?3Ai7x!Qb?Id;DPXFAw&Lt)o}{pTCUU$NSTN4Eyr|UUS>f zbyr&LNbhKG?YX$d?hNm@r+R~r^R`{kLafEl6 zccAyR)knmBM%{7&a|?{{PWca}H& zn;U#=&DNZ9Qt|AMNsAJO2Lr|M}Bj|F_JW z$lwLRtlYuPJ5%rAmP(A~aI5l|;7!bBafGMu_{QK4vlm+mI0|mYSx|L{E9WpcgAfJx zVoD3cOZ*If&7I&)xF7l-deFpSXbrWqYN@?pr$%rT+|SXNx_~^Uc6LwH9+0#Am~6ow zP&J!?0Xepha$bQscOg{2cNR>1?6cijfB~DL^#pwr|WKf(wkoF_@*y zEqbDn*L^=^xFBuJh7_5cvKQK-^4GNzC>m4=+BnR(Wk7Jm%$J-t;uNUTw`hQDl6I4( zjp??^BSO1d?WXkos$Jg%N5P{OegCy5eLrR-P4vyVRHbiTvfd*jqHn`UM&F7N!v(=n@MLZ-p6VYLFWI>uI0~N5&BZf0>feycv~ES}S(o~Mu75JW zV3(QTh?jNbtbZim?9J4qc^Og}nH8xQU1WaA$c)xKyx?()q-Qf1+Rte*GfkV|D0o>n z?N-yYrLm!uYT9%wD(z{HElNl|uSsRZBsdCQbrF+ES?PGim8u4fIiZZCSjB;7;aV!Y ziZQ`6_@Dg-djd>Fn|_1fD0p30C~h!^6N3Yl291(Gb4ZB|ce!Wpw7I0`<`PsSAwGecTwe6_QyG>Jz=LtaKt;q@>BaX2errT)Ci7(X_i>$oSqD6 zy2LtYGF&n;F^Bkwpj*p9#AW(q5E>Ias<}v7j&%P7N5S5h8c(`^tQmlXMg$&dAHkM0 z!?3^(Id7|d#NKKNj)Iw3v{1Bls|9VuMwV8)PmWN}h?y}YCFU#_W$&AV+QV9@8EOPa z!E6_5`{khakewRAQLw)YwF7ccd(cje;3&WynB5vlk7j#Nf2kepLhTTt=Gd>?XSYy- zBVP5I(?Sn3v~&B|d$pD`K9=A}uIXjdh`Vl4vCYTM$)REhW9!fej)EgBDn7R-KXjxK z)5QtgZC5eDQE*gN#h`6>0!QbN6gX{?5*!7`xJWv;ztrZrP&+mUwL9&y5gY}_xllX4 zztm1}p>|>pYPZ{EBRC39a-nu|4r;gBsSz9nr?^l%Rj8$A1^O7Jo~@@RWR!Y~W+W5f z5gY~cb<2on1of@P=?90ljPP&==`)XsOI_O~3=ZnVora1>nN zLhZsF)NZg-BN*3pxlp?}2es?%)Ci7(MK09-o`c$Tc4`Di!6h!#F3myh8ap+Dqu??Z zYM1wy+7&L;uFOI0YP)O%N5NGt)E4KUw%AUM;3&A-h1xYas9j~JMsO5d>q70i9MrC~ zQzJMEu6Ln!gHWrxKfFvclIaf#j)EI=_YF7okBdv~To5cv6zRFc9(&~;)+bUulo2@7 zXDEShanby(IqKO6mZ7EuyUm5#?K!AjqSct8MsO6|;X>`s{?+Fqdwmid1$X7Ps=NEg z#l?0m2#$h#a&vKS4$T`<8O5E5sX`zU8p^ngW835Y6K(ii3_!d zb5Og$PL1Fwc*KR;qdBPk%}$NrD0s|;+T%H>oo}Z`a1=b@LhZ>M)Xue2BRC44a-sHg zf2lp=LhV_hR(FrKP>Y@E(Fl%$=W@6D=X1zxNM+igBK3lc%rEAk_N=`=366r7T&TUA zgW6ekY6M5YD=ySt?Ju?0T&TUCgW3YSYy?Na8!pt|%t7r*J2ir%;4K$wZ|9&k-%gES zETy?ndsnET9riZCnu@JX*R(SetOR5Atf;m<#1pJC-C>(xeLshohE%5MDN-M}i1}d- zYNy$iN-&npT&R7VgW9QfY6N4+%!S&gIjB8sr$%rTeC9&!pE;NP(VO`IAAEZRKxPE$v(@=*9=g1naR{37PJfU@V+zF5(H+^Lv_LJs^j^A(?II zfncnfS@aER_6gR5K&{u^T}DKi*qvvmOK=n%>_YdD98&g5?NAqLhvlGlmt8i3u}0=X zZB7nqy)LjE;X>`m9MtZx%SJF(#ayTzor7Ah3oOUDP@9{B+7Wiy2#$hzF4T_AL2Ztm z8o^i?bD?&8f2p0|LhZyH)DE}HMlcq}T&SI#gW92XY6N3p%!S&i{iSxA3$@d8P&>pf z8^KX+IAB#?CtzY728vJHSqj zVC+_Mp>}Q#YWv%%5gY~QxllVl2etj|)Ci7(zqwGmAP2SCc4`Di!G$i=F3Lfz*CmXL zU8pU}L2Z^@HiDzz?=I9X$wBQ3J2ir%;8GWAm*t>#xt$upQE<5nwJUN^n_;I$a1>nW zLhY&?)b_ShBRC2cyHLA22el=Lm@S7-2#$hlT&P`}gW5E^Yy?NabuQGd7ix7+LVl*j z&WwTxj)EI>m1v2f->?d}}ZKD1LK7z<=B)b7ne?E^bCf}`L*7i#zCp!U9<8o^j2bD{QN z4r=e&sS%7*SQcu3>uDf*kvO)3f^|1_D&9JFWadR90l*X zPw~4p#fQ1M_$Y_wpSNqC;3)XmMf0EZm)a5w zwF`Rc52rQsz0C8RT{eQT%)_JNnPr|HsqHP))S9RMk@ZMuYCYf?O+FL*5{z{pZ2eBf zzCzm;`_9ZEsUek#Mir@jTqK>9gWA(}y%HP+`?^q@orBs_c4`Di!G12(_BXYd`y{)m zPg%lxTr-mK4FpHQ0l1S&)n|)3_=@_p`-TH^$ZSYu>Qj+A)FShRJ++g=`b+I_7ix2I zPZ`%CR87ivf6p!Tp`HiB{L$%We7{!*LgLhaZb)E>0UMlcq4T&Nx2 zUuq|~P&-kmIWC&thqF1BMRS6&+N0aLnlQm3ceFnHNx74AND7>`sW5`E)Z-%QsX3_K zYo|tV6rAQl?eto`x^D=$M>CS~rUYXZDC|BI^MV}I?y^%O z7)wAd)XwgohVRgfWHd}LR)=zHcwzszxZTbL!B{oQ&BeJnG;c^{dQC;@JQvNMZ)8S3 zV3j^e=Nx7ipPc+}>o)g_%P$c#@QMK>S@OmNxAG8TD#;RZHg73ltSdE0f?uWzN6dgD z|FCjo)WBvGpr|(Jj6ckOWs0>L1fyACeOQ3tnZQkgm+I0`Oyse?uR zllf-5%miZ{D!0s+)N+w`%hgTx-h*JQN@?1C_a2w!(D#jYeG`l&DHnZTQIDiI*d-+x zYgD-WgcWUtFL1;vdNux8kGz@$IR1?o5^LPL&=&N%D#` zR&W=s5%iJNJG{l#jD;I2PozpurAp7FO1Q$;Amp9Inm1nKoM7YS*IK);rM}?3=gDil zu{|mAp8KTqUaIs#s`OE+^a)Cu*k`FPmLy+H*Ex7p<MN2W?gr%H2ErDIXjk{zFXJTdjo$*Iz*snY4mkLD*I7o^@fJ5^ekDxI4u zou4XQkSbl2DlJNtErB|x(k6LJ>WkY_r8`ok zyHcflQlB+vrB_p>*Hfi8Q>C|4 zC6fV5@oO?ssgg<$Wt^Q#-(*TEy^<;YGlg@S?Cdt*?VT#kOqFJ(O0!d?{Zpj_Q>BAb zr9)Gt!&9XrQl+C(rDIa1c_`@$Ixh9a2`FicQOPTeWG1!A(gW);1+|nA()oVP{iPhmlRm92QpcnM1p( z#KW^%TRhpSKdNJ==J)1UsQSfyDLEfNNh|fC)EAGWN{^*VPoShJJ(c=G9ltVk)$u4( zQpcA}NgXdTC3XDAl+^JYQ&PugOo_)^G--9<#C)L+gqRW!Z0Oh2X$td&I_+ReJdL1V z<52WiaLGC5r33*5$l zJ71WrwbaFHU*fc_9r86UpTclKE(kzy)fG125{e2@>Zwh$hd|vlB1oDnNIH=Pvpg1*-300&^!SyLy z3K&=7D2=vNTh*lNu}G9!MM-w9wCVv=8wOBtTUz({q+jO#=}NVgoCj4Afb^+?G~<{F znl^PJ{$Enq9sf7&*;yJwQA$W5SmKpF%z2B?OoAerA|YC(Ml@nom(Sp~BB~mLLo9WO zXecm~qGWi5Xp#>O68o`e5F4T)!o~LK5(L9`AN)1hV3{(~h*sh!{qj5!LS(9_%Q$%X zO$S~eo2qI-1!f?kHHv7B6wMdWd>rn=?L8Hkl){N<-t1FRs_M~nYHD4K=eh!P6<4!P z6a$e}UGEq+Z!Oi0D_8LPnBYj%Aazm#rvwZ^K5A4q!PJR(5^PL@PQViOqF@;XdZB5Q zbagi>ooJr}k@d@WK_?`y^wA^#ur}T+iyDK?R?8z``fPE!{oG-YxU?Utw8E1sy8YZ{ zkjUjix!cdCb+sQH1+ldsf@33#+YioG)%sWJ zs&yQ5vei1lv1;O4pW{;NJT0_LYaKG!YMtO%w7Aw`(D`ef20ak9jt)Jpb+u&@UdOGi zf32=s-_Ks_1jnk0YaOSy^0#$H8q2iSA%m^f364dJYaIrizt(Bc15xWUSnIl*;09gk zYh1dCyVz4!mLRay9z$(5cD9`j>$07hcH1F1R&Z=PIL(;fb{M-ZQ`>}& zLtJc!2Sf+Lc0Ma6wqrK5JB8@ii|u>_+tHT?m`(V7MQezgbblt%nh)FYw-DQ9)G8Mb zCIPubXgJp{T}x(L3&Bx<1q=q7SjA8g+O;Y|(-Ce>gofMgbcDuF>Sc3G!AbI0MDlka zIk6x}G)F6Hu%t#OGWlDPWae6ONP?R#<5t6+J+=@&6M~?J9}`GQ0SVz5uEsYy5S%eB zgsU((toWei^c2E3m=GQ>bGR6rmW?9mbyTQ(QcpdxXhJf@SLYBxy+>g%g{nIn36Fd2+m5>$6II`z$2gvH2{5yZfv~E*r+IUxPBUuGi8_gUpD_BMW)$n(=4@*X zqdHKMtBTAlR82)=q}Ua%5I65u<)YhaW?49cmhG?bD`ef*b80>89TxVaaFp1l6vFyanDxiiQe5>JD>3cjL>`VOHbXaOp55 zFE+$dN$<*u9F zsokro@1FGu!E$qg<>Y#>+%H(TN}zc$2@{+o`be-`tFa(bGf5t5u;ekkj=BsFNlW!0 zAQh<*+}-eCj`<@su5b*5;ay$R6`E`tH6GGd*)<+g!uO(dg=)67*B~C5Yi%7O!PG`N zh(|6BPP29o;^{-^@oMANX~+X$8^V%$NJW( z%lfXgTOYyQtq++{^IISN%s^NlRvF{w%>^T81wSnc=0c`+5^533ajoef-gsU)Kf%ID zIcHv85MItnu&9+XM_!H)Ubu*>CE`MWGcOMbFJ~rLI3MDSWf0ZEm1oV0S{`&1NaQ&M zNc1p^%ZtUABXZM{GlMf@1~8 zwsWzI?a*H>Q`?a{Rk{z+364dJZD)~-?OZfKwllBBc1*s*nvl&Fm!yW6;XPtI+>)c6 zm&wuSgynX@!dsR!7PZsD(T+b8EZj(>v8de}j#%ChEWA`pW8qAXvrqp}ur~T+3NPGhrg>5ObsQzy zSFn7NU{QO39I?DB5^;l^=0)u*a>R0+@bX@QMeS8`#B!`);kG{QgVp{gU~%)o->l0A zzwcXpFu}2-ihVGyi_1SvdLZm&nfhSJVC%mLjzx=o@F6Zfm@Z-<`fu#)jB8!(fpf0) zuhv!TxMkJW^Aa4ZCa(2^Txy*cATHBdmkVUO_q+thqQ$iigU%nd(Vz#S)^R^?>~~c9 zdq0ZbPt3bKUL$s9<8s|zg<_YKWDFX zf@9UhwT>Hj^Y>ZY`o2tS9WvPZEP`Xv;#!A6=dX1d^gz`5<2ByvVN>fa8)D8CkMVHg zcesS)9Fu-3K9I*XwD-Ed9xQW&mwOW|_tt~ue8Iv)CYqPK>%nq@V7WcPqW0fA_6>&! z79Ne!yr@0>j#&O7+Px{k!W9eWI@(8g;b|V-H~hn3af@ufQeuGTn9G+(eBlVJI4Jy@;~EIf@%Ua&HKR(C9U)&|#( zyC0V=5p!c7om!bDIOC(SCE_yQVQr9(DE86)*b;$L%W=!)LROBJo0lzo{QGq z`xyp_TlYRJ*00OL(;V#((9hv-e1eSNSif=iez8mUejy}UrrkSauyyYQ$D+mE`yvRO zyL;y`?$~rn+~U-I`zbbM; z!E(7^nU-MTVw|%g{w`RU9YL!Tt2^#kt`saECs>ZD2g_B0g$W%rFI*yWmgpJjVBbx! z98nLJ#{>)0P-tEbuLsLXBGKy!7A`b7OLUH4Vdf0Y%faCEFz9r#B~3jAbAx%le6g_F03%8l8y{jvJq=tH;x8)H7yV^9nMp=uO7#A z=X!m{bfbgwAOkOU#0WoJfUqu>x7&Qh=HSrp{Wu-S z+IHd+90e<7rYm0I=+8D?u`*PtrYrbKO;>QK&ACCoEY12%=tpD0+KoGwmjuh{36>}7 z!LmS{!zl@t$LhgytMGDSf`tj1ob_^(U^yrgCgOHw!Cs5-cj&l_Qp8q>2tru&4xDj#&OGSPn|CsH9wuSY`>9{Sz!I(U&8Z znSy2C1dB=@=7{A;!7?+!!fa&D=5nTBnVw)#8O|JeIaRPsiCeTvn&yb)6hZRm7zw8B z-Q~GOY;La@$<_5BnJb*^5hGFA;vB^}U64$Sk*EZ8j!5mt$aU%QSMC1iR|Kn*q>RusCix)+KJC*BywsWoLvfI#}iWsx)f1 z3LjBdh3{^ya6n_d#1%f*rNWP1))l_HwZZ|71&b>jmYhFOr6mtUg?A-!s!C_+=qBzI zulM`d*KlgpwJWFwu$jtsF%B;4x#9>v5Jt9%k(^%-lG)<)eiKJ9Dl;fl(t8Ah{A~zx zP=m>Szy#36h`1NEXz?$@@~5KaO1y7Z~esMeEn)ihgc& zMS#XFHg-kRTwD=ilx5oW{2VIm-t_<)%N2W~=`NmV>cBXnt>K8Ysh@7DTb5>eOJ-M! z+Z?7;;6uj7c6X}5;j$d_qS)P*F%m8&J2#{E1W6PlIk6rj4+xTxF%srQcIMl(9T_OCdN6QHqJ zvFHDdLkRlo8nf%iBKpw8><%!M?c%hb6N_0VHao7SJDc6}f}|rhJFbcg5;wE^MqOt2 zC9By18rM&3c0YG8yPqy&v-^_O>;R3$ip}m94rYhgav%miYr*XFNOzz5DtmZcmECEr zY(QhJ#FhOshsyrRGOp}SYh?o(ixpQkLh0P=F|gr*sO&WoAH$t0&hFuHaSwx$VH)Er zBuAQVkmz0!c|f$wQaPS5IA^jWUX!H9g}79{D{Q016fq2F!{18iPwv9%&JYX~)t()d zKpT0sdF?&#bgRh##m%7EJlk0A8WVg`DIWOow-E`T8ktfWP%2(BudBOwyeRk;-e96A zY@n((>JcPwzK1aKqQ_4hLE_zCU<|Be!mUi)A=N#{Hpustpsx(sD)Ax|GD)=~qd0aa zi5|=<6jai~E~VtBtMI4E!j*2gy!oUKFTF`!4R>{G!v!?9@VMb_<@+!Qp#fTjO{9MWxI^++KpCH zV>>`ITEW0Nd!jVU_oadG1mp2o> zq@iU##O|YJK)Y-9yAGNS2S&3siLuqqUMa2gt=Tek68DLoY|CXFklnyRh}^rv9@K2$ zXkVjHHvg)vq1XOJe2E(-rVhXI95p zU64A>esA70&+PZ6Y-BNI^UT5xo-Dkl_j`KJyx-T;{N6nKdOz>?Mh^3Swrt=_>uKnj zXHRs@_vYEtdwJpg#WPU#VDR*ppS*JayS$f`*XY5Ozj}Y?O2@o!_%=@i@9EhWe+Ez1 zZ}o()Ubvx?{k?&kr}-Y&o{JyN!n0-be&*RwptrvKK(Dnt)t}-|^`=zh=}+;dmZq#- z2%q$J?DW@RjDvB5CD}dprCJ$#$*TQ z2t*okJXVoV(omidvlWR%m9as=eE0A6td`n>g69`YEv*gZ#-ORWP=>lWE0a$Xo~{R7 zuWDxiCRN7j`ozaJ*aq*r#+}+@i5vfrxw`|`zjc%=7_a6fWmmdV_V!~y)e0wngarcHyQ zSgPp{Vtw}2AEY#i{s82pKLGQz(wop^l(k}vsjEn?ebi1P)8yM>DebUO!Ac7)g@XiV zcoS4uEOfLfW9?W0?856*z4l>>VCRYvXsoG$w&IuX7hzsrF7X9qfe>CRbWg?Ct(%$c-D5^ z#*gxXgRV}+5B=!(=+ho&SK<%#9`@Kr4fXE#I#%TKZm(kypSOD*;BA<9g9nYGe2qsf z4KG~nb*!qSfyt7%I6!4VF=vVKq&ZT-1a1qJOBW1JWJqjhu)8u=ODSXZzLl|>C}W7S zu^MHpLLs3HurA72gHI>}Q(7*0E|~S|r}VnQ^6zm@|S{nWgFw zRF8+Yr@S&kIf<-Rl`>(nE~B*VF}L8R^P zi)*e`)viFQ5d!dyz9CjB$dg@pNP*bj8WT9hC{96l{SH-_7{&nD=G_VT# z8MLth5f3_3%_|DzqT12aqHDA2p)XZENg{F;+OCf2^lE!klG}hSN?HnxsDnm=7FFdF zMuZk4MuZlYG9vK{Xi+dOF`_j>w8~0re=1!!b9B4kO|&9gO-B=A`r8KMacG$c;aY0T z2;oeKSL=9s)DRnaRztP=q0=GlX`qGh5oT+GGXa5osoIhP$>q0kkO!?58Ny9Nry>y` zI@ePC{z>8}Yj6^PuGWj+=wBBNvYmm7AHj&~u&W4~)(G48glAuau@fqA1Fuun|C*}$ zS68*aimLn->0O6;t?bCw^_mg8v!*e@jt1B7<~`EXbXXi4jP%*nmkKMb`~~Se`TzKT5}XG6+B& z3);21Ff~u7I;?Pj$IxYX;W+jb{?Nj{(!CBX%#iMO!@|*CM<*w43qTOMB6 zTe@Z4YHQnQdsl5K6DZKhs$QYTHrtY;%~C*Bb@;GY)Mpf->rcaL^v3r^Z+u^+4xv6% zHK|5nxEI?t4(miuEZA4F4aQ_(wYD0Rb-*e(ERzTXZG0_;*Q75)vCcI&E711v#Y$Zg zsbI4&7{TResFA9-sfW&|y7q{|T8g`0jbL+8eyFfgwUeRZteGQu7MB2x?1?XltCJ%TO``YLKkzytQazy z$b!=!CyHgVn~-pVqj-iB9K|!7V4TTt1M!H273?e-R-jvzumXc@2`g4Z6%6zw5SW&c zAHsPKDcQl>=9UO&c%arAFmRO-aRbXTB9>VoHSyaJVoYq%t|TlIvy6^o?C}g!GSp6o zHzoeCc6!NEXw`%#M`!S@>_d5G?`wF#%M8T>Q9eGcS6!Q3@T{4gYmc0UKX0xzgMEK< z()X`|4U3k(e{glR?%g~rXDDL9wdZ4)&^EuLT0wq_`WsSzTO7ZDC`iK%k&kTBBp^g0$ZWG-}g;c^`*!*_~lpDQLjv~af9 z0TUitm=9C0V0Z1Z(cLPs?$EyeZFC1#u!h0W$O=l0!>BI!k3^lKHXMA2)s`ChBXTn% ze`%o@hnvM6H4}iIfsG09xY5~sw}*GsELRnuxR@htT6u0SGc3dgGmvgZM2w*iTIlsQ4}(CK}JpId{42Z5kYrOw0?Sm=S_y4jyTCllE{lfojxf+Cwr%oa4boz|s%#I;woasnb=_*~7_; zvuCWZCL|ez=a=yBKk)C%_%{^))~euGRc10C)i+30Uk?LAM3kw4VLRUD#C*-t5hmu> zS2aM(8dea&FbhU1hK0yIb4g=4)V;nq3?{(~O9Z8Il zaYsTL(!>A(;{gPRAdMgawKWPJ5jolksGz7(dC5WKCE^RiQxGKg_y6XcRkdo>>b<%X za_&7tnw_dOYu0>x^Lu~aoOMam53}~zrUsmqqnRfwX3)gjok6qBd7uY~KDcKp<7Q9) zF(p)IV%4OwUHyc#0i!#g+oubY!6|kF`1Hg!_*Sg5te5{4S|=N8UhBJ z8nO!nGu;oqQm-wjywDb6>QDO5183m@y25(8J>BK0u9Gf!d^=C*Xu%;T>amm4t`qe= zC+e4;jGTA6HN>_zxriBoU?T`A5ZJl>b4tkeDDzEbhcm4tY^pr7;#-4B&E%KHz#eA2 zl2!5cF2dxIUBbt!=@YS!N)wH4_0RW!FU9?qHwG7Lq26Pvt}w(N4hUfT_s`fETo^nq zPScZaY;nG+gNI z;~y)q>6wFDfJJ<8Vh)QLzfJA11sI#QwkQI+@R6DW{gxc}rIEzxE-Y>xhM>M7jhKjs zGMl6^#>$6a3@&7tHNnC)z#!eK6frmbY6hmwC!jH2_BO7TES6w?ATr5p4oxJpxSW&B za^jd}TawI{6XF=5%mQ&vvzvdm0TT=OAR73F!tW*UR@ zQV}+D!|6}Bs!)|(@zR99>OIb1W#ixNECOH8O4#9Ni-vZ3#zHX_VVxtA?OeBs$qL&PR_INbsx#dOX_(H%*Q#25$SHBF{sJLq~y2 zjsgdc0vDWbsLRwQ2@$EctaQ!F{9r@McUe3sy3RMx^R?D@!WaD@f(16e}lGv_CoG&=un^Im*u2jlqa^M6Zi#P!nt_ zV{kF2O;61Dj=MP-6U$Bz0Lq_5zYeiP^lK#)qIK_$umoW`W(l5Q>{C845q_O_Eii;x znY_-s=JN#5m>IHn+8JZ+s%?=`sckYgoaWL{hdg3qF~@zC~; z)S3mseY1IsDsnCMCk)S~=855HEjrOzY7d!`ebW5&jyZ}mMdCi6wnAL^fq7v9tloS@ z^la7(M|QeD`62Gk*q{6W7voFO_oYf1gO!w`b`ya)Ck$;W&oTFEq2A3jPgt?Te3OQo~k)uBrH5Ks%YxR?nhl2Y(CB{hgc+qt!lNK+Kp}_eE5l3;M`=2 z#ke$@I9)|ulQSGpucoUYFkV|APj3C0n`289J99&$F`ezqYMR$-AdSNJtTeB)(z8qx zJquFd4@6eWzP+6-aB`4Lz%8>XX1rz#`*~a{E_20N37gZo9@j-%= zjKbtFUKquva3QSu%<4h~cq!7s=U|J;-HyrvnHo1BVPy;ZdV(mJU&pQBOl52P1b0cP zEwALHeWpPlW1_eNx3;d`Kxbq)n7fPC<}$KPv#U!B7KR)%xt5(_a^c)mn?1qS#N{}c zx^|v;orL0E5&#H@uSGrS+)s>lOL**yMsOWSsjG0z#nGbi_7B4*mjb^VkBe1>ZCw#v z!D2368DGxD1Ub*8XdQ^2P6;Z}Cb`N$oaVMfbmf~$w(uGqK@wxjtLSy&0?{?2kuFz_QeD2&c|)J# zoS|2u(xJ`8*&@m7GBnPVWKWw{I>)QWU$JEu(;YmSoExSf9M>crRj-@YI3E7$H7pextbl`;6v)!LO-BfuG9ELzbEac*x6cGHpfqK&!LV0yxR zTfY;AafJ-f?_f^^B+G?DSqKoOEwVz(JS|Pn1lt!7ePR>~S<0QTUFU%yPsAz~WDILq z#~i-z(jr>olM2l7?Zz=tj^k)G6bKP=C;Xa8D#i8mdM_t-A*HraV2|1pXNs6E0XNF=WZcV`f@y9* zNSfQe==^l2S9Al`izJO8jTClDZCLRcKA<-lKI8M#Gklzk>~Issm1vMH}xh&GU-khaFY`*7ajx7_8BBuFyOY{Z@}9_ zD3GY}^KKy9*{PCs+YcID=WuQXBlMA)hm1a^#v-kj<{~4_PbN3g=9Xyb9IV~1N26D?dE(E{>lZ{vX+D)_qL-k9TaLFN5(LghUkDklO| zNN-{@;(#qTGPg;X?2s@y04Q$bTo>V^LKr3)5Qtv6U$EHE06nzttOFHm>a&eN%G{k@js(Ut=^Tro75p^?t#PtmZ& zhn+;hIcE+?=@2um--X=rUCb?C4Dugv^6&Zs*t=tZ?sO~3kaX~5jAB#t2zi;RSEz>e z+tOIgXBs!NuBnnRuk1W?G{Om#PmXS>d~#INI%by3 zv=SH{Co8}>v6oYa6X4Cs(3SgUR2OQo@N}w|yaTWPFg#o48EGjcWzBjBU2mApS7eP8zPg}J?)r}L8nnBFnEVA8rp z+y9TWjEU_veyO5QlV-RNNnFn-MW1%8BmhB(4{%+zsAmvxDbLJl)Y&b^I6D_!P5OB`ft=>G?<5x)?j1#3WVEX(nm+%IGh}@bD7+g|5h)59+$SKl)Q$d;6n5(iM-%@9Mg9 ze{`R&XP6sOp5jQKolDQ&AN{(nJN8Gvs_QxXqvN{5P=8+6#r@G6bRAxSG6(x_T{S@A ztRA+3ryVznT+V=u>U(iRk4ui}N`j@3k&UiE^yB3`Oz)QlNOHzVX8m_!5wSBi<6n*q znc`otEZKeWn=I;LdmKk#m-aZOy8f}>>-Yzjq9*6}sFQU7HN)1Hn}b}MSH>4`LF-7l zoOd934wt0^$uqb-=0JQI7tTe!iAzI=ibUyI`;(_}!7qF@m)%#!Pvvsv710KlJ^SNz zE<5(e7jap+GJY(VomW7+QHn}%K9|w{^_@}C{4Gy+b3r)-?g(~){_3XaeUl7wENC`2930NsCCCZV-l{P#t-DQED1ZEwwX3I z28pO3lJX<@`aoodxj+K#v@vLi1hjRxPYi!}A)BSb!8l2_E}mfI%H5DdXib}%*xk@d z8>4>XVA_Iu{rMmvvsAAm4VOx?d%YsMy(58&sflOg_A(HZduy2@{tl0qOTnV$0n~?! zfe>iIfEXS1^UQyh;Fum38B!`?2;0)7vU_X&Kx3F3L;&=4y53?+%0Q~GrL*g+bq64Y z6%UYm_l$8$Ts>&2s$jkZM7e46Vw*F2;W6owot(?m+nh){;LsfCSk*Wd7>Kvi-sTud zytgrw@-<+%>9W_v1`I77=08~SZT`n%mTVHV?U8qhx($3eDaYsxZNHfs5ee^j!(?#2 zo_>KDZC|5hL{h)~V%y1b>|4=^M_*|*g>=jO&4qSVq&u|sd=Dh>?o^SkTOgfWJ%a-2 zx^^1VTu9dk=?2L`(C*uUazRxbie8rGQ59Qt=(cSN-L_Am8-AcFx}~OetwUSzOBn?P z=6BQK1lo7$Qm4A)5z=Ly>JsC72k&vA?rp52d2}4UpfGpS?Y_6AbVs@0;ep1wupu2d zG>5Vb%?HP|f-4@)SG0m2%?)wHIJjx^VjJ`mnztO9^F>b3yyei`^Ou0;5F`VW0^bsv z2b#ozUL-8yQzbm%hu8wY)23d?5q?bwzl_eaY)Fr1DR3>OVI(+-)G0JorHSPU9%pDz zw?eIZ7n9a)3qtu5j?+5!nyoNjc%(Z~T3J17(F=|qlws5m?*KS^qp#n7P!!zI{TJ*$ zyUdX}=WM49T>g68)?}M#Z+f|H6zZQefLlAeXcHR6VhXj9GbBzIzt7fhY$X3Yr8C-H zL9LU&EZlvwH5mQZrIOUP*d^5>IjZ{E!BSm!;*>v1U7d2c)Ix)I8PmJyn9#vbTYJvic zO48qr3gup-8n{sn7*rpYExAM{%b{raRe{9OEitjhTVP!MYmeVD z?%x8H_jK3O!`?G@gNCrhv~w#z`?u=u+T*tlFS4bo2g64N27ICu2sI4`#0&#E{h1r` zFF52^C~N}x{mf-?Fm#-dy=S@c^ON!8PU=33Id^S-*j1<=EOF;R1FwA@NoVzwnxbmn z_C$(Y8V+sC%LyrVX?wYsec@N2?@Nc;YQE*|iqi_R%lx%?;k7HB7$re}4gL~osp6fD zJrS#dW(j(Y{fQ%vFJ&Gx8xVLy5>r}=CvQsZ4%N&3b2X+(+?rZT?UMRRTnuZ)jI^x~ zE@Zi!;z?`9jKqc;DY2s!v{~_V4*ibNE*NRMC>xL_=k?nXWTdFGBPuIcKfAE;@swCU zvBbdo!}w2rH35MpjzB~jI+pIFp%)M)4Hx{Ajs$B(K(u6tlmtYJ_!Pf$0nrKqBIRJo z0}VixCJM>gvUtVFi;EU=qP!+SJm+gN3Fe_f8d!8`{A|QqV*deww*|P$GkOXD3!spm z{cQ#Xt1XmZ@lFu{T1*dwDVehsLds!`u<1CN6A%*m5JJi(5DxMOkqWFeWaEjxyhOER zbGjoml3`Ju{0SqB-3Svm!nh|EnYM2oBQ2kmlJa(|eu{~4tj4prkBx~n(#0yWP4a+w zCgUf83aG_5-%kg%I^TZOa_e@AXyxZQ1oekew(QtampOKf-|UTE^+%>z8hd%U z-Dmr#1>;zlm{Lb-wBsUnUV&!q*zyE@;Ofox*%Ra2ED3yj zf=6IWh!xvnP0WQ;ee$_{`rb@xu+8OTb|2;2 zbH8FnkeSR0qt?0^jX9#BEQ_Y*vNdiS8HI>~c5P<+{0sg*D`> z&UL*q*R{%AF(zw7<0><%kp-8ZTo^t~Ng(NHdVb)uNF+&u7)2C5g#?Jx#DzUx|X?P zI`T|6(E7|}m_|df3H#N%F^;7Wu6wVgz6^yylj3B=E<|<7>{C%nstI@aeJ|qC+wZ!c zO45I+K`wRnwfDZ80_nvvSlqtN1hsB|l2QV$9(mupqv7{Oy`M_rw)z}epHBb6xDWRG zp-+GOH~;)?FaOKmxB@nmrIZu3K#p-_oZ}fy7$$kEalto99OSTUIf4UeDT5!aT|o@@ zR<=e%oYIW^V;x;Xvgc#S9_7{*s7Wl3@I%xaey|Nd#a+H=E6bSH%e#rx4xuTC&RlwS z3>xf$nqpPl#rD?Fxop|pZp)SW>zccM!^7nWM~=sPA^|4b!KnEvin`psImUBwarEHr z2QB2TIpgQp7k&QrgD$2S)o04onsa*W zi!4!p!s(GP@^C9r{?QPr>%0;A_AP}AbQ4x3+g4sYIAs`3oWVxJUX2*}700>j6COl$)@|xH`rc<)GGS&)5jc(+9 z!F~9ec*GKo8YpfV$IACOG72Qm?oN!Ydu`0Xb$628C&z};ba-rFgE^PXGK1RP7!F-G zRw`1VW@Lwk2MD-Oo#!H7-K}m8FEM|n)D;HS9Jh}j`dajSve97JmMf&!&*|5gJ_mdg4}#QjYu`628v zF$aWKa0tugikZy}*Z@UmjEx59^0~@EE}X()9*tg@wfO8PZoq~piL)P)8pBMwxEfU@ zYsu%xnLt+wowMup*zRu8Y8a=@o~K&?6x$TZFU{_}jU16d!{vfLSMOvE0;kr)P3}ci zzuvt_0-v=dEVX89+DhE6ReM8=6=%=QU#@hk2n-=*Y+}MHC5$xi2vN0i4mP%aB3r{6 zzkqy4ff>8Vr_uN^26hOm{WY;$8uiXg!zVBwKp?NU))r5oQc_rB_7ppSR#}R}3nr_h z`)Fn@A=Q16-{S?qL->(}UjkW`sG)^lwl7XDgS^W^RZ2I&564y7hKWlXg8`NJ!7?v+ zggr~V)PO&;13scv(*dQT_&GZOkgn#EEspWJC510VNeqm$>th1)nqw@o0DhY5i1J07 zs{qY(Q99t2O2O|n+PeAZWfDF;s*c*#Qy7>UHA3PFnb(TzB0Z=mT~5k-FNRbW#a4lewY*- zq0*&bhH$7w=t#uVw>Y9blT>wJ)5z?257)2W^at!%O^ViJoe5!^!9 zuvfJ?CXvGU!y=19^}rt%`TVNAVMN+TB$!619Qt+ z0}wdUFkQ_;PhQ;?W|%q+eb|)Q5SRtI%r!j3O7Hp^>GLw1Nf=a9YbX^}QIB zIsb)~Aj94FRlGnaf2P3)VH!6`9ahqo`+!Ww$3LWTqi{%XZ(k89|6Y0($brhCuK15j zyQf~C?r+SVDTFULXQd+T5A&@$7!NgRpz8>B!0&J z>p0>lF@R%EP2Wo*x4+s|{tMqbS6m+JM#{D{_1=rRar3q+qu%;=8f8zphMoe@HCh&7 z%t|p&F>(;&uq8diX>c&|kG&0At*ce)`K->4Y{F=WYOYX2ss{_5Ha(-k0@ddm(N>Sd zPp4tu8|~%&U6&;SVS<|By4)_bxd}(0x=iR2yt#TnsaO2eWm4`^nWS`E>XO5ng;5{@ zD51`e9ATYibk7q7nc%H9W91%BcTcIZ(yZ0I`yDpp>FyEWzI*XgkJb5vud=XQ0I;&b zrvXeUDq85y19@WCS(`M)qcQE zCJJ&4-9uT>EVXL-#dNF5WUCM`_MW~dA5;lga5kEhTt~8Rm z`Js50XP7mZUZ94s7NDOp9>$3mti|Fh1$BDyDfNQ2gnLBkK=yo|O8MvhEN*o8Dp-6Pydc2m->&}#fq#R*|Lzb-anD5=N_vv@&;ZVs!f&!KIwuAh>=CE?pzJRJ<{Gd_{DXgiZ=!a=I!Tl`f=KzbaQt%%j9O4u}O-C4PCK{cIt z$$>Z_b|HTt>Tqs7VxJx!d{cIvSvNFNn2##fM=5QDj;G>ffdi_EX#?`#%gBw!};AcIlPXX2E1C{+yG|g7edJ50zt?E2ps>i+VLdk9s`g)H@i79 zC1(!*l21>BlH1)X-WYr+F3%6k`?qIN(}(f**O1eJQcqv6?@7fQgFmVE^joufdZ5&k zutR=?ayMVA??%NNgFl_Sn?EacQvx07#5w5xxxObA*MRO_vnC|ad8Oi8GU>K5J1cZ! zj$IFWNN18@7^_q;qZ!yqPBYve9)$7BLWd&oe?;&j$1A=%D0ny+~dXbrldtloGGuvmN;*G)gx|y-T0GMIOqcITugQbWk zx$Oon;P4*`VzEwe2NTg(C$xKb@I`EWb)r`Z{m}`|y{oNwV{onOq(kJwqHuIV8WP=T zKyAM;WK;G3qX$~E9{}0vUz>yPUrqyj!NUOv3|yY&KoW*o0d6I7;V8+RTpp|^7Zt;j ztAzQ6S>*D{5@81VKd;oyKh<}m;*9}Ef0Yj{IQx zkf^v5{~9HytvrO9QB$r*Kj1H)#())!69Wn0-TTrPgT)pre6N) z5~2o>u{}Nq*=Os!QE?4D{Pe7~ok0(yQcr(f-;;_r2CuG8Xr^KNnt~p_cp8h6Y>h>q zt{3(G^7bd*JY`~w-HHPND{;qQ))|+NZnO| z7x602{mfkx@#J%`P<-JsCBKP(LBtmUTsVNv8k3-apq+m9v67;VU zdfY^(Ac-vDKR!uGSyKGYQ`0O%%=YxSJS@oF*Gy=JaO`Md)?~YGvV_u3eX`*H{FD96 zNhhn!Avale!bD`nGQBmNUKlF<_i4MI$E43&D}{5uHmFe1?g%AnJzFQUik$vGZ5Ywi z;lW>dT(2lBD&81)B`;T4UJw)(pswZFuHoP+e%UXmM4-Y=-mAXnGP{nyDjwyrqNIw(_L5XMl3!y+M z!bL2uSn|I+jq!K9R1wy*^e*Ucf}IcMMwBIdFt?dB>gD>_n2QTA{)JzmN=#M78v_o7 zm=x>3G>i3ryhg%k$72x6C++4v)ox}wXn(iVO-bY8+va&sAFiK}iZ=%DtM>G!Srht$ z`kr*6YM9f9>U&c0#^3|hp6;2|(+BH&($^qEPamxBNyQt3k5zkm>#UyslAb)D`P^wB zT`xyEIqkidrK*X=^A7uI71Y9;P%lHjyJ84cEYuHp*i`ID6>ki_$18EcLbXonEY!k! z3|^Q<|9f(1efBhqn~Mjls*ShTPj{!Q>}I6H@0I{r|hR&mS!H`3LoVsu%;K+UMJ5^?7&E=MU$-U!ULI zSUZmYQX0qa)sI8P8-t&$j^kHnjpM&*97tWJ&o%d%{?}4Zzgypvim}|PJ^k9Oo?czd z_($`3{#em_Amr~ab$x$**DA)DQSEvru#Xj8|Fme@t@Y0ox34R1Utiq*LUH>`#qBQ_ zw{I(M-%;GYv$%a%ar@iF?e7)0@8wo<49yGOIgOodp#`Z;GD7ng?~wwIHsffJd)HG8bwN%z()Lu{e) zoL-jmIql`v1lTDiXSB0wNhO^`Pv)d^#mCL-oVS5_>dw=AX7P4PD?u%1}!0Ba`CP&8`6+BqIdSZa=k5|*0dp@gL< zna=T0P-5U84L{X}rb@lTgP#WGS|FSq{A(~(b402*pDM0LMi2jZrz1z1jhJGy$kD^) zH!2G>K^b9z@b>$u0%s*QPZFdy0G0_-+yBZ0$tb3#>Tz*ms?<9yfo8bqhaaY@;(V$& zpxi>e!{MT|eWpJP7d>2l-KOf-vg$2UNYo8GaGr+eJSAt6ah{Sh$=)bAldxFaL?K&0 z!najWX~IS4J4LE!sU0fOt*{7gl>4xRMf}bgp0J4DIm1I^bKQcGAF=P*v9C#o;h9fj zv4mg{t!Rn-(4m}JYSY>7cY`xRu!>JY#oEYXVh8>X)bUCD#w?#ikqW?_=Ucy80l);` z(lh1(jVC$Znii`bR~U66RvFA;shEZpp0c+|V z9{e~1slgBx=cA@+HxLvX(WJ)Cx|CQ@fOSK#_LB7%E2Ey^wtmz(e%P43Wb~cAwetQ9 zjbdm7ruWCO>>CbZL-RFS{^kOgd~=u^d|7(xz^8PK1IA$YR*`Ty@u`kVEWR`K+t@0o>i zQ{e^kc*rTX!!czXQDPG$VBn`iv+EG$6DW39by2?YM@2LD!xSr#t- z3b{TQ*NRgW=i{dn$1HzVjStK-qN?|Y}iTMOI&7mM3_i`!o-Zr@(q{tmZZ$eOpRG=fJ`$bP&Y z?^T?KhH|?7Z?o{eE;RJA3f$)z^<->2SSJ%|81!*?@IUKEtzyn%DSJ0yy)#F>&3iW* zoaYi?{nB|xEov=gc1k&b`jE&9$Z>}(=5A6A4xzb<8vK!ZyjO8Plbmi*j_dKhZYD3D zXC^Fdc_uF5BlRhuA?^aBJtLXNlMd*l-D0_%pXa5A^WsWl~!>+>U_OkGS_-}-gNtE zjJjgB%rpSrUq5OUPmlV}xkl}=>;;ukKPp&udCni!=jRXatH(DL=P=0e?T)$d&BNd! z$(oW>se=J@wuKP`fBo0_8k$yZA=rnf+J0lco=b|=q-g*89PgLRuSbB{lvKHyX#YRz z(O$*VM#wi!&jFugo#?xsd%!b2KyqW%i!7 zd^)*{tw5xTZt?bdaH=@hsdKLX0n50|qMI82nru{Dt1Z^H#?QX7C_s&nb8I8VmRWz`pjZ~Ov! zlQyVCv%FLdC1d)jJvhhISjE!Bstz~bzS+;X6}+;=h7nI zQV%H==T=t^sn5@XRGroJxATnuG`0SpujeN!&PSc|lYf}SPwGbfH}j0TaM?=`+i?^* z)IlRwUu4!uNh=0hQA}{AWUZS*QgOF&&>=DpyQ(=eAaqY$8xT@)j>mbp^X!v-8X35IZ3u9=gt{QkMCeRG!NHq7MpUAND$XIrMDaR-*FY*F{aRFC zL01W>hwD$U{PO;Neel@tID(4PtN!Lv?k9%U=L4||EoEAo}pIJ z_vu7Ka$YbU38}=Pe!70WRGcGu&h|bvYrO(HD2ugE%rR@k+BCe+KW%t>F=r{yB}}Om zbEk>lY;~)1HmG|9@(Uhthn^H0GYV{%Tn(kn}D;Qpk?Kk zuzUuUObg_PtpF)4n30}Tbu%VgqEP2iso{?m`ns_eT9i(6MeNNH|CtD(&-@8@maVs5v1~v zvdvtj!Pnu64SoV!emC;y0!g2W5&B)Vv!HZ(7QZ;xEc_BWN9f5FLzZw_C4Jb@^*7JK ze2nW>RMH9F>D+8V%(J&72NGpExsK^Lm(yGxj3?D152e${^X9pb$B*8^om-Irpe!-W5LY<`huL@3t{tV* z(vKKQ{o2(@zc*B1Ka)*Y5U^l6waj+E<~zk~Db0tQtCfVd>Y44ta6Pas=zEI5_RfY= z0QRM|z@{`GeNHHEoD0}~^tK^(tIunAF6|F^`2Q ztw`szG3t}LAWk-lS5)4w8%0IlhO?ngfmM!bF^JNVs^r1?s#zFRrz-tqW%PAxP$%sq z-~u?ePH9=RWpF7ic1X(98IqLdhjBN)jOX)D~kj|p-IEEw>JBeee z3rh8k5woE4E?zyWi=AKvW&sXmu6ZhpKB*phv2$gndZ9G;#^t@dW>znF`-m1T9{qQ@yH|uvOuU^A@ z;kwoHP;cIAXm3{id7oG7h2Pa{=qHrV`W?!v*MNs}UjMa`bZ=`spKtI!5anNo=8NpM zw_NFa?9|8Uzc>1j`@}J4Q0$HV*nQ$SrIzL6kr3wh{MZNA!zY3DwPzCA4n%ySnw^wt zs^PvxoanMnj-O83TG!`w6Z|Jspdmir%twh)v-URD5Afii>38;g`s=#Z?&_v*Rhpz_lUvL|XfA`?Jabu6x z8^JIPpHXfw_pCWo_=iP#u0oGd z=(bygqz>83voj1WPmNPiW=+ioXMmra+Uo?Moi??TybX3v0i^`mnm3b!9;j0v!#0>c z*f+YdHOb)~K8W4@Zl&h#Wl0Z3&omMcnU`l?v#!%q&!SQ1&~2k=%b`@3zcdWU&xUc^ zEq1W45H89-(I0*xIg8fIU#Ql1Bm4a6!`DmvE%P_zZySHx`P;$Y3V%EK+r{4*{H^kL zCVy&cH-BgIcMgA#;qP4j-~*!(e`Eg6<8Kdt=ks>~e-}0cV9@mt)CPv6(K9&PczBu3 zCB0DJ@VuVP-TY`AAvP&1iIJy29!F(tMGa+kEQAq2UdHs32aN%6BIf4kLOSNSe|?XH z?qke?#t(Be|EGpY7Ji)yr>l=pN}mb%2k?m>tK zj@|92xjoO_eu~>Y?)H=1p6_ly!R-aQZ2@R)MQM*>lt_GxNw)2( ze*(2nuz$I(0RCmV0``T)6?nfySAhLuU4itSx&r1O*A*Dwp(_A>k*+}ZsIGwa zc3pw%3v~skFVGc;9?=zWK7>LlSbj@a0Qs-F0>y9Y3JAZUEAaalT>;+Lbp>)?(-pA& zv#!AGtGWWPujmT2zN{;t`jW1|>5IAoq%Y_Sgz6RHhYA(el&*Oc;c1=kzT43jnIG!( zY(;pe9XNLnrj+|H{K|b%cIoiqsF!{1uKT0m`P@_#{@-6{v~P=_zaXVw7GJ!FZF6`g zW6`B-8gHT5=j#t17!$(Eg+cdZStpr+A`?%`8bX2ZZ+*3O7FY}OR#f~`?%Ta=15jT1D0gR^PFy{ zxZvx$(I#Z+?m z8k;TwS7y}2RAp0MoyLc-g%9duA)8}9K5iJrHo@dzy66nKwat+N9bf?sjQd(}@JkC$ zOmD>IL0j*%JG@+_tD`|cHN|DFvxmIMYvTp`YDcQ$NK!sgBB2f}mw*g>ge*o(hpScU zo#h8d!*m%4E(zb3Qhv~4GhOyko}t@Hi0N*h$XH7bj+O*E|B8LbdwGBIUEuQ4ex|dm zLr!583ga!M;PfC}7=AH1i${$6Y)y7Bgok#Cc8u`MGs|A~?9FkH9dP=VM*x8U0LeK3 zaG~4c;aGkE(Vs4}=+vV$wE~qoC=D4`Lzc8az#th-SOzV>#s$iZqJ~ySU)a?du#u{} zPk{KHwgR8N9>G9CF9mOyN<&j=43a(@1tYibQGNIrh~_<6G3u#ruo#Dhp2opzVP5Cu z%(*KH&PE4aIch(@tChgWcJS9T4@P3{D+CtU7Y{E9$T59QleGk5p})1HKW-RZHAV9S zRL*<&+S+YT&GAmnW<@hh zF6QO&O2+2}8daF3D|`>65hpAUl45v?AV!&nq#b+fc|a!mt$4Ikr?mb~JX(d=&t*5L&E(wRed>yl z?((jvt|`0u55{mt_@PGLAva(akIoPlCMTI{w=&f(Q|*SS`t{B_-wmh3_xO$&-nv|d z=lW*(*V@FdbmCX=x>lCMzkZSto`@<#q+kWM9|mbCnLWjZxYc?Xw8I(!&5p!UdEL+s zI?@ixWos%U(p)ZESDD$nr?tLW;#Wp142kR&X+TfV0`$K(d6#e?$F6|7UiHW^tTj=< zbX>(;(z=RF$zyfUU0gZSa^+0TJJAh%OwEA(=#V{dd<;<49I;y~khu$MF7 zWZ>J*f|jxv%5sE@KP_G1Gz}4_rx@2ou1@_gm{YQEdLmF{KGl`uxH!{0(&kb8f{oD` zh+6pS#n7-VxzQ%6heNWfV+XvN6Il>9SpcTYUy9B+MCNblv^X;`1J z5;pXtv{Y(ueRHgY5j`m_7X0O2_zP#5@o#VAdB*0F3|mxZlb-8mC@Q$zR42GwJ`ze8 z^(ZY+ixS2p@hMnm!4fNS<~>(DVH#~bJE9z5^+7@%}s7l@TbP*F!oj97mRdY zeAAUM$^}N4p6j_LVBFidT+s{j!>4M>e!yHu`47;3oc{pV&&z*+;5I~i2duWy@gtFu z3Fl8z#2MNBc(okkrd@;h@clfzI2w-h85zO(Tup9~i+BJn?BYkxI9mL`Y3sPd3O_(< z&nnVIyQ8l&GVFn7x*bs}E^kXltLHF6*W~UTz-Q&aKeJdE$9*BS-7Sb_EO2p;!X^X})u0|p?QZ32H@2R%$!$`*w>h=DRjA!9`sWn^e6pfbyLV_g zKp8EEUm{ERxR4Um2Ge5cT-RUgG#cpIZRy&dC_=@F#u{s^4R@Fn$}nO>t^z0{79Pev z51VhExKWP~BsxdLRCUWyM5`3yV7m%kK$zh(^=2Y%8%0HyBXH0^24i2Opw6Ke9653X zCxYIyR+@GWQ0BAHl;hR(oJVoKd8<({T=TnHb|{a!k)pt>>n;fd1MWEowqk#1uDF5JoJ9 z$*8lgW`uP`>`d%lNByi}rOK5lEF%P>S_=Lfg{iiQS`2_^P}nCg0pMA&%g(o_&oG3@ zz$GeCt$E}A5FHeO68eZ!vM=j z(&vVtkU8rZic@*E=%4!*dtXfwIs2g4)I5D!hinJ9^yS^wiFF>$hW=`i(C`HFq2$=4^DQ6*EH!gp#!}t*tHeD01D zU<}gGxeVkB$%K?P%k0F7VfO!H2LPcncAH4L9w4oy(F z3f%TYz4t7{?b`yqo!XUoJw>Fc?T2IGI(NX=GMZcZbi8>c`PS-T(w5CLsqew_nI34i zBbucYFQVfy-L&IyL;49naGvrV9#6PBZb~k*?8uS$=`@`8$R~kHeO{L(PbV>xj*QIV3p)m2lwsYgc(~qzR>Lf$p zDMJ@XYzW(Ghd`-!g@~>DA?&o7PY*%t#ti|rET4LL;#WD>ukUiX7TA<-kS*(H?SYN% zR}1VuEZxCn$SY1YQ_pF~@iXUImjhURneThN$bk+}9>@^>}pD3-D+q5se zcorvrvf4~0+r-fYZxIgoCbTT2VbwL^62q=X5 z%9)`~&43w!@QF_0+ju~5crUxmVX(@i7Lc@S_#Lj5@(;vuLyU0!x^c88a+CH6X;XYV z5^qhj7>)Ay(GxIFIAlu7T43KzCH6&YNjge=g<%WD67>`9Qap~4?%q!r%3g!vnIM2g zOQ59LZyuq|o%Rr!BIyKElrS-|Lbbh(RD#Ez=t8=W(&ZSu^9~no>px!UNPTXRYZ-G* zG{XmClgd!qy;v(1advN<`G}%DHkn35S=G=}%98C~wBze(L{Eo=1``dQiRnTseiEUT zEnbd&;@9vgnr9dFO8#WIt0!Ca3414N)h%84Zy4az8phds<4xbV0V2=foaiyU@1d1y ziN}e{;7nWwCu0YWI5(tm3#8mC@zS7S&(LqAJm?v>O2jOl0a#Sjd?~^+fk6;v&&bI^ z;1-~&c2pM!)zi0(VDxwF*Dm*VH@)FYZlp!hD1kj{xTH~}o$kp8WsN;b7C+FrEVb00 z;7YNa)7VWy38+j%pFnC1on_{rL^}?0VHh4lzPvEFeSz6a*1sC|`yd(b;y62u?sZc z8;@bwgLrt$y-iY&(L&eg%TWv-Us2DJqn>qR z=*17H$CDCIpdLp`o_hFU)Wg*>vE6K`6(ARe;UVP9=cOL&F;EXb3hJ>@mZ)Q0SS66a z-vUo^AcFOU7WAA&X_wyfLSiTu_<+4$P?Hrf{lJ}E4Y*m(Km~>CWeFJBVOFZF@wA1TK>4@^gP}!o!wP6uVcw_E89ZGs z%}GTJ15+{7^0Q)LF*bZ5Nk{&!oes+tg;{6Db1sA;pk4<_h}xOM$+Gu=7A!&fXc@HJlY{u z1II&1^C0>tcfzP+?vPPm7rg>^!+KpjB!lPr+tc1rLd$+kBdW;m!as#Db+JwPgiR=G zZjpwIUzntX*p|}@@D0aueuf&J%p;(fjd->e-5sN}^6Pxnd}X}p{QyaJp$dM=5(MRQ z=pTBB|1C2rLNhkP;Vnl;m;?wn8ST*ucjnHwf@d6vE6GLj{IVd-5mPkmvj4`u1a=yv6Pm0@RPrI$&Qc4b8`n$7xw2=|b@ zNsF@D@glgqrw8JywpiM+A;(YYC!Q;F%YG$pN{`eZnk4QWc5fh0aa;<)eM~km1EB~q zrXi3)(gmJ7^c^}(b2tl1#a-s}9JCHWjJ?nJ2Lwq?^ClNp3tz!}ni5=pvi=mYe ze@(yPcplL~8GcV8{wmYKT=9tSZR;HIFSjQF@!^kVj6H0`kDW~zXA_9OD4{(h^kImP zd~t}skalhv8`>*A(7gp=xNz<9TSN{?4INzW7UNZI@V_Jc$4SxjTu7^EX>5wQv1bQ} z`{hvFPF~WzkzWpTsk`N{#XyINmvMTZSWCevdQJt(|@1E(lqQp&m4Dg{O%t2 zZ&eY0+z)Q0PXF5Dw+_G4b;s;Hs=3)^AJq;#Z4sK7U_iKu3HotQvD&RBXGkX-3ZxSZ z-Q-9_(BwSQE#bo>g4Mqjm2}}*WGOImell_t=A~zGzx2%ANHH?9#D|G@2@S)7oz|56 zbaWXidl88CZ#7=e@&G_aKnWvIhl=?TzXGt=rrq7gZ4A?ntTH1CyvdWr(WQ3KN#yHt z$1Mut z)|zxZ*;|Ipg8w14z9q7^tZT<}70%~(&VyS_o8LJPZux-OD$9)70&LRcKm$neiiV8$ zMJsH88`Apa_9QGqa802!y3kn(v^Y4$hj5rY8wrxwe?VMBm4hYO>8Apu0168d<+J~` zfPxi9VLd$nXa)7|sbOG8Ob<7^;|l=;ZTm!OSvo>G{vb}lG>mPMNId`2!>~TJL~`oG zGoGv%4QxxMgCh_OO%X`qcycVZMYQ79F*5X7@a3kMMq6x)1c+yG9~;|(9oL}Qsn0~S z;7>#h&k9I|#d|tPrT9iJJZa$DLSI`Wl*!!O-y4Vunsn0y^-%+5#=wg33;UVoW=z3j zycuIWrewyzNfxGN>dlxMPJ;P7!AUS zGa!W2@bWQ@hWq@Fo(2Cub>hCM;J?yq49?lzuPg=syZ8cn-$C#{IS9sw+zhyLgbu0; zFCDsDzMDk(CdhEw!6^0{yWX*_seKSVXOG=WNC}C{SdKYYmnkm%7Pmi!$1KQO9@~03 zkC^lnCk{mVWIEyLtcomKMf0g`$pWnwW5@+@Q*02Q*>SJ21s&N-= z(3F8+qKu}zN+rr@W|Ne`YFN9X3=ePbxb*O*MbSn8wqpaq_h@WDu+I6w0*(|if`Bw$ zK9*hRT>^ztgz}Cm3;WPdoq&Us`kKA4L_eEaTq@64PK&CB$6OhAIi$+K38~^}S-OcV zj$3ZvKT44p#M#l;-S2iCQlkBAVi=l4+CF|L8vb)a*9)%ewPc8m^iX^QJ6q)wwRy3= zOE-@@!>a^=ta~#a=1$hW={osG*OIqbsM|U}hSSE*UT6<9q$iPV@Rv5wej3qHJJX`4 z39cn?aw&Lg$+4I;$1E8Ude?-2vwES%8slKIfnFz*veP)oqLI1?i1c)i`IVTik|e{6 zU=Y~??d(KE@Ex}m^-?SuRUbLGm0a`a+umfhv56Si)|TT_C4e zbp$WQf?Ggvvgp2YY6uCE1k*i!sC5U%oOUl^K;ARvWQ?o1vvB_s++(gKp14J%!LYpj{0G!zp_nLQ zyd9up3v1vcN)PmEX(XG4x>Iz5lis7Ot%O4Dz+PTd)Y_Dss6AZRiI+m~TB_mIuAWYa zk*~R-^8_q0kXv^7yB*gJK8EV)SXC|&#phadBm0gC4$#Qh<({vrwaM-Q&5iEX)0m9t zWVF3+IoFOi2ugrVs4!mkT*%-izCsW!cu)YI`XylPO4Oo$gH{1GC_SCCj$O_JZVAm7%fUk~WXug4*7?7M|SlYWvEB+WxR7%Gk=QXf*0&`Q%wt zKbOQ!pXlQ~`H9njye}W*N9yd2e!k?xe4X8MR?=K2kL{1-5_fcDD2DRnFpU&>djjrG zyWLX^W8=B?PIpoYcv)(gYn>J_%=RkFD^(oAbhN$69;dA-(_HK|l2GlU%8^EnD3S7- z1n){^kA4YR?{CJ7f)N3p5bdZro9(nAM4Ur&U}Op-po$EM-6e|WaOo=1NK-5F+5O7c zCtdXj2BqpKs>pM>de@Q_Vo>eTB4TuLly4-3A$P~obuPV~*`Twf#l~zLul!p?oWaGk zF`GR65n@PQQ8L@R_@x$*V9F6+^rCCQ<*BKuQCD$J>Y;D+7{j8BX>mp5*FqX?j^XN_ zr-}*lDEDKF1@k-ip@;$VJLmrSCtQI8ZyH;*1aqxFN%NLOqenRqGt4lg{t-IRm)Lnrvx41#_ZY5~e4Ut;ECSB>&rPx7mSFgZ$ zN%u#KFfmy6SECG}R@)=!*E>jazoGea55m(N#}yC(QjO!rc=^@NVI3;@4(mPEocM#T z<6PDU9~qbRMZQCL-NXzFpEdK}YLX9cf;uh&nIb^?37Xsb;Ay$7IY(Y@Yef_47H;lo z`6+Q(cYYw_$Kd;al7IR?;h%;A%zld@MZy6kU-s}2Pb_NhmTD+oqFly?lae}^K$$(T zptK=^Gd5s}a&{V4^~l7Mzo4Qzd@_%No`AB<*?^u zr`cdrAn-idneZ!-oh7M}sq6_yULw8jCj9!=G?fJ>21&ueao~a>EB* z$^1Y_x#1Js(x3_VT}vt|9#uk)sAPygf-dQzSIJBgW72T0PQDhWH6OneToBe418Rsc z=ST7Pwwp@0h}{{ns3Bf{I2N&x2(z!S*r699CW(!c1fRMIkRtE|K2AIRjW9UF zP^hdZr~OIDC@Z-d>73w2MFg5Cr*SpV_gXw0Ac_Uwp1B+8p8YKb7RO)iG#e*-%m~|N z__T4CCqB-sjVaCd-SbbRoj#m6vrYo6 z2e~A}79c-OfU`S9j6+){9l$xYP$B=mqdfM@xUe#tg>T_3AkNsj1*ZtX&szu_$6_KD zRK68o)vd#e@Kj;M6LxbOnoaeS9#N&7ibN=>?o|)+&vhD2qa>%!$1ZI^7?9~CA-^TB zLkg!>@Kt|w(Br$TU}H6b;0cv={LuYNWSGSoZvX z*3wE`9DVr}ncEx*1F^WvKfEH#m*z8epIzdX20ukUSXcgHnf3Om} zL7A~{(M0G>*=uoe%L#`nw|S_EEpN+~o%pO?(vPs8^KCM_T0Th*-Ox)+v2U~L#0RAS z=Ipyr0DYQ}DS##Rtvm%hev=BIN1z%7aD4*9bmEN-HGcsocnQOT0;n`0DS#8JY%1Fj z1#mJ;U?OT%l9;?bMgP_W+Kj_hYIvQ*B&KP8CFho7;HLQv84cQAwleCNwjmDa66MI< zDwmTi#{jEtyeb!#aG784P7Y?u5(V&R)D^&gJ2Y=}fEj?7=IuCOnYJv1^vDAq|B1-X ztK0-Qa&_B0H3a>UmiC`#vi*1W7=^Zv0*+544YnHxF8X>jT$+6 znOnIXq99ym@Vo5j>y6TSAMG}liEt*j;qBm9G&!X>B+YG18@I}Wr-3ka|7?4t0y5FK zqbLN3A)iy{FuNYP*O3bHIps$xly`LEHe$_ja!6N_4@tq6%8?5Acpwuwo_t-9FL4ec z3}7(=^{q|gO8#(LBk3L+Ejx1Cjr{ka=m!4VA=+h!*LHBZb%-Uw*PKg@J5B%?_g(yl zV*5bXcpyxq&>fi9PX}3_%>AY8CeDO&;L(xkZK@3MzzyYr<7#k-VICGyYNPfvXwS|+ z;5adP%lbOf#h&6n=fnb(fd)|C%N(|speo3Z7noVvodhjr&tV*O23qf_3+_Bh#kUM% zJLK9E`%@i$7-)k}Z%1kGY16haxVpBv*ADo=xhK%7Z-LhOvt6fjzcpyLD@r!zaGcVF z9*Mc2wah&i+xYwN=aQqj#*dTVt;TifiZ%mxQV#ah)_gpvc6>->t3IXqg0KPrnP{PQ zFKapEWDQ&OeSFYX&JGLpb&K80&_-oJ=vyUpufXq$KlgI`J;GZ>U{M0tkn>c2Z39hP zBvE+uV?EjL;t@Kbf>y}~T8;gJdQ4Wg=K1UhgVEEV?w(r30SslxCmLls1ls#V!;u-` zXpC?LQ8 zr_TTsCZ+%2LmxiL9ZcXj0NS?N&{-exm?$=LEw^EZwD5TV>86sy6>ngE! zAT^MG`ERu2k{>@g^ajlkZA_zZknv`b5<7FI>Otz3#kf%2$m}>cq|ERMcI+n|5$}Ml z8hN#D(6AKc=aRn6MkrFig0LDd}!yj{F zBN!OIdo=l6GEMcr z)r^xZ4p&JzX@C=;vc4U1v@}?XmzI{2Mzhsk>U24~7h{qms;=U!R1I{j+QaX)mxfC1 zQK4&~ea&D2juJ0*27_qO8}wn%G7fpVG3aw^%0T`SltZtrr=qaLYG0LMjx*XmW36J#PJ z8yii;LX5{?m9f5X#(4sA7%nS@aE9Z7AElB zu{+a9(UFL(M4;{t+j#r?G!LQB+9nXmOeRExD1xEQY$*0tH{$Xls^0mJdTEtA%Gnm0 zec(6WO#$a_aDO>!$GY8hxm&ZlHSSWL(b#9GI{dzT1m zKs@{uYw`LLFmV3S_e0d<1pMsPA3tI5#@RpVxrYS4QQ7e7q?g+{jFh9C=T~ zrYYqu=0LJ02PkbEWB(W=4d=j)mgr@9>D+eIXtWwN|4USsw0nGggtO~8m14lBoH*7? z+pc(ZF#K>F7SRJ6SU$v2;DYUuZ#8Zp8Iuof-T8w1d7nWqyIL&b5^KN_pv&pf#Zf$t zFe7bz{Nj*>ben8%&eNCKJRFReaHPQ0*GgCb797+xJ^cU*1gGA^hSH@dl(T={-xi7+wk!X zP3A`!Ze(p}F0!_V*{>u+j%%Zd;qW}J8Y~AR62dOQTD=BXH|B>kCl+L{CsDQqoL}_g zrv&H4IykG1DLA{r2{^y;&eMgnqVfjkV=p}=I5+CxtTxOd6zJIl(3JW=%ziem0Q~N6 zUbUIs{mmYX0;qrLr8jM6pL*Fv?$_(z!mrn_x*s3^6hD^S{kI;{g8%G;i^^pmWN-bo zAKlFMx<`NbliV*7$X>PIGhQ7T@@PWy#H1=SPm)AqNjcNBLk~W2DuG zBH;vIWVNN#oAb+?X{O?17^Z9;kb`aUu+HXp-^*BZRx}q86&AxLyfgb95Vhwx=%(S-m)bMrYLU3|$kcd4y3J?Dk^3xPtW3))?(14=|Y~6))ha4-G%Y7S+ zGiy5SHCk##1dkg`afco9@DtCu-OV}sS6WeiW<1h4aPSkTpAz^|Uelm-LQv8QP8O#g zcG)-7&eY@e@c1iwY+QNAJYQ>i+Gd&g8D$89k*&yBaze|+s7mDWC$%JzsHLGQ|jY` zvZrK1+tKX_(>0q}E~F;?LFj$(Tp9Hc`vKlvk_$n{gl6{9I2Rm6DK%Ha*=Dg58&==y zD`tt2wN@+TRAmmbm$DqALhr?tC&9(cC}h7p4OmCqDH4s1$6egNusn_LXByrPAs^Fs zkxygZnR&1@H;4a)_RzTFCYLg9r?Z1-z(KmfWcoN4;cYN z7G#+PQQ97CVJVY}&ViLz4W1|;TAW2!0X2^L)H`a2?z`Cn-P01`#?b=9=q{m(U+~yH z7eD@S`_9i)*UZxKg7myaT5t6qM`?}$odN@%$h1$20WPL(7+{D0oD+OF$hOk*JJ*mc zzkRt-?>1TmioJoS1GyQRJzs0^B@`tZN9 z(w^mKfvR$VQ(>{g2)sQrhuFHUVH!OFIX9pZt@7SjC&uT$W9~Tq2v^0Sq)C43w`PxMP$_UR; z+Porym8Y#MqVqKvN6L_@dE9Mu`7TUPu>vdWy6CDBwGes(Nii&WiQIG?vouC=j*8CD zkvj0pD*knZt+Cvs(V-XPb4l|R^kbPAmGS0DD6z=yI}Y+<;ze%T8CtRDtj27e`xMMD zkQ;K?r$-&L#SbSQD)B3R>*><*TUf8z==OnA8)S;xdqJ>73EUqqGWP;z7GyB&<6Ncy z7B4W6sRGDwb6*@?$><`OVi{&uKM+nW>aJ}*5m?K^aY+<$3fNH_*+A2!)IK(w4Kb>P zxqD11h&!ZqC)Q;XGscM*k9qL{D5)eIVHO#4^`9>kJeS1Bq!NnHd^>s-Ha4z|FzSQz zY8m9qhBrHOVnpe{flyq?4jwf0(+S|b!*)}Thyc-JDk#`-PZ2@=9HT*Ty#XG0=NT+4 zb}6&21NfI0DmmtPNvk%>xaN32v4Wd%^R$s3sMG~U<;>0_k$6vP7-f_!?J|fD*MtFA z&>kS0;y$~xCZA_5N}-FI_KdOV<2*5I*y#1`gLj5B9L>>oOP6H3$a^m99>7ZYVCuvS zT4uf6V~npfMsi2QvV9-%=zBqRjWkP7GuhB#__dW z3YbtvXQ*Svna5bhS@1ot!ik4De3o*h5gQRyd9Z0>re6v@0-bmS_4-;qv>ex*D&v+L zT$Ek~%P>*n7kAvgXVg#IGG0eLu&dSIU7)JhgnE=>p~m>_O1i~DACsw$g^1NmGcIW? zj&VtvI>xogonu@wNgU&nEhf@a(&@qB3MBuD%M`C0#PlF`$2s z2~fT}(n{Q+r1j@G!Ge1(1k#Xpb`vZLXDgqt2+W++1lg3(%O(u9>rW;t67@65}_1#h7VX*yW3B^$KTu)N*??>U-H^lIoDtImY4aGkA%t(9`hwfeI20g zLXi)^$1NrqZm|6EFnWQ!FJ8UU1hQxJCJ;=lvb9T0g45s=$G$r#gHSw_HiqE zbax^`c^G7X5NSK5ceI43`i^?#9gbi~n*;o$5vgii-u27gEsdBHy1`AzmFLSu?BJWd~*z(;B($Y(=KUhz$^j67)j2eQXe(uHHyDwsW5aI^9lg=N9i zkD}6RsZDW`+Ww{e+k?uxQ=`zQ>KVnmzUlc~;AV`=@wbni+mcsJ-ZlFG!h@&gS<_(k zK_&A&o7FE^IO9Z#E3tB#B6oc8nZZCKr(f{gR{SQnNU}ugVkExDN!hlmBiP8X7XI7w zFD&dh`16{x{dvtgf1atj=FdZR2t692mIQ&8vo^R9x)kPSw|_NsB_9r!p!4FjAb6Z5 zI(aj3SjMxG7tfkukR>l3MTWU0FCHIt!ixv!sOi0UDYvGVn0p339y$AR!iyIM|NV^G zR6t8Vvcczy#YyM$RM{ogiuvvu&Ue?4*_3Eo8|=ox#8k%1O@A>Mne%SF_$?ld1?crj z53r=!-w-3py>?A`?e@dGnq{w@v<7S1bV_R!##7P`z1Pn9smv=wj-B_~u{S>RUOV05 zwcD>R{bBA*d+iqFwc9V{8uq*>9=f!6C<B-1u{?QF&6weu^!f2$QY zJ;><+7Yj2=Uc2&gvrcl_YPoZ-ot&4>Yv+f=+Ple{2BpJLJWw4XDkTmi+>ZcJH4=Et zbA`WCs<0WA=v;6dzt-lxYdG&+L(6Or3R72EVXnxnFv?5=Z>lSDi)=+}z9=_n8^R?+ zKW6V-YNv{kPjPeOZTak;m^S38lS|SeqRq#e9`>K?s*c-Uq8N6`CoJqLyXjCZz5@rF zS4+%I*DAZ|@V_}I0Zt_CMM~!_+;l8BA{sZ{{xs(BkEYyk&P^A{?*|wjtlTE<-E<9e z)Ag^^5N!cm(~sq+QG?J({yA$J{~XyMra*+peJ6UT!@m4{3ct6>|28(YN{JF7_xTnFWjMLFuKz>_4%W{O%m!k}-B#HV7x-n#`4ISJ$q}bdV42D0Sf(d6 z$1-L2YizkA4qZ}uKZCj=GT?}*q5iXvKwC`%bH`We9CQume`^N+n@8#@-Urg?KS6Z$ zd5CDjg#vBN;QB`I5|a>_e01JLfRSoa;JNiuK!FBri9nJ_(j*y2=W`QY&hgK!p_v~+ zj=^GrdmBr~lc(qGXqEfo=Uy4h5OzW?Vo=`CCosYtv|QrHjz`NPx4E0|&$8GbwdsTY zvO^vX5KK*0WXJY#w08Lq*13RBqB%5TL#uu9+456Dl1er+w8FWf6XZ-^Z3wE)jbQxM z`~?lXv0*}fDH}|Wq7p5dFm{V*w0V)9TecuE$${mh@a&rFcopr(n z`9VAZE2nR=34R*7Pdgla7t;>M(4L`M>K%?a`brK*PM$*y;VX9df_yE|*U07MMBgrv zM=ixWB?&1&FC~v-2ahAp67x99;1#JpLVf2hM@ei}$g>_l5YMQeE0?1&YN3heIi5i} zl7sb#L+=&Rti>>=$AUEGW@M~6S|DwLid9J8_2RjC7)xABCR%?i&W%$mmt2w{Bo7j1 zqO%$)BFqJ&h1iaJdto9xHqT>2JEW!U<^wZ)b?njb)9`iO>yG_%3;c9y6`*4IJWp{R zL>vwRUn3fKiwf;kx#e8#oZ^sXgVf^h(Gs5xiuUM3kIM#prsbxgqPu6WrM5(sqdOBdvO z-=X3faCdm6d4cK- zw_!aOi}ft~3CSyPo(e7~L*{Ap7Ig341$UkshlKca8M)4UNV?L!mC{zT>V(f~-w3be9ZOZy!sL~`O4Tn3WX1jwN zcw%;F?GtlGS%6KAnV^swplFv~d7PUtqD{kWxH@DXTu)P7PmH(F-jzPeOWvjb z|FZW!z>-~geP8$O*YEXvulv1z|K{JDk#6_QNN;BJXSBOWTC^3<9nhbNRxk_WMP6^5 zt=KWk48hByte2pbhGkh48yl4k$=cu`U@55r3R?-TD42v7h=Aqn|>f4_6iy?wjid)=d%0ji`|qwah9-gD3So!|fSJHH=V`lNSf#cleb9)e?c z2YXy2HM6~9$wQVx=D-MJG=}dfblt845CR-%ESnRl1U~qVI?NY+!4F?l+{#FVuq9*a z;e!!Q4H;k~+mFVEZ;Nl&>3N3eaMjwl8ewEUvc(e=zi44Lxf5=t2PA{_EiH+GWkjnr zh#0B5WorVPnFv zGIwK;mARX&tjwLMl`0c2K!uX(&EW%wO(45~injtCnsM?84+3Ju7z=^g*G0aSgcWaX z)#K7aEZC7K0`6*-N0+yRZ4N=-$=equZoJ!Ko1Cp;N%8uB?cPaoML4Hv^&@|&~e+~(#6;l=i+oZ34C*1$UZkM)3DL~ zmhj;~zwWoRYk@fUEp_c4PreB?AQK#;cmp&7qe3%)P2$>Et~G3cHW;bW2(?U>rv_t( zOO;u|2g6Q5Q^{{6<oEG3KSk&XZVn{An6((a^zn89>-!5{*CWTyDaV`2@)zEBz!x(RNi)X zOurpo8pWrHLt`S&;>AUsmDsh=oA3y!E?@HP3dqn@oD}gVSK`~@r7^k~T8+`g$x-cm zT6}K_=)u5|>aM=&+uPx#t}!~7Gl^40wYS4d^S8rGk><&Kcssn*RjRkcOHHSX>b6`- z(uhjl5jEwv!%JJ{8>%>aDPr<=cqzKNY5oak+=6&Jy!3KCLVdD3SSDZHM=1rz93K^T zu>7Im-rM1&Wzg^2;iYn8-OBLNzxrLxg(XXa+k9q&Y!gjYw|F75?CEvK%kJ0il9`k3 z!_l{?T+6$6c4L3Z+k|t-g>CNZIdijU7kJUk4ejW)?HlR5i2G5`|ICs#{Q%NU}jU&C}z0Eg>^}@1LO2~^3w5~M?wN%+IbF=$E=reXs z*F*Eaw2FU6Wa4OyJEyR-9&&=XY(1MY``Xb}Y{9%qg)=V*x|LBaCJHK8_JHKVSxVb8@4A^!LJw z9%{bFxy2jCEwbL%a^rso)^vhX*>R{<#4tA9eQ)zU4>ds#Md>tN)F*83$Mgx?$scI^ zguW_G(N{Kpl&`|E{x=eZUL4i#sG{+xa2+aUzVajI?uWTr)qusKajNmTAF&kkRyDvX zTE7$<`0)k%Uc85X2q=H2w8kJ5s&?U$o8N)%~db%Y&5CqPlZRd{i%+h9Pc^5Qj)ifH zHH-soT~mBr*vXd({KM2B_{aB1<$-^Emp+|;{8fE*{_#n^3hl%{_}Rb>p*x~G1sjjkG8mH+ z0hCP6mnYs|!O-6`eNW@7G+qS@9my*_JV)aQlDq(?1o|2)wU1jLDYl)f-2)vRF|KxZ z<1;^aPAa3ZIk?)rjsM~Y&pl)fWc`DW{q-MAOiq`dj+cD@|NgdqDjsqcclQX3I|7Rf z{NDK8B8Sn{t?@gt(8LU3dE%hq+PU64H9G;S!uig`whH$<9@`u=>fbQxfyQ?6yUN%A z)3^)Pk}*h5Nd;zB{EC6}O-kF@9;NH*?c$ecwoS^|@TxVGV*|SS3BrloH5;K>Ch}|2 zNg?P8dmUL4W3L2?u^r5fqRbl6=y{}(43J2;64=d1xXmYecd9JL8*sl^1ySY%2}cj| zi0++)b!wl4bwL?$EG-dCP!#r{`3FgO!ce4W>@+HJuqFj{xw{NJK7t?&QaH!Pk%a1W zXko(8XP5+_2}GY=YBQneGmCAS5Q;|Wr++K*VvJ&fbg<@2op!nre8L_Ad{J4!0W?`s@e^u8al z>_I4k`LCNY$58LjjAj@towE4-(+To-1;~@hE?;>Xj~*E*WNe4(yKRQ>dI80vZs&% z?dKfSc>wjp%HM;glye$N#UjG^6{W5|)Ql-KG9ZPe*pOimo_gBOl(c~uw2`m8-y(xx zA9?#*jVtwD^pmDaH4p5Wld+`xDKXzth0}|qJIN6xRFIXOPEBr9iVLdV%SQs7;o-RK$xjQil#N%T@7LG*lg# z#g9ZPfbdK^IcrFkANvt=kbt}xYl98pO}xsg6@BuDk^tmnE*$RnD?7P(l15g8A zRBHLK+f=a#x=dA~W93?Ai7!WEFb24D*{2_L0&B}-+n9XQ@s(@v^hp~2gZ^8Ex)a1S z)7>=uX7QQVJ}<()9WpLRb&BVPD{!xSPCBAfmNc9X16;EK965Hf4}z5Rd~whprTOX# zUu)J?T4OK(W@Pbfbn4%@PmRxliNc|}aK!jZrLf?);`C&Yr4z(IvPBrs%ljW7Z{S~d zMzwBpf=5vYJAyG{t6soZf9(h1Pm-uWxdO=v!koy)$)klZ_U2Hmu4Ka+Rujxy(gEjN z_SJk})2T`4ye7?^93s93g5n0XS2REo9su?BQE6`Y?OnoZdM^eJNYe8~jta_NcQ9_v*w^@k_CbofPO+gfy%Qi7873Nu`ZZm$^MQWQ2S?&;<8UtS=!^~evsQ!E(kq@oG`!Wj_$3RYg}_X)2nvvbkH>1d)ka#td zcD^QO(O^xqr#vEHG8DG~z6lYdZ6xjpG*6k&W-)GeY`P%+UIB}jpG1DF>0;A~Yf#O*7tXI*qX>k@j_ z#-NMh*EOXLRq%3gJH9iPGY=efN9j18l5)hK7>}*wju^(EYv^w|MY<37PUh4brx@8tflwpJ|jp;xm)JaiOO)5dAd+7Jv#u3Y)4q@!Na2> zWD`6*Z^ggUmpF=KLFc3X9oh1KWGzpRIey~oEtVghuT0@&g}XM9GUwxIxJ2`r}39V z-5Fet>$EmYFy=+dXyjcbURvTO+zOg;-n(R5AYD~;fW4tP%h;vXxx>`e zFBV-d&o|R>U`(s&0(rLK7bw9DTih1&KVxg!6%b*)XYKMxCTLb+p&= zZL9x`skF^MQckU@x1)UQTpk?b<2gooTQN6S2eEJG-%@^fkOQt<6~6{KkX@XFV~h&i zS%A65UqKW$hQC=W!dH1Vh7{-d+_P$Myt$3qcg78+L z8qHUgwmJm4AT8`+9YM?aCvOkx^&_PH$OL|1Y+i-o$_MDMtxnq3$%4d^-J*JzD9{>o zFH_<&GbSLt3mh5hiwc0S)ei_$qW_~Bdz;s~ix#X$7ZLKuHS>1VoDJIf z*a~au?O^=@+W9y*(vH$|h;}~m*d8zx8`(A{2ebXs=dE9mpbM#^AavAWGiD z1Qiqj*^#G5TY~^`Ei^ivKT{_$YOG%4Y@gLECw@4P);re zm-T?xp)kf`w8aRdB3ZF-99RsP5+^2BT%lwwWFqqs76V&K3_>OWa|kSkUK5L1$X9O; zi&+52jKxr6U4$~mVm6I{5{p5PpTuGUBjIsaOhijfIWGEgp6h_#s+M;(&*e|0D1QS!PxaB0D)p3c-ZPkVH)OgrxkEBOX25)!m`SuIF zcj)_57$LH*+bFs1m(RDNb^Q+KY*^RtFwS*q?1fo>;>USCPisV#0|obW^AJ z3+jU@*-ttH%`Xz!>Jwg8>qUMLI^qW12!CWNN$vtBGI)X7@Wo=Lm(D5+Y0ttIrZoyCk~1y4vJ^LEnmG1ZkUq^lE}AWKu3S=<2-;CutT;{TURVR!F8L8>gE?;RU^G=z%R3}S4X`>Y1$GtzoBTvCQMpMQwNtFo?c1j5TyxjjBgs4e@6G{ zUFNOhU1rdLt!61peUnWiMj6z4>Ty==emaBIfeO|+{qBv+5JpvtKfs}Z@Wzt?{llbwzolt zFR>{qe83^VH`@(0325>NRQUC#Jl{LqH(b0@0&O+@)1Qo`=|6 zA#JToQF#HC!&U+`mLU%%cl}O8yVsBk58$RYpN?(Ya%$xbn1ZAh(fS#4cGz^Z zb`@IcXay^@l>9$qI9>JsxLeMhj#Z>K4xk_V8V5iy%%*G<(llbWcI<8#Ru>-7lknKc zu(-)l8d?O#^tNm|ogp15Ca*RCFkWsWu8Rmq8Z6_SU zt)y**2g4`!wp||$pYI8u+u`$}@cFw9|03m84*)|?p#HCa>hq1_os`&wEWL@J>=sM( zjN97!FK;X2E9$R|*FX8+dpd`r@=Sbv5yun97v~Y@wd;-bw^lkYzk(Zw1-9y|E5A;d zO!;f^O2~7<{4tjyot?&y{*XlgOSn7f{B4g7Faz93=WoOY$mp-wcZ&dK^8sxS3(_&s zHXjy)Xt2$PNG-Pc5UE8%HEcdO{Ufx(#zPVYVbj4CKK(AHfGVLlr^&#uHAOm=)%Vs65&#L}L-5^P5N zvEG#+C`*96hGfAzGa3j{+nRt?z$2r|Kdx@U&c`<<;3l>-tMCy#b7*++UD=3gH&Y

    RW;w!ttbyK5mk)?EkpqJ7H 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 eymSC zKRM#g`UIOLejjC;O61 ze{R>pGFzapGuh+~a?VzzwzLxLIyl5P8cMta&)w;3 zBoaMfu}<@bxNyk8<_aieUX6p0b!L_uSriIsOMwf$&U`Zikq7u?9Ks)uL%f-f&W%`x zOnmn|VFBIg`jkCR>UZN18j(j|pOP&VyktQIym}86h4z{Pc^aoj^s^ev)6!)`>D}$2X~%`sLm(mx|)_-dzFUoQ#) zD0YnH66NOAqFE`LA^Z$}uD%rMj5H98716*KukLs5S{go9i&;3&C<+ zEeF4GWkH7D!seU_leE}x_5~iEkwH44sa3VfUn-8CPK6<9k^Fx`l8Pnl7#B_>t{CsZ zxnSh63jL#VHjN#U8=I>i(r>KRxFBbCJSP?v_Uid;w~b#P=suV} z&HcXPSiWWtLNAktRyJ6a61T&k#4$nbjyBdx9E@Kl|HI=-{{PVb7|H)GL(!`2+3$(6 zdkStYzJ}sMpNwh0OYZvbV++3f>8IfreZp*`m*VJctxah^^uOe`mX9CXK=v+t?0~%l zA3N}?Pvn;_aqNHr_}MuCq_zOyMAsGo><|FAaBf0%6s&oLKIq76^65iFRx4#Z>x7ju zaC@%g-0})XB>pv8=)v03MQ6WnEDZ+bpc>QzF~0T`)>AV-_1L*r6n&RwMtGc}Mv`w0 zWJ6d|(8z`Hy7f4G;FsUY0Ma~=mZj*(jkH!}r1PS>;!1!KBJG!zbIRy)s<-;NUniLr zFMNgnbQ--5H7?)37zZ{y&T@|{PXEeC`uFG8l$86yIuJNwUdNlkLQcDZN$8)2hJA;O?2Qw^7uNc^S@)goJWzGDAPFXsq6 zn#JXXwHWsh2WJy2`J^m`SU-YSFvJZ@yYC(0J$9)IrvV3nlbVS;QGM-=YJ{M^a&hDb z@s*fomg2^N_u&*8=Sa(`%sE;Po?7!UdMOr;l=ovdd^$xM5~*haSK8DTXcFfGBca&= zU8=QSpARb{GL?1bPqWT$It_}_i)5p|2LL~zRqY~^ef3e07 zLEmo#nCG$7U?HQU!^9UgapAt3TJj0&_S;?a@v1`@BckFDWIjpV`91xTbMm|TB{}H+ zBjxkH^eC$MW3JohnB<}B6D)M!d&+ZO1onW$m`DyGSqwY@1rXa$qO$@=A9?SQ@;NRv zyK;`98Z#`x3Q86Dlt0!ib>BGcZ;;a#z9#JHrX%YuxA+{nho0{Dgbh5(Zlsx`)au{% zbY?UaY;4q=>WZhfNj(z@Ul|xc$%$hxx|fP%2(!AIY?(SZTzpZzT0C6*TlelDAdQ!f zl$tD1Ur*PFPx0R~3*S(BM!z(qbQ9&4{VArI*<^M~4hb~(b~E)Cl}gJbGmwDY$c^$w z*kSEeri20hc(fw0RYvQTqBPKl?7G#3z0q#o8_UfSZRfehmLSJkfzi02<$JSUQ39t@cU6=HCggusG}ECUkM zIRc98Sbi^0Km!+@6!io&@X^ol>j|i0DPI`@UF!?ziy`)NMD9xx-IS|&<>E>j@Emca zbRw=3F_q99lHqZ3Z|DS-ZK>>#32Hr|G6YkTdL8~%hG3RFm@1nUd)2dX+ir}LY${)8 zR_s+aEA}dz6?>J<7klM+>ew8s3;t4bq=dw+>U9hq`MCqJm&m_Q3hN9arFAp(XCt2! zl2sOhHr3031Dn~$2hK`KD47wVtaDO(z>u5}hJg}#i5s!kn~RlA*&H!0hDq_Yp3sMU zjTLR{3B5`Ydd1x42|aQyE7UW}GQg-4eNwCGF~Ixy;Yg;v{IKrhKV!JN^pIT`w)JSp zjj^VbToD4Oj)fzlpQqR|^aDifwUHQ)iQ0o2S5s6b>P4o34406aD#&t){_Hpb(=D#; zH>&@lG825(XC|e2Dn-o9#JUtS(|;#k@zl5Hs3LMPH0_g*c5`tP0n<+Jhi^iKo%7?j>-`SCWmB zN5Wi;M6Uf^l6U;N4G>v9#D4QD7@vPF4+bysSM(bI{IV|b<<#0aU%R>DH@LRifhD&>q7Ggr=uiRZ z81`Fy3b-xwG#J!Cu*YOaJ|s^n-bRxN5^rFvu4rzgFN4t)O^5Vl zFuJ0dk$E!6x`Un&zE_;mjjh-WCFIR3!X$6W;4+aVEd4lE4K_Yd->>*=-Tq5a`C$3h zBc}OhgXRWGjO;2u)fG-gJ?+18VPH24L$eY#LvyH~N)&(iNb!TdOtf^}A6ACjl5)ar zZ{E1RH}-d5Y`4fn{FZDLu+|x^6JO-tY5xQlr*Bdokwv*aEXqEQO4zu?5royXZx#D{ zRIJeDf7(9&x6Wcx+nb#|7%_|Whs+w*0wn7`%nNq9a6Uq%ZMW->{>)kSc8kZCu!!rXL25FY<5Pkk2j~g{U5;V~ggk|>xA`dVT~}@E`^yG}8S**693w-eI-0sX z3lfrdNr>31Q7bY?aA_)4PVeA+{fSVbO-2JHb3cE958rxOABI2l>1N0K-n#y^YajL) zScv-z>GK10U#9+Zaoqlpsm3zJQs0m%e%IC>N!rKKm5+rCe)$RwN-!K#5Xynss@@PF z9yN&TeGs`8$O!(9|s#1KV>%5-e7>Tdr zbA7k*Vu41rrD%m5&+HYR;$Fv&=M$LZnadpnj_gk+A}60vcT+y$6~z?cBKd?4R!m}w zelfb8&}#P%)TO{gC9x0 z;{8X;AJXNTNh%LgktctK*u-%3<5rBX4#l`d{NMvfVNd&XlMTtdlWG-CuN0dW;dNf` zKT+Va^Lq7|?5Vtwa^3zQkGt_=`(xaVGMCB6l_Mb^_hb5{8GPK2=rUsb-^*qD$q{)o7bGs%taUiW!FJ769fpDEF;r-tk$A7; zo$Jz_Y&MIssyJy{KRt~mdD76@W38a;BwE{^3)M2D(u?j!_ia5P1Q+GKfF2;6VfnCv z4~aXpnxI<$52>nk*){-X7~$St?{BgeC6CZ~{j^>eQeiwV%Z5*cSvAMv+E|wz=>4b= z9%va?)1J~#oFYu6Wh*?sOm}uBZCf#}7wP4`!NgM6vyF9Kh9#p$(1F6P*& zxqlf}z40yUf0-wtx-rW2%}kTTpf+_tI#=J@ZEW;x#MtOJBz-)+$gn?Anwc1ry53^G zMzXub{EdXAea_s7VeeUD6A}<6Q3a`T?8MS^TtNonxx|!DvAD_Mm2<#>)|c)b6DX7} zP|P~&xL+z zdg6~gyLVaoTvixU&8D6mO{KhvSj^Su^4B{DSo+*k^cd1veJ;mqoOTxfbJ6E7UP_+> z%$4Z#xqL3YD1MFJGofc`D(z z{F@8=EiYZ4U*B=pOZ8jc8hlPT>Pyq-LjOzS^OeiwbMG4^>d2SA7@zA9&hhe}qu+8# zJ_nc{pR@ITx!pexW10u}J^x(1i0sQjlsnzyb3L&>SNXI)SKQ-ta-5$XXA$k`kpB~O1pq-o&WZm?qR1^6}f0J`C+N;O~B}w^yLPvO- zq}d!OKK+wkC!qD&W7aMlDE?V4;QB{=-QE@{q<@7pY;P6@jWq{}vl&1s%g1h}v>b_< zJiS??66XEVK(t~`hyp3KK!cmOA(sWpRF=mVDZDDE(ux5`Y@fpFwYSmIQ)xgExbIdD z(A!X}(gDt!nGOBEM(n94tb*47k9`_`Rlg3D>o=aVFx;i|jVZ(%lQ zS!dB~a-I~tPvEU)u}o7v*nY8i%ldyrJ8+SnT$OQ#rnmJ0!2 zTKgLp3SWq;7Fg*;5GE$(RKW6=iJzqc7RN-WM7U(+W4pu1$96|7!N}=%(wG?$kL1U5 zpkk_N6-+g)g4w1$uM=n;?0pGgxgk)+H~Z>qPRw&TPnAn%=7r^kG>`|ekI{>nm}kUA6slAM zx}%%v==p6*^5S`vj|r_bWG8JB^JI0AYy#ou6t|K8mDZx2y z6&~x2_ETa)wN7$H`>b6n0?)(l6Ddn$*b5<~^bGBHBLJo&?ax8zXOUd-j7AVnO$k@F zm+bIj@XTb2Km{N(uNdR?gETX7VwLkDW8^Q|B|FC(c-5r?Wa_61=w}qjfT{qU9|Z!a zB&GyV?Jg`0(fxZ#R{=-Ewm4Y)y>DwJgG(|6%orXhzUSL)v23jVj<4HW!$5sKib>H9 znIUDPb_ZA4KxOxY^Es#oS6ssn?xCjny%E@-b~YU>9mGpNQm}+l=z5WemzE*ghzTJR zgVnxLYWLd)$v~s#I6V1{>-V9T0?)v*7_O>F0$w6C%RvcxQDvP)hTD~yNAY=-UPdq#K3482ft^ZIv> ztG94iY32wSgRScM5?@M(6p|{TuR_q?sDUw-GmZPDEDhDl))>mEE;GV&DO!kC4qE+ggiQ_KZ-T?C(?HLo z4aG$}a<0}E$uq0k*pCliXz9u9~YN!?0Jo&&5NC4$J^L{hMbzpN+D zy}3MfD@``ZX9rzLk);T_3POMN;^m=FrsL(G>S?RfA;3yGM^#R%$)vp8CF`+Hhn)j( zApvnBD&iIo=bb}DIF8%l*KmMTT?kM)Zt_+kAb zIVhvz$8;S7MQ?NXlxe|7Vrrr5L1(H86+fB&_$T>z;)hz(U`S0TDoJ@a z6H$3eds~O7+(>f?XBHK_yf3q;e9Ait%n=oDoDkA;aZ&l`w5TLba!z0;%Kr>!b=L(& zMOrJ13PxcfD)M(jR2s2NS^;ECumXtSOH-wcrt5giOMT>)TJ7mnlh_W_7g}wc$lWX-BXX9&5gTX^l4~AGvnzzx;pMdlxXfuB*=T-gBRIA62(hC8_kV zb?&unSJ{$Pwq?n-oJ6M*$yV&dHn`IPGSiu!06{VjyG6#Cwqqp`#sLEYLL(m2nCWEX zZla*>4#AlTJu(F157KEvhiQ`zAeszqrV~aP0_|?{P3HGsYwvTtWbL^XRmLb^8Q2>|q?nGVktrQwrh?cIW1-`Tyt5JpD(3EQ>4SR^zm@x}hV)Q~q zPAeU9tT-|aon~iqH(B;{ek)L)vE7{X-;_=DLOLCokbMf@9YELz5Ux;#D^JiGJbX-t zxS>tbn3qp%?L^)$Qx}IWz84KM3V87%%psp^JuP_o4nc%?`3~`hubzK--VfIRM!bB! zIE+|@!@977m(LWBD7Q(ceV(C#FKhSm`Fbmrw6K(~77sGw^J8^=e`QcFhF~l5#C&{| zn)+bzARS}C!k0@!GR@c+igC;_ZZlBqdQdFiitv)FON6QcYdOsLK=(3EJuY#KCQUzW zC^XJo)?nqm0PbE!{jUt}zRq#?byWCYarbM9yO+1KFaA0UOO3FW3CrnVXX1h`LYB7s zvb7xd7JbcK6P`=YasKP9lr$8M=Yu{XNUQgC{9o#Dx_Dt>5mzutKL&Bh+u;JOuPUxr zSaJ(5Hi2@m$yXNPH=H7D3JA(c&~5aKmBrs&X=Pz8VGW5Z3r>C7iYto=sZn@R zi{ckT$e$lOE2be0!$rLOO$!M0Hzzve0j@382%-JP?l-ox&-}?RTb|1}@9MA%QiuuO zn9035z>{k2JUHvV^iOsb)Hu-A(kSf1AOJ%wW$*tT5J<8&f<{53Zb{Iv{pDO694p5# z7`#i>+?-KrR~`}g$!jnCt7l5eSRBnqW(+-PlbI_Rvd|zHsmDUYg4U-etEfow5XALF zww@QYecp04Fog(%uKd4BE&m4)M^Ph=N$2^6Im5MDEgw=}WtEb#T-fvbx+0hSTU}YL z6nXZCy02P~KZ`8|NCC_nkQ}k$;AEIDz5Don#jg#W4FBo9`_&#(xKR3%-DkTUz&FY^ zBRzq~X2Yq^mpD3CKTyb{b;q3yJJi=_^PR2@Mo3uDbJ=n|mX?A#-i!lHElz~&PaJRIeFrFU^a`PJf*0i5le5t_1CV?t!J zp(hUi8Yl=&I+v>lP?FJu=(!=f^0P(FzC5Zql=w{Q!q+F|N);}Q4Unw~LBX+mX*jUW zuM^55N%a2Lq;oGZz_Jw%-{U^KcMs{64s`D>JmWq*yW7NrH`1h&xMwnCd011F>n5jfhV|8iWXl`rk=nPs>^wTDBl_UI8Ts4#hJaZ-7G;l zPf+=&ZCM`2$P;AfAM%6|exSH13rZ^i4rN*6?+W~2BsdU$@KeFjA%5_WbnmedKdB`_ zlHXKX>+J~lGwHhCYlRNNi_SijaFG1he+^z(&t_O+?r1}pWUVWre)kUP>YfVdOa5vP zyq`VLeO>3ZLW->tAYFr_*Qo%vU z*OQ0oVwd(fU5Bv6>Cy$x!0@h^!Apv1ZiDx7TPjqZo8nu1p#nH#!4!`N8P>z2z!sAL zJzd!SvIdQhI*J?*`?E6vATPaJ_L&v+^3JV)V<+^9zj_n81~q8;go=t0%3Nk!bwZhF zc7U=dxshdWw%DI@s&x~VJjanczs9(~9M16>_knZ2+PM0wlD|~WP0(~`9(f4|oHGAM zXE{p*9evR~<0QJ4Y+>e$anE>JI4}F0{Nq>#OP#%DQ0sMW67+hV-R(7Ho&DS|{E7>- zAODLW*?#=Jxy1%u$#`nq<|9<2eTDEPV<3ByvwAE(_zAV}4J>C*d^j}z)1l2Z4X==Om(x9T z=zDfUxTb!ky$cWF1Ooc%L-;cATV)8xKT6LvghD6QhsJLT*V%C09j=8}hqqdsNOr8n zeOQ>G9N2iOkieF9rVDY>x}XN>GUu0#e%auc^?sT4%Zy*vwX+%@Ot-T-mtH$-aA9-7 z1eeKn*5cA_XKgOTK6JQ%a-uwhGW}ww31%D%`j|*N{RBJ=TfHQqUCKYOpR`*ZA|hM~ zgn)=SN(h*Z2@$c4TS{2~3205_ZJqB#vH$Q8k+F9bB67(uD@3I5a$>n|S8o9-R31+J zl#kNtJUVSK{=|;M(K-1Kwb*)WSa@+1<8`t!b{nn;6HnTBUQ3|5Chz1~Np^oyK zo}e{Fhzun-`vze|Yqq`_>Vc+(nfI+YW!UE?VKcb-I5HS--=Xf5?vDtyJ&S+|(-nF9^68T7s7YBqU5xtz(}n$MR+9uz(9CjntJ!d|%fHpv z83q_zEQpNJ#sv)H0~loiA;7$)sj<8NSL{O^LUEDxuOl8oF;|d5RW4@Re zo9}^~9!v}uO$--J42RU(#Ar?+nS5fZJ~36F7!odnBXS|X`;*T|AJ`xvzuWUXX1|Sa zj2Hg-;DwhLu?SxJ>9oZbxZ;FZ`M=Cx_W85I|3iffrQfOSE$iFgvv>Z$tshqMM^^I3 zg_18?$@5OOj$0L-w`D71BV=FzqA%h^*3P=@D}2C7Hmd(cZnY;4#vx?-GkzLpfIa5+ zPLt!GHVPjLea!yz|2(qsJPPklOj7?elQK%YP>!sCR!rm{GfwdCQg3hAL8mwN;K$=# zFrB~Budk8RgL@fE4i6Ss_?=VG@!Bb^Ycgad;9$DpZY8A7WLIe)fv3ST?%a}Y;2dVE z`qXgnN@&7SH!8&)WpLn@gc#|pl`0(Z6Ot)7wMybfx*?>oSZ_HDLhLHsT*}s3V^?8G z;t;{Cggtc4v8ykD18yZtvWo<+-W2vG!Ue~m`b=3`tptO0V6+jjrxVT`mxWfjoyt{1 z_X9a+DIjt{z-YI_^gE7#iefMXWKua^Z4&LPjBv6fqXN25W)I3Hcu$Eh>9Rf15ovXJiQ3x-sL>VBvC_^#9{zixscFMr2()%Q@ zIB8^)2VvN5-*CoLeGtt2lpkN2E6~d#w~8G+X*2FiV3CC7({=4xIi0~7MXE^V)>;FB z4qJiunDHKRG1+}lQ1k9GK(oJR#yIDbMQre*zqKOUFp#^F;l92IrmaVmG-~a(oNaq^ z=W+syh&?2!O6Kgj*bq$qQX4wJ0-=4=7>tIEHzf)e1n)5!J|z@jxZqbgtBnOe+Y}0K z3D@EGpz%xKJCdK)#COKX;%gK(AF%EM*6e_Fqc-vE42v=+bzKU5`3l6VD^VFpc#-vI zArKj&jRorvwyqO2!E0!K9!r9x57tq{A^b&XE;81#9+~l(GY3uZOc082cMx%n6k4zB zm#%TQ>J#@-FuP<_XGOtRhcrZnCS;qtyDdmfl8j_llO_v7i$!mW+2zmSbMjE+d@oh( z3^A9Aj2F*Ez?0p*gSAAR^6teRN!$-TVu2Xx5x-RlCh0;YRVr!e_=1+iRs`(uEN!TX zidz-{io$i!4uOyiYC(ilbK=Y#}Ug=As z$TbaorzLpxxJM*za4KbQD=g~^7+8eZrm$dAcc!L7(Abz-v|1FHS>o@Rb%KiRv`SPu zv(HMIlhwjY8QcjNtDYeDgHlDKZ4)y>4HW=N(7axfr%!WU{1-ic5+H}HQo6@QJb&lM zJ%2-=2P7Lje<~XjALRMdB>Pm2ayUM_G_RkJfNI1_$2S>?y~$b*iny;KzQ@&O*U}Q0 z?~gId_a{OOzCT18^ZjiG@$rLf=KoE$w&|6X&?^Fy!&f#PzellpSvcd&J}9~`mnF&? ziWy@X0v)=9Ay{Sw1!OY>^HaI|a*GtWaQ@rN=!0aji-U2sK0uBJ$E^;>t-x`Mh-fO^ z`tabgbm~61UoGA8aGIQcm~)G2_oe)~S4RM4|LiBvO81;6#y}n_xh*-)`LahifN0&D z(wTJQBl>yY=|=|Z(wR4LKXdOEJA^p!hU!ZLs%r8?d04mu1c#$r~%tu>60KH2C5JuN;s>bM20ki<;y;O0=yDQO|Z zNS;hl7p#;HWzXoR1zzN=wvu_?O8H51l`iDFv^NV@nBVc*a7tTke_*wZFz!nB$9Z9) zwlC#{h1$@EY#BYtHoGnE6+gl4R=<6m+YkzQj9X3})BqTDZ_yV&e3Zj=(y-Tn;V}o< zr#<=z&LB&#zCd0A!%0x4wNc29xME?=ruwf;_NydSG+8ECf(2fgatacG>wSths>t9( z{bM*imOWCE(Zy;b74W9bbYH6-4SS9X%!H7ot2dl#S;pBpWj4tE?PAs;1aAX#;c zXWQYTHRWD30%Zjs7pWfq*JvVvyp4W^xMm+;)=vwIwpau8Hnh6Rk{#_e);p=$#on2H zjg*kdkNy3YN+b57yn=#mqp^#A@*Rh4-!qua$ar5h!6Dk)6Te7(8r1ir+Ff znBK--Wkgj3f(1;BgBf`kv>UlB&r`WSy;Sm&?nFC#{GSFtVS(rhx6hslkI%)M!b4G8 z#g`W7FVNn)Q)%bB@U;pskABa?r&v^QVSES9i_ZN=`rU}I*rVBc7W^ZKzo9nFC(_?(SB&>M;$dD%8L_V_5!0 zRZvO*7R#|NEXTT7aH2IESfDKP)AT_8lc?-Q_6QT_i7UK$SwZPl8OVgXoU<(44Id~o zw05@JCu$EDCTbrSh)4RwqYSNQI(z|&uE|5Gwl{~K7!(tSBJ;rM)N&F_K{%r}>fjo|SbPJW$H8P57`}c5NHPrlVi;UdfX6Z5 zZ~E_aZt_*N*5p)gdfm+I`VAZBuH1Ch)$^BcOK-mA)_wiK;`KM&xNyz2yKmaFW9N0d zHgDN_+1@L*w>#a^ZRMm|Z&aESGS_JWzdO4LIQ|c^XK0d~tGv>PI0+)A6X04C6e!T< zzDy|j4$VI#dNjM0U!=c=4;<>gn)CsX8C|>$%$e)_y+CZn1QemfTX%O~o!!E-2ly2+ zh}R%QQEPV(K^|VkzU($$W4D-S-e^`ak#n8z;6pQNfW!J?U*|RpYJ3};BIY{xlVh3# zY1Fs3Wj9c8#FI`B>`b+1%NA0Df#hw*l+qdeGPh(E-upH@(AYx75#MfYnvC+Ty6sr3 zz_;kOW$^;vtXs~+`)1i++)EyC+L|KyTx>d$K+SZ}4x&M@2VSE^o=M;*~q| z$^?vCva2bhKOr-|-kPW6kXPiRxW!C2*JfLJa61o3Mw|hUYf($*ItTMN4^VPBB?nYu zMpe3dEtGhmdtG(~4~VPO1Lj3dUzcsCY{@?#@9}jj7vH4fu(@y_zT7zxRe%-EB&(FFIV_w;FrE%U_2rS2BZsnP;?>HkS<&OLOhUu5f7vb z@j$u|52Oq6K)MhQqzmyty3G28cp&{E9!M7~zPb<(qzg_EU5E$Lg?J!chzHVzrCArG zGF_0ybZPnpSwX*$6?8#$U(ba_P;YG;+0OkW-z&)}uFVuU66 z@eDc)BJq=g?!g#Z##dvq$U|C)k*8&mK9(rZH&ym2cYMk-fd~_WdWpTJ0N-#-*oH5A zSNWcOkH+uyBEn&b%xVaV&!6CsAhWd{fNX~qv^zhj+EPKb|NqK9Xwqx z-eFw}p9&cC%MP%2(9kJ=k>h+CcMAf0Dt}G!E?v z;8Wq3We0LUl(vn!N{_4`C&eLBdB|M+e2h{EFlCR=o%}Us&9kSRa=$(sniylj(O=Vj z!O>5~3~(r|1&5Xxa#|1gA(oyGKr009YwuqTM|C-!yp`N4z*ZDf+6*xcG_@K^ZXPNt zZ%PEV1_E)EGXevu*$?H(&La5`d1AIZGu1#%Ly6G zJMa`>lkDWP&&Wc%tzQ#K{G$Kb*oPb{k}Eja8SWU-H%+p#yR+zh$_4>Fsam=Aq9)VK!X@-_<^~VM%@jvFOJPxR12@GP&s7S9Y zw~QD~(YkTap0}M*m>(k&$O)P573hp{?9kSjQzDS}g}MU2fU+fwN0uj^!93|BXZV9l z0~BVK6+kr(1?*>I)dgo?M9>v$0pLByu~^^ok;*~t$i=MeNrY}gEL*T)%E|&~45S6V zIb(Ym^M~;w{u*xz1ZJFwvVeDxTwIUF@Gi%+(mQ#DR^gN=>O{WFH+Z3{ZGFg_<4b4j ztJlw>G#%SO%4Xt#yHtGLA4Qw5@vn~CxM_iq9g9{)7(6wAW8EPSf(MA!2u>oDYKneN z^FnsPg1l<>jxIny_&9YH9vr3sh57OZAE9sKKr z^vR(c{OdKo7H|&9TDXFL9hl|*b>Bwo{&kiOYQc>j{OjzQ6%UF2by<)wX_nPD1?|?< zNCbohK@dyx3j_|3)tSo}#YK8pPQKy+s=ue9nRne_qm9E6k3bVOB(aBe*XU>CaAs9(@=uQE zw$ulKtw3!q6-iRDb%;ju)gvy`g3JobwASImB7NZ{n$yrOutaOs4@haNv=;q{#A6Hf zJ%xqZM>B|tkec>{>n0JBG?yXKVUx3m$CJ5 zeW9#rj*J<9xBM|Huk&H~ibpu)>%64%urh&VHmeo{ge(FkGfwM-)^^FWOk6&nV3td1 zVMUY#m-EZw4B}lZ50D<{diH*F1Vl_#d%S#j>D|YU9fMKpCo-(bH^h|N50j7koCvp2 zY2u00Z2N=US)~bb!Cq5?tPV@YxNj-}@@w)05EP*t)0JpaQOXpQV&QdgJDEJuge)yy zNaQLa6wZV+t_Xo6Xu+ABzXUR^>4qAwJdwHCkTtWEo{MoZ&>cYV`vqSpgN-R{(L8woK{B z7b{eWaY0M8Yty&aL@`NqNM)+v6WlT(x;@J+lcHPk76C%AGO6x=;hE8q{rWJ!3^w-b zqx^E{rU(g5r38 z1#yH!WAsh}PPwW0VwLM`MP^Es4=Tgz2NuLf1HTj+5EEysll*!r%AO(wpxoooA2KIA z#WO2>x+X;p$pugHnHus3N~67Z+TJ@E-dm_VSz|FvGDR1Zd%sS7gvy17^U3>b!0XYw zx*vnn9q7J|Xg*s){viu?2CwLSiF4J&@gT=-^#TAGBuJ zmz$6GNfs17oKHT$?t-lOj{YRSdi7Cio?kSQ;1L$du68`S(gXjiZtw$eZk?b33>>-g~;xf1q8E368RE`l+ zLFu`|i*MD7%vIJq`k>|_V@VWIP6AL(LFMiJ8Eo1-C@wb3xz5EH1Id3QhRq1W4srx^ zP2LV=1uj;tpc@#PVUt#YL)}L~DwHE3Fu%u;s&YUzI3_ItF#c~~tskp&?fu;n`~2Z+r?tsi>9UQRHW&xC1-JK0#-<#Hvom%1?Rk(@AB=lO%G$U>P1!j(SE5(K6WOVW~ z>)e4ZUvM0+bJc%lT=j27uKL3-g{%IEmh;uQ>YLU|w=1qZhw=$yn1^h_>ZNPv7p~l~ z(u{%HE6!L=Ge%VxnK9R?$7hVs9#0|-E>s>*@Dtxb;Yo|1_I2(A(Ic?@vfPyyo!KEb zwFP%2&P{Ypq$?6}iOo>*%5!ciUBb}w#t7$DI9!o)!_SO!GvL6vIrGjqH`nK# zbNhl<{na|SAIzbB$lXIvk_I{j2$sz)~pfUWiq&|Y%s98 zi53VNhq~`fQB-rG0@If*hX^ZwM>D295zfFQ2h`HG99}IxU_%Y&IIL%Pbl<5bk`LST z4qN2I7|<#y6R!8&@J0d3+%&5o3zuGF5P#o-<`CDUOHC}HK_BZq%&1zppjc)Y53+aX zza;`{bQ~9i{fgAb=6pv(vCD1ht=Q$3tuqFBcAMoZ(|P)(t^CJ4f_*}3%!?HfN4_{h zAK;eNXA7iW538VLM3z3SjjU+4T-waDd6u>9R#bNc8u#9YQ zsQWHs;BoCWvDjrgUcbGYb)0-VW}K}5}pyFTTvsK?A2*Wvx!yWiOPS(9$h z78I(p@RtL|5NlZc>Bmzn^#{7IHKRQplF6pTj}f$KsT*<~$U@GJGwX&GVmUbksuc zL1FmxOI?uE3{RzOitn@DJH$jwmUeSecF2<4J0y~}+nZ%xw7W$mT(>)fstH-f4DFkK zH;)U~@3zC1m7)xN3as}#&hE9O)glkK+YdGK705nHp(ZB4Uyww#BCRBeRx^^6Otw2G zbBI^6KxnN?RqR%k!CPoJIh~2onmEq1nRsAy1|8A0`O^0XdV}uZ{PU$BZ(ziAx`QrF zOqg|gJ5!f}cZ_vG3f?(t$=KMOv$=DS#*Z4C`#hSTv4Ft_t;sY$!qRO`-so16^@gAI zbp0XDdf5Qdt`7vVFVfY5(0ykeG#s?cdguKHJH?emE_b2~n=^h#AohejW~{0c zr}}NA?7HL!{%>eK_O&es`K9U7tMj!2Tl+l#W8fAnq(?_^not27?hSOn8#x;s*OUNtfJZth*a3?0rY?Q#Op}9(h zXXrS1vI2oTYY5{j(z6xjieWBPo~wkpDr>Il#A((Dv>Kly$O3h(#J>~{2L6oOJB-;u zdN?p$HH~}@QO}U6)xBv*7Wq7(u}6D{EjI<}ctnb3KBE+^LH-_iXfktSZ}JhzGI-ie zrs3IVYl=*=Ipq53TH3HlBb|_4eV7{g86svouhUSUE381z!QF*5$!D|zVOlC1NXS@| zXvb5I?N1AWhV5s^AXp=+BOu17T~Hx<(N@jy^ZS?6z@@RB2-~4ySk@#n45zK`;)UUB z@Qn7O0-Vjh#E1>P&_#r=m<%l2;S175_@1i`$fa!X<@y=k8sRWOTJ8kq(mB+9z`IRQ zbKo!N3z5IPD$EM)8{NY8)V>6~eCF_=2{D5O#%7Ih&efDsEQ8-7$B`*T<2orcTj_kC zz&|9F&iB}KD1Ix7-Lksa|1NmhP*$C3_G;uPw?hXADq6B=+hFywabTJCl

    SXMG(z7c}WwErEb&C4X> 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::put(new); } + + /// Set the validators who cannot be slashed (if any). + fn set_invulnerables(validators: Vec) { + >::put(validators); + } } } @@ -260,6 +265,10 @@ decl_storage! { /// The length of the bonding duration in blocks. pub BondingDuration get(bonding_duration) config(): T::BlockNumber = T::BlockNumber::sa(1000); + /// Any validators that may never be slashed or forcible kicked. It's a Vec since they're easy to initialise + /// and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets. + pub Invulerables get(invulnerables) config(): Vec; + /// The current era index. pub CurrentEra get(current_era) config(): T::BlockNumber; /// Preferences that a validator has. @@ -501,6 +510,11 @@ impl Module { pub fn on_offline_validator(v: T::AccountId, count: usize) { use primitives::traits::CheckedShl; + // Early exit if validator is invulnerable. + if Self::invulnerables().contains(&v) { + return + } + for _ in 0..count { let slash_count = Self::slash_count(&v); >::insert(v.clone(), slash_count + 1); diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index a434b4510b..cf5976f88a 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -123,6 +123,7 @@ pub fn new_test_ext( current_session_reward: reward, current_offline_slash: 20, offline_slash_grace: 0, + invulnerables: vec![], }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 5, diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 88ce66c8d7..801c15d3e1 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -35,6 +35,22 @@ fn note_null_offline_should_work() { }); } +#[test] +fn invulnerability_should_work() { + with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { + Staking::set_invulnerables(vec![10]); + Balances::set_free_balance(&10, 70); + assert_eq!(Staking::offline_slash_grace(), 0); + assert_eq!(Staking::slash_count(&10), 0); + assert_eq!(Balances::free_balance(&10), 70); + System::set_extrinsic_index(1); + Staking::on_offline_validator(10, 1); + assert_eq!(Staking::slash_count(&10), 0); + assert_eq!(Balances::free_balance(&10), 70); + assert!(Staking::forcing_new_era().is_none()); + }); +} + #[test] fn note_offline_should_work() { with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { -- GitLab From bc25da550ba1b537b4ce9457cb04f464b1fa0d6a Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 8 Jan 2019 11:14:18 +0100 Subject: [PATCH 032/349] Make AuthorityId generic (#1296) * BlockAuthorityId convenience type * Rename AuthorityId -> Ed25519AuthorityId to make it more precise * Generalize AuthorityId up to substrate-client * Fix in client-db * rename: BlockAuthorityId -> AuthorityIdFor * typo: should be digest item * Fix test-runtime authorityId mismatch One states that AuthorityId is u64 while the other states that it's Ed25519AuthorityId. * Fix more u64 - Ed25519AuthorityId mismatch * Fix compile of most of the srml modules * Continue to pin aura and grandpa with ed25519 and fix compile * Add MaybeHash trait * Fix node-runtime compile * Fix network tests --- core/basic-authorship/src/basic_authorship.rs | 7 ++--- core/client/db/src/cache/mod.rs | 13 ++++---- core/client/db/src/lib.rs | 6 ++-- core/client/db/src/light.rs | 14 ++++----- core/client/src/backend.rs | 5 ++- core/client/src/blockchain.rs | 5 ++- core/client/src/client.rs | 13 ++++---- core/client/src/in_mem.rs | 18 +++++------ core/client/src/light/backend.rs | 7 ++--- core/client/src/light/blockchain.rs | 7 ++--- core/client/src/runtime_api.rs | 6 ++-- core/consensus/aura/src/lib.rs | 22 ++++++------- core/consensus/common/src/block_import.rs | 5 ++- core/consensus/common/src/error.rs | 4 +-- core/consensus/common/src/import_queue.rs | 5 ++- core/consensus/common/src/lib.rs | 10 +++--- core/consensus/common/src/offline_tracker.rs | 9 +++--- core/finality-grandpa/primitives/src/lib.rs | 6 ++-- core/finality-grandpa/src/authorities.rs | 14 ++++----- core/finality-grandpa/src/communication.rs | 16 +++++----- core/finality-grandpa/src/lib.rs | 31 +++++++++++-------- core/finality-grandpa/src/tests.rs | 12 +++---- core/finality-grandpa/src/until_imported.rs | 4 +-- core/network/src/chain.rs | 8 ++--- core/network/src/test/mod.rs | 5 ++- core/primitives/src/authority_id.rs | 28 ++++++++--------- core/primitives/src/ed25519.rs | 12 +++---- core/primitives/src/lib.rs | 2 +- core/sr-api-macros/tests/decl_and_impl.rs | 5 ++- core/sr-primitives/src/generic/digest.rs | 4 +-- core/sr-primitives/src/testing.rs | 24 ++++++++++++-- core/sr-primitives/src/traits.rs | 14 ++++++++- core/test-runtime/src/genesismap.rs | 10 +++--- core/test-runtime/src/lib.rs | 7 ++--- core/test-runtime/src/system.rs | 8 ++--- node/cli/src/chain_spec.rs | 8 ++--- node/primitives/src/lib.rs | 2 +- srml/aura/src/mock.rs | 6 ++-- srml/consensus/src/lib.rs | 6 ++-- srml/consensus/src/mock.rs | 6 ++-- srml/consensus/src/tests.rs | 11 +++---- srml/grandpa/src/lib.rs | 6 ++-- srml/session/src/lib.rs | 24 +++++++------- srml/staking/src/mock.rs | 8 ++--- srml/system/src/lib.rs | 3 +- srml/timestamp/src/lib.rs | 4 +-- 46 files changed, 234 insertions(+), 216 deletions(-) diff --git a/core/basic-authorship/src/basic_authorship.rs b/core/basic-authorship/src/basic_authorship.rs index 5f8d189878..0464d96dc4 100644 --- a/core/basic-authorship/src/basic_authorship.rs +++ b/core/basic-authorship/src/basic_authorship.rs @@ -26,8 +26,8 @@ use client::{self, error, Client as SubstrateClient, CallExecutor}; use client::{block_builder::api::BlockBuilder as BlockBuilderApi, runtime_api::Core}; use codec::{Decode, Encode}; use consensus_common::{self, evaluation}; -use primitives::{H256, AuthorityId, ed25519, Blake2Hasher}; -use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi}; +use primitives::{H256, Ed25519AuthorityId, ed25519, Blake2Hasher}; +use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi, AuthorityIdFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::BasicInherentData; use transaction_pool::txpool::{self, Pool as TransactionPool}; @@ -125,8 +125,7 @@ impl consensus_common::Environment<::Blo fn init( &self, parent_header: &<::Block as BlockT>::Header, - _: &[AuthorityId], - _: Arc, + _: &[AuthorityIdFor<::Block>], ) -> Result { let parent_hash = parent_header.hash(); diff --git a/core/client/db/src/cache/mod.rs b/core/client/db/src/cache/mod.rs index db2a1762db..11fbd93392 100644 --- a/core/client/db/src/cache/mod.rs +++ b/core/client/db/src/cache/mod.rs @@ -24,9 +24,8 @@ use kvdb::{KeyValueDB, DBTransaction}; use client::blockchain::Cache as BlockchainCache; use client::error::Result as ClientResult; use codec::{Encode, Decode}; -use primitives::AuthorityId; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, As}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, As, AuthorityIdFor}; use utils::{self, COLUMN_META}; use self::list_cache::ListCache; @@ -65,7 +64,7 @@ impl CacheItemT for T where T: Clone + Decode + Encode + PartialEq {} /// Database-backed blockchain data cache. pub struct DbCache { - authorities_at: ListCache, self::list_storage::DbStorage>, + authorities_at: ListCache>, self::list_storage::DbStorage>, } impl DbCache { @@ -112,14 +111,14 @@ impl DbCache { /// Cache operations that are to be committed after database transaction is committed. pub struct DbCacheTransactionOps { - authorities_at_op: Option>>, + authorities_at_op: Option>>>, } /// Database-backed blockchain data cache transaction valid for single block import. pub struct DbCacheTransaction<'a, Block: BlockT> { cache: &'a mut DbCache, tx: &'a mut DBTransaction, - authorities_at_op: Option>>, + authorities_at_op: Option>>>, } impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { @@ -135,7 +134,7 @@ impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { mut self, parent: ComplexBlockId, block: ComplexBlockId, - authorities_at: Option>, + authorities_at: Option>>, is_final: bool, ) -> ClientResult { assert!(self.authorities_at_op.is_none()); @@ -179,7 +178,7 @@ impl<'a, Block: BlockT> DbCacheTransaction<'a, Block> { pub struct DbCacheSync(pub RwLock>); impl BlockchainCache for DbCacheSync { - fn authorities_at(&self, at: BlockId) -> Option> { + fn authorities_at(&self, at: BlockId) -> Option>> { let cache = self.0.read(); let storage = cache.authorities_at.storage(); let db = storage.db(); diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 9df93e45b5..371f0a4013 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -64,10 +64,10 @@ use hash_db::Hasher; use kvdb::{KeyValueDB, DBTransaction}; use trie::MemoryDB; use parking_lot::RwLock; -use primitives::{H256, AuthorityId, Blake2Hasher, ChangesTrieConfiguration, convert_hash}; +use primitives::{H256, Blake2Hasher, ChangesTrieConfiguration, convert_hash}; use primitives::storage::well_known_keys; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero, Digest, DigestItem}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, As, NumberFor, Zero, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::BuildStorage; use state_machine::backend::Backend as StateBackend; use executor::RuntimeInfo; @@ -315,7 +315,7 @@ where Block: BlockT, Ok(()) } - fn update_authorities(&mut self, _authorities: Vec) { + fn update_authorities(&mut self, _authorities: Vec>) { // currently authorities are not cached on full nodes } diff --git a/core/client/db/src/light.rs b/core/client/db/src/light.rs index 729519020c..cbed1348a9 100644 --- a/core/client/db/src/light.rs +++ b/core/client/db/src/light.rs @@ -28,10 +28,10 @@ use client::{cht, LeafSet}; use client::error::{ErrorKind as ClientErrorKind, Result as ClientResult}; use client::light::blockchain::Storage as LightBlockchainStorage; use codec::{Decode, Encode}; -use primitives::{AuthorityId, Blake2Hasher}; +use primitives::Blake2Hasher; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, - Zero, One, As, NumberFor, Digest, DigestItem}; + Zero, One, As, NumberFor, Digest, DigestItem, AuthorityIdFor}; use cache::{DbCacheSync, DbCache, ComplexBlockId}; use utils::{meta_keys, Meta, db_err, open_database, read_db, block_id_to_lookup_key, read_meta}; @@ -306,7 +306,7 @@ impl LightBlockchainStorage for LightStorage fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, leaf_state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()> { @@ -510,7 +510,7 @@ pub(crate) mod tests { pub fn insert_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -521,7 +521,7 @@ pub(crate) mod tests { fn insert_final_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -532,7 +532,7 @@ pub(crate) mod tests { fn insert_non_best_block Header>( db: &LightStorage, - authorities: Option>, + authorities: Option>>, header: F, ) -> Hash { let header = header(); @@ -762,7 +762,7 @@ pub(crate) mod tests { fn authorites_are_cached() { let db = LightStorage::new_test(); - fn run_checks(db: &LightStorage, max: u64, checks: &[(u64, Option>)]) { + fn run_checks(db: &LightStorage, max: u64, checks: &[(u64, Option>>)]) { for (at, expected) in checks.iter().take_while(|(at, _)| *at <= max) { let actual = db.cache().authorities_at(BlockId::Number(*at)); assert_eq!(*expected, actual); diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 290159bdc5..1f370f0e1b 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -17,9 +17,8 @@ //! Substrate Client data backend use error; -use primitives::AuthorityId; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; -use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, NumberFor}; use state_machine::backend::Backend as StateBackend; use state_machine::ChangesTrieStorage as StateChangesTrieStorage; use hash_db::Hasher; @@ -67,7 +66,7 @@ pub trait BlockImportOperation where /// Append authorities set to the transaction. This is a set of parent block (set which /// has been used to check justification of this block). - fn update_authorities(&mut self, authorities: Vec); + fn update_authorities(&mut self, authorities: Vec>); /// Inject storage data into the database. fn update_storage(&mut self, update: >::Transaction) -> error::Result<()>; /// Inject storage data into the database replacing any existing data. diff --git a/core/client/src/blockchain.rs b/core/client/src/blockchain.rs index ddc8ba866a..7ff395113b 100644 --- a/core/client/src/blockchain.rs +++ b/core/client/src/blockchain.rs @@ -16,8 +16,7 @@ //! Substrate blockchain trait -use primitives::AuthorityId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, Header as HeaderT, NumberFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::Justification; @@ -90,7 +89,7 @@ pub trait Backend: HeaderBackend { /// Blockchain optional data cache. pub trait Cache: Send + Sync { /// Returns the set of authorities, that was active at given block or None if there's no entry in the cache. - fn authorities_at(&self, block: BlockId) -> Option>; + fn authorities_at(&self, block: BlockId) -> Option>>; } /// Block import outcome diff --git a/core/client/src/client.rs b/core/client/src/client.rs index b0dfb939d0..79a112e616 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -20,7 +20,6 @@ use std::{marker::PhantomData, collections::{HashSet, BTreeMap}, sync::Arc}; use error::Error; use futures::sync::mpsc; use parking_lot::{Mutex, RwLock}; -use primitives::AuthorityId; use runtime_primitives::{ Justification, generic::{BlockId, SignedBlock}, @@ -28,7 +27,7 @@ use runtime_primitives::{ use consensus::{Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, BlockOrigin, ForkChoiceStrategy}; use runtime_primitives::traits::{ Block as BlockT, Header as HeaderT, Zero, As, NumberFor, CurrentHeight, BlockNumberToHash, - ApiRef, ProvideRuntimeApi, Digest, DigestItem, + ApiRef, ProvideRuntimeApi, Digest, DigestItem, AuthorityIdFor }; use runtime_primitives::BuildStorage; use runtime_api::{Core as CoreAPI, CallRuntimeAt, ConstructRuntimeApi}; @@ -281,11 +280,11 @@ impl Client where } /// Get the set of authorities at a given block. - pub fn authorities_at(&self, id: &BlockId) -> error::Result> { + pub fn authorities_at(&self, id: &BlockId) -> error::Result>> { match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), None => self.executor.call(id, "Core_authorities", &[]) - .and_then(|r| Vec::::decode(&mut &r.return_data[..]) + .and_then(|r| Vec::>::decode(&mut &r.return_data[..]) .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) } } @@ -541,7 +540,7 @@ impl Client where import_headers: PrePostHeader, justification: Option, body: Option>, - authorities: Option>, + authorities: Option>>, finalized: bool, aux: Vec<(Vec, Option>)>, fork_choice: ForkChoiceStrategy, @@ -1030,7 +1029,7 @@ impl consensus::BlockImport for Client fn import_block( &self, import_block: ImportBlock, - new_authorities: Option>, + new_authorities: Option>>, ) -> Result { use runtime_primitives::traits::Digest; @@ -1098,7 +1097,7 @@ impl consensus::Authorities for Client Block: BlockT, { type Error = Error; - fn authorities(&self, at: &BlockId) -> Result, Self::Error> { + fn authorities(&self, at: &BlockId) -> Result>, Self::Error> { self.authorities_at(at).map_err(|e| e.into()) } } diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 1bf50d715d..896f9821de 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -22,10 +22,10 @@ use parking_lot::RwLock; use error; use backend::{self, NewBlockState}; use light; -use primitives::{AuthorityId, storage::well_known_keys}; +use primitives::storage::well_known_keys; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, Zero, - NumberFor, As, Digest, DigestItem}; + NumberFor, As, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::{Justification, StorageMap, ChildrenStorageMap}; use blockchain::{self, BlockStatus, HeaderBackend}; use state_machine::backend::{Backend as StateBackend, InMemory, Consolidate}; @@ -108,7 +108,7 @@ pub struct Blockchain { struct Cache { storage: Arc>>, - authorities_at: RwLock>>>, + authorities_at: RwLock>>>>, } impl Clone for Blockchain { @@ -368,7 +368,7 @@ impl light::blockchain::Storage for Blockchain fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> error::Result<()> { @@ -409,7 +409,7 @@ impl light::blockchain::Storage for Blockchain /// In-memory operation. pub struct BlockImportOperation { pending_block: Option>, - pending_authorities: Option>, + pending_authorities: Option>>, old_state: InMemory, new_state: Option>, changes_trie_update: Option>, @@ -444,7 +444,7 @@ where Ok(()) } - fn update_authorities(&mut self, authorities: Vec) { + fn update_authorities(&mut self, authorities: Vec>) { self.pending_authorities = Some(authorities); } @@ -632,13 +632,13 @@ where {} impl Cache { - fn insert(&self, at: Block::Hash, authorities: Option>) { + fn insert(&self, at: Block::Hash, authorities: Option>>) { self.authorities_at.write().insert(at, authorities); } } impl blockchain::Cache for Cache { - fn authorities_at(&self, block: BlockId) -> Option> { + fn authorities_at(&self, block: BlockId) -> Option>> { let hash = match block { BlockId::Hash(hash) => hash, BlockId::Number(number) => self.storage.read().hashes.get(&number).cloned()?, @@ -652,7 +652,7 @@ impl blockchain::Cache for Cache { pub fn cache_authorities_at( blockchain: &Blockchain, at: Block::Hash, - authorities: Option> + authorities: Option>> ) { blockchain.cache.insert(at, authorities); } diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 185b7cfa06..79a636bfbc 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -21,10 +21,9 @@ use std::sync::{Arc, Weak}; use futures::{Future, IntoFuture}; use parking_lot::RwLock; -use primitives::AuthorityId; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; use state_machine::{Backend as StateBackend, InMemoryChangesTrieStorage, TrieBackend}; -use runtime_primitives::traits::{Block as BlockT, NumberFor}; +use runtime_primitives::traits::{Block as BlockT, NumberFor, AuthorityIdFor}; use in_mem; use backend::{AuxStore, Backend as ClientBackend, BlockImportOperation, RemoteBackend, NewBlockState}; @@ -44,7 +43,7 @@ pub struct Backend { /// Light block (header and justification) import operation. pub struct ImportOperation { header: Option, - authorities: Option>, + authorities: Option>>, leaf_state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, _phantom: ::std::marker::PhantomData<(S, F)>, @@ -185,7 +184,7 @@ where Ok(()) } - fn update_authorities(&mut self, authorities: Vec) { + fn update_authorities(&mut self, authorities: Vec>) { self.authorities = Some(authorities); } diff --git a/core/client/src/light/blockchain.rs b/core/client/src/light/blockchain.rs index ed75043164..62e40c579e 100644 --- a/core/client/src/light/blockchain.rs +++ b/core/client/src/light/blockchain.rs @@ -21,9 +21,8 @@ use std::sync::Weak; use futures::{Future, IntoFuture}; use parking_lot::Mutex; -use primitives::AuthorityId; use runtime_primitives::{Justification, generic::BlockId}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT,NumberFor, Zero}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero, AuthorityIdFor}; use backend::{AuxStore, NewBlockState}; use blockchain::{Backend as BlockchainBackend, BlockStatus, Cache as BlockchainCache, @@ -41,7 +40,7 @@ pub trait Storage: AuxStore + BlockchainHeaderBackend { fn import_header( &self, header: Block::Header, - authorities: Option>, + authorities: Option>>, state: NewBlockState, aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()>; @@ -227,7 +226,7 @@ pub mod tests { fn import_header( &self, _header: Header, - _authorities: Option>, + _authorities: Option>>, _state: NewBlockState, _aux_ops: Vec<(Vec, Option>)>, ) -> ClientResult<()> { diff --git a/core/client/src/runtime_api.rs b/core/client/src/runtime_api.rs index 9ad92fb493..596b355ddf 100644 --- a/core/client/src/runtime_api.rs +++ b/core/client/src/runtime_api.rs @@ -21,7 +21,7 @@ pub use state_machine::OverlayedChanges; #[doc(hidden)] pub use runtime_primitives::{ - traits::{Block as BlockT, GetNodeBlockType, GetRuntimeBlockType, ApiRef, RuntimeApiInfo}, + traits::{AuthorityIdFor, Block as BlockT, GetNodeBlockType, GetRuntimeBlockType, ApiRef, RuntimeApiInfo}, generic::BlockId, transaction_validity::TransactionValidity }; #[doc(hidden)] @@ -34,7 +34,7 @@ pub use codec::{Encode, Decode}; #[cfg(feature = "std")] use error; use rstd::vec::Vec; -use primitives::{AuthorityId, OpaqueMetadata}; +use primitives::OpaqueMetadata; /// Something that can be constructed to a runtime api. @@ -91,7 +91,7 @@ decl_runtime_apis! { /// Returns the version of the runtime. fn version() -> RuntimeVersion; /// Returns the authorities. - fn authorities() -> Vec; + fn authorities() -> Vec>; /// Execute the given block. fn execute_block(block: Block); /// Initialise a block with the given header. diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index b57dab030c..f544c2f0e7 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -67,8 +67,8 @@ use client::ChainHead; use client::block_builder::api::BlockBuilder as BlockBuilderApi; use consensus_common::{ImportBlock, BlockOrigin}; use runtime_primitives::{generic, generic::BlockId, Justification, BasicInherentData}; -use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, ProvideRuntimeApi}; -use primitives::{AuthorityId, ed25519}; +use runtime_primitives::traits::{Block, Header, Digest, DigestItemFor, DigestItem, ProvideRuntimeApi}; +use primitives::{Ed25519AuthorityId, ed25519}; use futures::{Stream, Future, IntoFuture, future::{self, Either}}; use tokio::timer::Timeout; @@ -91,7 +91,7 @@ pub trait Network: Clone { } /// Get slot author for given block along with authorities. -fn slot_author(slot_num: u64, authorities: &[AuthorityId]) -> Option { +fn slot_author(slot_num: u64, authorities: &[Ed25519AuthorityId]) -> Option { if authorities.is_empty() { return None } let idx = slot_num % (authorities.len() as u64); @@ -168,7 +168,7 @@ pub fn start_aura_thread( I: BlockImport + Send + Sync + 'static, Error: From + From + 'static, SO: SyncOracle + Send + Clone + 'static, - DigestItemFor: CompatibleDigestItem + 'static, + DigestItemFor: CompatibleDigestItem + DigestItem + 'static, Error: ::std::error::Error + Send + From<::consensus_common::Error> + 'static, { use tokio::runtime::current_thread::Runtime; @@ -211,7 +211,7 @@ pub fn start_aura( I: BlockImport, Error: From + From, SO: SyncOracle + Send + Clone, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, Error: ::std::error::Error + Send + 'static + From<::consensus_common::Error>, { let make_authorship = move || { @@ -266,7 +266,7 @@ pub fn start_aura( slot_num, timestamp); // we are the slot author. make a block and sign it. - let proposer = match env.init(&chain_head, &authorities, pair.clone()) { + let proposer = match env.init(&chain_head, &authorities) { Ok(p) => p, Err(e) => { warn!("Unable to author block in slot {:?}: {:?}", slot_num, e); @@ -373,7 +373,7 @@ enum CheckedHeader { /// if it's successful, returns the pre-header, the slot number, and the signat. // // FIXME: needs misbehavior types - https://github.com/paritytech/substrate/issues/1018 -fn check_header(slot_now: u64, mut header: B::Header, hash: B::Hash, authorities: &[AuthorityId]) +fn check_header(slot_now: u64, mut header: B::Header, hash: B::Hash, authorities: &[Ed25519AuthorityId]) -> Result, String> where DigestItemFor: CompatibleDigestItem { @@ -446,7 +446,7 @@ impl ExtraVerification for NothingExtra { impl Verifier for AuraVerifier where C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, E: ExtraVerification, MakeInherent: Fn(u64, u64) -> Inherent + Send + Sync, { @@ -456,7 +456,7 @@ impl Verifier for AuraVerifier, mut body: Option>, - ) -> Result<(ImportBlock, Option>), String> { + ) -> Result<(ImportBlock, Option>), String> { use runtime_primitives::CheckInherentError; const MAX_TIMESTAMP_DRIFT_SECS: u64 = 60; @@ -600,7 +600,7 @@ pub fn import_queue( B: Block, C: Authorities + BlockImport + ProvideRuntimeApi + Send + Sync, C::Api: BlockBuilderApi, - DigestItemFor: CompatibleDigestItem, + DigestItemFor: CompatibleDigestItem + DigestItem, E: ExtraVerification, MakeInherent: Fn(u64, u64) -> Inherent + Send + Sync, { @@ -633,7 +633,7 @@ mod tests { type Proposer = DummyProposer; type Error = Error; - fn init(&self, parent_header: &::Header, _authorities: &[AuthorityId], _sign_with: Arc) + fn init(&self, parent_header: &::Header, _authorities: &[Ed25519AuthorityId]) -> Result { Ok(DummyProposer(parent_header.number + 1, self.0.clone())) diff --git a/core/consensus/common/src/block_import.rs b/core/consensus/common/src/block_import.rs index 488112f0eb..f4a60d435d 100644 --- a/core/consensus/common/src/block_import.rs +++ b/core/consensus/common/src/block_import.rs @@ -16,8 +16,7 @@ //! Block import helpers. -use primitives::AuthorityId; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, DigestItemFor}; +use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, Header as HeaderT, DigestItemFor}; use runtime_primitives::Justification; use std::borrow::Cow; @@ -146,6 +145,6 @@ pub trait BlockImport { /// Import a Block alongside the new authorities valid form this block forward fn import_block(&self, block: ImportBlock, - new_authorities: Option> + new_authorities: Option>> ) -> Result; } diff --git a/core/consensus/common/src/error.rs b/core/consensus/common/src/error.rs index 14a3fb81e1..ec378d24cb 100644 --- a/core/consensus/common/src/error.rs +++ b/core/consensus/common/src/error.rs @@ -44,13 +44,13 @@ error_chain! { } /// Error checking signature - InvalidSignature(s: ::primitives::ed25519::Signature, a: ::primitives::AuthorityId) { + InvalidSignature(s: ::primitives::ed25519::Signature, a: ::primitives::Ed25519AuthorityId) { description("Message signature is invalid"), display("Message signature {:?} by {:?} is invalid.", s, a), } /// Account is not an authority. - InvalidAuthority(a: ::primitives::AuthorityId) { + InvalidAuthority(a: ::primitives::Ed25519AuthorityId) { description("Message sender is not a valid authority"), display("Message sender {:?} is not a valid authority.", a), } diff --git a/core/consensus/common/src/import_queue.rs b/core/consensus/common/src/import_queue.rs index 3a048f781a..5264b29cef 100644 --- a/core/consensus/common/src/import_queue.rs +++ b/core/consensus/common/src/import_queue.rs @@ -29,10 +29,9 @@ use std::collections::{HashSet, VecDeque}; use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use parking_lot::{Condvar, Mutex, RwLock}; -use primitives::AuthorityId; use runtime_primitives::Justification; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero, AuthorityIdFor}; use error::Error as ConsensusError; @@ -68,7 +67,7 @@ pub trait Verifier: Send + Sync + Sized { header: B::Header, justification: Option, body: Option> - ) -> Result<(ImportBlock, Option>), String>; + ) -> Result<(ImportBlock, Option>>), String>; } /// Blocks import queue API. diff --git a/core/consensus/common/src/lib.rs b/core/consensus/common/src/lib.rs index e9b5d82951..23bde0c056 100644 --- a/core/consensus/common/src/lib.rs +++ b/core/consensus/common/src/lib.rs @@ -40,9 +40,8 @@ extern crate error_chain; use std::sync::Arc; -use primitives::{ed25519, AuthorityId}; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::Block; +use runtime_primitives::traits::{AuthorityIdFor, Block}; use futures::prelude::*; pub mod offline_tracker; @@ -60,7 +59,7 @@ pub use block_import::{BlockImport, ImportBlock, BlockOrigin, ImportResult, Fork /// Trait for getting the authorities at a given block. pub trait Authorities { type Error: ::std::error::Error + Send + 'static; /// Get the authorities at the given block. - fn authorities(&self, at: &BlockId) -> Result, Self::Error>; + fn authorities(&self, at: &BlockId) -> Result>, Self::Error>; } /// Environment producer for a Consensus instance. Creates proposer instance and communication streams. @@ -71,9 +70,8 @@ pub trait Environment { type Error: From; /// Initialize the proposal logic on top of a specific header. Provide - /// the authorities at that header, and a local key to sign any additional - /// consensus messages with as well. - fn init(&self, parent_header: &B::Header, authorities: &[AuthorityId], sign_with: Arc) + /// the authorities at that header. + fn init(&self, parent_header: &B::Header, authorities: &[AuthorityIdFor]) -> Result; } diff --git a/core/consensus/common/src/offline_tracker.rs b/core/consensus/common/src/offline_tracker.rs index bd8eab8b1b..1ed923da2c 100644 --- a/core/consensus/common/src/offline_tracker.rs +++ b/core/consensus/common/src/offline_tracker.rs @@ -16,8 +16,6 @@ //! Tracks offline validators. -use primitives::AuthorityId; - use std::collections::HashMap; use std::time::{Instant, Duration}; @@ -55,11 +53,11 @@ impl Observed { } /// Tracks offline validators and can issue a report for those offline. -pub struct OfflineTracker { +pub struct OfflineTracker { observed: HashMap, } -impl OfflineTracker { +impl OfflineTracker { /// Create a new tracker. pub fn new() -> Self { OfflineTracker { observed: HashMap::new() } @@ -114,10 +112,11 @@ impl OfflineTracker { #[cfg(test)] mod tests { use super::*; + use primitives::Ed25519AuthorityId; #[test] fn validator_offline() { - let mut tracker = OfflineTracker::new(); + let mut tracker = OfflineTracker::::new(); let v = [0; 32].into(); let v2 = [1; 32].into(); let v3 = [2; 32].into(); diff --git a/core/finality-grandpa/primitives/src/lib.rs b/core/finality-grandpa/primitives/src/lib.rs index df224fa9d4..15e4a027f6 100644 --- a/core/finality-grandpa/primitives/src/lib.rs +++ b/core/finality-grandpa/primitives/src/lib.rs @@ -34,7 +34,7 @@ extern crate substrate_client as client; extern crate sr_std as rstd; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use sr_primitives::traits::{DigestFor, NumberFor}; use rstd::vec::Vec; @@ -43,7 +43,7 @@ use rstd::vec::Vec; #[derive(Clone, Encode, Decode)] pub struct ScheduledChange { /// The new authorities after the change, along with their respective weights. - pub next_authorities: Vec<(AuthorityId, u64)>, + pub next_authorities: Vec<(Ed25519AuthorityId, u64)>, /// The number of blocks to delay. pub delay: N, } @@ -97,6 +97,6 @@ decl_runtime_apis! { /// Get the current GRANDPA authorities and weights. This should not change except /// for when changes are scheduled and the corresponding delay has passed. - fn grandpa_authorities() -> Vec<(AuthorityId, u64)>; + fn grandpa_authorities() -> Vec<(Ed25519AuthorityId, u64)>; } } diff --git a/core/finality-grandpa/src/authorities.rs b/core/finality-grandpa/src/authorities.rs index 64e9f36906..ca9bd61a88 100644 --- a/core/finality-grandpa/src/authorities.rs +++ b/core/finality-grandpa/src/authorities.rs @@ -17,7 +17,7 @@ //! Utilities for dealing with authorities, authority sets, and handoffs. use parking_lot::RwLock; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use std::cmp::Ord; use std::collections::HashMap; @@ -38,7 +38,7 @@ impl Clone for SharedAuthoritySet { impl SharedAuthoritySet { /// The genesis authority set. - pub(crate) fn genesis(initial: Vec<(AuthorityId, u64)>) -> Self { + pub(crate) fn genesis(initial: Vec<(Ed25519AuthorityId, u64)>) -> Self { SharedAuthoritySet { inner: Arc::new(RwLock::new(AuthoritySet::genesis(initial))) } @@ -66,7 +66,7 @@ where } /// Get the current authorities and their weights (for the current set ID). - pub(crate) fn current_authorities(&self) -> HashMap { + pub(crate) fn current_authorities(&self) -> HashMap { self.inner.read().current_authorities.iter().cloned().collect() } } @@ -89,14 +89,14 @@ pub(crate) struct Status { /// A set of authorities. #[derive(Debug, Clone, Encode, Decode)] pub(crate) struct AuthoritySet { - current_authorities: Vec<(AuthorityId, u64)>, + current_authorities: Vec<(Ed25519AuthorityId, u64)>, set_id: u64, pending_changes: Vec>, } impl AuthoritySet { /// Get a genesis set with given authorities. - pub(crate) fn genesis(initial: Vec<(AuthorityId, u64)>) -> Self { + pub(crate) fn genesis(initial: Vec<(Ed25519AuthorityId, u64)>) -> Self { AuthoritySet { current_authorities: initial, set_id: 0, @@ -105,7 +105,7 @@ impl AuthoritySet { } /// Get the current set id and a reference to the current authority set. - pub(crate) fn current(&self) -> (u64, &[(AuthorityId, u64)]) { + pub(crate) fn current(&self) -> (u64, &[(Ed25519AuthorityId, u64)]) { (self.set_id, &self.current_authorities[..]) } } @@ -249,7 +249,7 @@ where #[derive(Debug, Clone, Encode, Decode, PartialEq)] pub(crate) struct PendingChange { /// The new authorities and weights to apply. - pub(crate) next_authorities: Vec<(AuthorityId, u64)>, + pub(crate) next_authorities: Vec<(Ed25519AuthorityId, u64)>, /// How deep in the finalized chain the announcing block must be /// before the change is applied. pub(crate) finalization_depth: N, diff --git a/core/finality-grandpa/src/communication.rs b/core/finality-grandpa/src/communication.rs index 02a079b909..b8435cef6c 100644 --- a/core/finality-grandpa/src/communication.rs +++ b/core/finality-grandpa/src/communication.rs @@ -20,7 +20,7 @@ use futures::prelude::*; use futures::sync::mpsc; use codec::{Encode, Decode}; -use substrate_primitives::{ed25519, AuthorityId}; +use substrate_primitives::{ed25519, Ed25519AuthorityId}; use runtime_primitives::traits::Block as BlockT; use {Error, Network, Message, SignedMessage, Commit, CompactCommit}; @@ -34,7 +34,7 @@ fn localized_payload(round: u64, set_id: u64, message: &E) -> Vec // check a message. pub(crate) fn check_message_sig( message: &Message, - id: &AuthorityId, + id: &Ed25519AuthorityId, signature: &ed25519::Signature, round: u64, set_id: u64, @@ -55,7 +55,7 @@ pub(crate) fn checked_message_stream( round: u64, set_id: u64, inner: S, - voters: Arc>, + voters: Arc>, ) -> impl Stream,Error=Error> where S: Stream,Error=()> @@ -92,7 +92,7 @@ pub(crate) fn checked_message_stream( struct OutgoingMessages { round: u64, set_id: u64, - locals: Option<(Arc, AuthorityId)>, + locals: Option<(Arc, Ed25519AuthorityId)>, sender: mpsc::UnboundedSender>, network: N, } @@ -143,7 +143,7 @@ pub(crate) fn outgoing_messages( round: u64, set_id: u64, local_key: Option>, - voters: Arc>, + voters: Arc>, network: N, ) -> ( impl Stream,Error=Error>, @@ -151,7 +151,7 @@ pub(crate) fn outgoing_messages( ) { let locals = local_key.and_then(|pair| { let public = pair.public(); - let id = AuthorityId(public.0); + let id = Ed25519AuthorityId(public.0); if voters.contains_key(&id) { Some((pair, id)) } else { @@ -177,7 +177,7 @@ pub(crate) fn outgoing_messages( fn check_compact_commit( msg: CompactCommit, - voters: &HashMap, + voters: &HashMap, round: u64, set_id: u64, ) -> Option> { @@ -216,7 +216,7 @@ fn check_compact_commit( pub(crate) fn checked_commit_stream( set_id: u64, inner: S, - voters: Arc>, + voters: Arc>, ) -> impl Stream),Error=Error> where S: Stream,Error=()> diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index abd737d357..00ea6734af 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -92,10 +92,11 @@ use codec::{Encode, Decode}; use consensus_common::{BlockImport, Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, Authorities}; use runtime_primitives::traits::{ NumberFor, Block as BlockT, Header as HeaderT, DigestFor, ProvideRuntimeApi, Hash as HashT, + DigestItemFor, DigestItem, }; use fg_primitives::GrandpaApi; use runtime_primitives::generic::BlockId; -use substrate_primitives::{ed25519, H256, AuthorityId, Blake2Hasher}; +use substrate_primitives::{ed25519, H256, Ed25519AuthorityId, Blake2Hasher}; use tokio::timer::Delay; use grandpa::Error as GrandpaError; @@ -138,7 +139,7 @@ pub type SignedMessage = grandpa::SignedMessage< ::Hash, NumberFor, ed25519::Signature, - AuthorityId, + Ed25519AuthorityId, >; /// A prevote message for this chain's block type. pub type Prevote = grandpa::Prevote<::Hash, NumberFor>; @@ -149,14 +150,14 @@ pub type Commit = grandpa::Commit< ::Hash, NumberFor, ed25519::Signature, - AuthorityId + Ed25519AuthorityId >; /// A compact commit message for this chain's block type. pub type CompactCommit = grandpa::CompactCommit< ::Hash, NumberFor, ed25519::Signature, - AuthorityId + Ed25519AuthorityId >; /// Configuration for the GRANDPA service. @@ -306,7 +307,7 @@ impl, RA> BlockStatus for Arc { inner: Arc>, - voters: Arc>, + voters: Arc>, config: Config, authority_set: SharedAuthoritySet>, network: N, @@ -381,7 +382,7 @@ struct NewAuthoritySet { canon_number: N, canon_hash: H, set_id: u64, - authorities: Vec<(AuthorityId, u64)>, + authorities: Vec<(Ed25519AuthorityId, u64)>, } /// Signals either an early exit of a voter or an error. @@ -432,7 +433,7 @@ impl, N, RA> voter::Environment: BlockNumberOps, { type Timer = Box + Send>; - type Id = AuthorityId; + type Id = Ed25519AuthorityId; type Signature = ed25519::Signature; // regular round message streams @@ -611,7 +612,7 @@ impl> GrandpaJustification { fn decode_and_verify( encoded: Vec, set_id: u64, - voters: &HashMap, + voters: &HashMap, ) -> Result, ClientError> where NumberFor: grandpa::BlockNumberOps, { @@ -830,13 +831,14 @@ impl, RA, PRA> BlockImport B: Backend + 'static, E: CallExecutor + 'static + Clone + Send + Sync, DigestFor: Encode, + DigestItemFor: DigestItem, RA: Send + Sync, PRA: ProvideRuntimeApi, PRA::Api: GrandpaApi, { type Error = ConsensusError; - fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) + fn import_block(&self, mut block: ImportBlock, new_authorities: Option>) -> Result { use authorities::PendingChange; @@ -1030,10 +1032,11 @@ impl, RA, PRA> Authorities for GrandpaBloc where B: Backend + 'static, E: CallExecutor + 'static + Clone + Send + Sync, + DigestItemFor: DigestItem, { type Error = as Authorities>::Error; - fn authorities(&self, at: &BlockId) -> Result, Self::Error> { + fn authorities(&self, at: &BlockId) -> Result, Self::Error> { self.inner.authorities_at(at) } } @@ -1158,16 +1161,16 @@ pub fn block_import, RA, PRA>( fn committer_communication, B, E, N, RA>( set_id: u64, - voters: &Arc>, + voters: &Arc>, client: &Arc>, network: &N, ) -> ( impl Stream< - Item = (u64, ::grandpa::CompactCommit, ed25519::Signature, AuthorityId>), + Item = (u64, ::grandpa::CompactCommit, ed25519::Signature, Ed25519AuthorityId>), Error = ExitOrError>, >, impl Sink< - SinkItem = (u64, ::grandpa::Commit, ed25519::Signature, AuthorityId>), + SinkItem = (u64, ::grandpa::Commit, ed25519::Signature, Ed25519AuthorityId>), SinkError = ExitOrError>, >, ) where @@ -1176,6 +1179,7 @@ fn committer_communication, B, E, N, RA>( N: Network, RA: Send + Sync, NumberFor: BlockNumberOps, + DigestItemFor: DigestItem, { // verification stream let commit_in = ::communication::checked_commit_stream::( @@ -1217,6 +1221,7 @@ pub fn run_grandpa, N, RA>( N::In: Send + 'static, NumberFor: BlockNumberOps, DigestFor: Encode, + DigestItemFor: DigestItem, RA: Send + Sync + 'static, { use futures::future::{self, Loop as FutureLoop}; diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index a357fa81da..18bfaef1a5 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -230,12 +230,12 @@ impl Network for MessageRouting { #[derive(Default, Clone)] struct TestApi { - genesis_authorities: Vec<(AuthorityId, u64)>, + genesis_authorities: Vec<(Ed25519AuthorityId, u64)>, scheduled_changes: Arc>>>, } impl TestApi { - fn new(genesis_authorities: Vec<(AuthorityId, u64)>) -> Self { + fn new(genesis_authorities: Vec<(Ed25519AuthorityId, u64)>) -> Self { TestApi { genesis_authorities, scheduled_changes: Arc::new(Mutex::new(HashMap::new())), @@ -260,7 +260,7 @@ impl Core for RuntimeApi { unimplemented!("Not required for testing!") } - fn authorities(&self, _: &BlockId) -> Result> { + fn authorities(&self, _: &BlockId) -> Result> { unimplemented!("Not required for testing!") } @@ -300,7 +300,7 @@ impl GrandpaApi for RuntimeApi { fn grandpa_authorities( &self, at: &BlockId - ) -> Result> { + ) -> Result> { if at == &BlockId::Number(0) { Ok(self.inner.genesis_authorities.clone()) } else { @@ -325,9 +325,9 @@ impl GrandpaApi for RuntimeApi { const TEST_GOSSIP_DURATION: Duration = Duration::from_millis(500); const TEST_ROUTING_INTERVAL: Duration = Duration::from_millis(50); -fn make_ids(keys: &[Keyring]) -> Vec<(AuthorityId, u64)> { +fn make_ids(keys: &[Keyring]) -> Vec<(Ed25519AuthorityId, u64)> { keys.iter() - .map(|key| AuthorityId(key.to_raw_public())) + .map(|key| Ed25519AuthorityId(key.to_raw_public())) .map(|id| (id, 1)) .collect() } diff --git a/core/finality-grandpa/src/until_imported.rs b/core/finality-grandpa/src/until_imported.rs index 028b710acb..8cb825ac84 100644 --- a/core/finality-grandpa/src/until_imported.rs +++ b/core/finality-grandpa/src/until_imported.rs @@ -27,7 +27,7 @@ use futures::prelude::*; use futures::stream::Fuse; use parking_lot::Mutex; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor}; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use tokio::timer::Interval; use std::collections::{HashMap, VecDeque}; @@ -181,7 +181,7 @@ impl Stream for UntilImported } } -fn warn_authority_wrong_target(hash: H, id: AuthorityId) { +fn warn_authority_wrong_target(hash: H, id: Ed25519AuthorityId) { warn!( target: "afg", "Authority {:?} signed GRANDPA message with \ diff --git a/core/network/src/chain.rs b/core/network/src/chain.rs index 166dfe55a7..457f8852b2 100644 --- a/core/network/src/chain.rs +++ b/core/network/src/chain.rs @@ -20,16 +20,16 @@ use client::{self, Client as SubstrateClient, ClientInfo, BlockStatus, CallExecu use client::error::Error; use client::light::fetcher::ChangesProof; use consensus::{BlockImport, Error as ConsensusError}; -use runtime_primitives::traits::{Block as BlockT, Header as HeaderT}; +use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, AuthorityIdFor}; use runtime_primitives::generic::{BlockId}; use consensus::{ImportBlock, ImportResult}; use runtime_primitives::Justification; -use primitives::{H256, Blake2Hasher, AuthorityId}; +use primitives::{H256, Blake2Hasher}; /// Local client abstraction for the network. pub trait Client: Send + Sync { /// Import a new block. Parent is supposed to be existing in the blockchain. - fn import(&self, block: ImportBlock, new_authorities: Option>) + fn import(&self, block: ImportBlock, new_authorities: Option>>) -> Result; /// Get blockchain info. @@ -77,7 +77,7 @@ impl Client for SubstrateClient where Block: BlockT, RA: Send + Sync { - fn import(&self, block: ImportBlock, new_authorities: Option>) + fn import(&self, block: ImportBlock, new_authorities: Option>>) -> Result { (self as &SubstrateClient).import_block(block, new_authorities) diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index 94518978bc..48b401b21a 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -29,9 +29,8 @@ use client; use client::block_builder::BlockBuilder; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Zero}; +use runtime_primitives::traits::{Block as BlockT, Zero, AuthorityIdFor}; use io::SyncIo; -use primitives::AuthorityId; use protocol::{Context, Protocol, ProtocolContext}; use config::ProtocolConfig; use service::{NetworkLink, TransactionPool}; @@ -92,7 +91,7 @@ impl Verifier for PassThroughVerifier { header: B::Header, justification: Option, body: Option> - ) -> Result<(ImportBlock, Option>), String> { + ) -> Result<(ImportBlock, Option>>), String> { Ok((ImportBlock { origin, header, diff --git a/core/primitives/src/authority_id.rs b/core/primitives/src/authority_id.rs index 9a6abf1f03..7773e1a930 100644 --- a/core/primitives/src/authority_id.rs +++ b/core/primitives/src/authority_id.rs @@ -20,17 +20,17 @@ use H256; /// An identifier for an authority in the consensus algorithm. The same size as ed25519::Public. #[derive(Clone, Copy, PartialEq, Eq, Default, Encode, Decode)] -pub struct AuthorityId(pub [u8; 32]); +pub struct Ed25519AuthorityId(pub [u8; 32]); #[cfg(feature = "std")] -impl ::std::fmt::Display for AuthorityId { +impl ::std::fmt::Display for Ed25519AuthorityId { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "{}", ::ed25519::Public(self.0).to_ss58check()) } } #[cfg(feature = "std")] -impl ::std::fmt::Debug for AuthorityId { +impl ::std::fmt::Debug for Ed25519AuthorityId { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { let h = format!("{}", ::hexdisplay::HexDisplay::from(&self.0)); write!(f, "{} ({}…{})", ::ed25519::Public(self.0).to_ss58check(), &h[0..8], &h[60..]) @@ -38,57 +38,57 @@ impl ::std::fmt::Debug for AuthorityId { } #[cfg(feature = "std")] -impl ::std::hash::Hash for AuthorityId { +impl ::std::hash::Hash for Ed25519AuthorityId { fn hash(&self, state: &mut H) { self.0.hash(state); } } -impl AsRef<[u8; 32]> for AuthorityId { +impl AsRef<[u8; 32]> for Ed25519AuthorityId { fn as_ref(&self) -> &[u8; 32] { &self.0 } } -impl AsRef<[u8]> for AuthorityId { +impl AsRef<[u8]> for Ed25519AuthorityId { fn as_ref(&self) -> &[u8] { &self.0[..] } } -impl Into<[u8; 32]> for AuthorityId { +impl Into<[u8; 32]> for Ed25519AuthorityId { fn into(self) -> [u8; 32] { self.0 } } -impl From<[u8; 32]> for AuthorityId { +impl From<[u8; 32]> for Ed25519AuthorityId { fn from(a: [u8; 32]) -> Self { - AuthorityId(a) + Ed25519AuthorityId(a) } } -impl AsRef for AuthorityId { - fn as_ref(&self) -> &AuthorityId { +impl AsRef for Ed25519AuthorityId { + fn as_ref(&self) -> &Ed25519AuthorityId { &self } } -impl Into for AuthorityId { +impl Into for Ed25519AuthorityId { fn into(self) -> H256 { self.0.into() } } #[cfg(feature = "std")] -impl Serialize for AuthorityId { +impl Serialize for Ed25519AuthorityId { fn serialize(&self, serializer: S) -> Result where S: Serializer { ::ed25519::serialize(&self, serializer) } } #[cfg(feature = "std")] -impl<'de> Deserialize<'de> for AuthorityId { +impl<'de> Deserialize<'de> for Ed25519AuthorityId { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de> { ::ed25519::deserialize(deserializer) } diff --git a/core/primitives/src/ed25519.rs b/core/primitives/src/ed25519.rs index c6f28c64c1..05077fbd37 100644 --- a/core/primitives/src/ed25519.rs +++ b/core/primitives/src/ed25519.rs @@ -21,7 +21,7 @@ use untrusted; use blake2_rfc; use ring::{rand, signature}; -use {hash::H512, AuthorityId}; +use {hash::H512, Ed25519AuthorityId}; use base58::{ToBase58, FromBase58}; #[cfg(feature = "std")] @@ -169,14 +169,14 @@ impl AsRef for Pair { } } -impl Into for Public { - fn into(self) -> AuthorityId { - AuthorityId(self.0) +impl Into for Public { + fn into(self) -> Ed25519AuthorityId { + Ed25519AuthorityId(self.0) } } -impl From for Public { - fn from(id: AuthorityId) -> Self { +impl From for Public { + fn from(id: Ed25519AuthorityId) -> Self { Public(id.0) } } diff --git a/core/primitives/src/lib.rs b/core/primitives/src/lib.rs index 83f6a8d0bc..98289ddc18 100644 --- a/core/primitives/src/lib.rs +++ b/core/primitives/src/lib.rs @@ -109,7 +109,7 @@ mod tests; pub use self::hash::{H160, H256, H512, convert_hash}; pub use self::uint::U256; -pub use authority_id::AuthorityId; +pub use authority_id::Ed25519AuthorityId; pub use changes_trie::ChangesTrieConfiguration; pub use hash_db::Hasher; diff --git a/core/sr-api-macros/tests/decl_and_impl.rs b/core/sr-api-macros/tests/decl_and_impl.rs index 47822e538b..699c8c01cf 100644 --- a/core/sr-api-macros/tests/decl_and_impl.rs +++ b/core/sr-api-macros/tests/decl_and_impl.rs @@ -4,9 +4,8 @@ extern crate sr_primitives as runtime_primitives; extern crate substrate_primitives as primitives; extern crate substrate_test_client as test_client; -use runtime_primitives::traits::{GetNodeBlockType, Block as BlockT}; +use runtime_primitives::traits::{GetNodeBlockType, Block as BlockT, AuthorityIdFor}; use runtime_primitives::generic::BlockId; -use primitives::AuthorityId; use substrate_client::runtime_api::{self, RuntimeApiInfo}; use substrate_client::error::Result; use test_client::runtime::Block; @@ -57,7 +56,7 @@ impl_runtime_apis! { fn version() -> runtime_api::RuntimeVersion { unimplemented!() } - fn authorities() -> Vec { + fn authorities() -> Vec> { unimplemented!() } fn execute_block(_: Block) { diff --git a/core/sr-primitives/src/generic/digest.rs b/core/sr-primitives/src/generic/digest.rs index 1bf53a9c01..f2185c23db 100644 --- a/core/sr-primitives/src/generic/digest.rs +++ b/core/sr-primitives/src/generic/digest.rs @@ -19,7 +19,7 @@ use rstd::prelude::*; use codec::{Decode, Encode, Codec, Input}; -use traits::{self, Member, DigestItem as DigestItemT, MaybeSerializeDebug}; +use traits::{self, Member, DigestItem as DigestItemT, MaybeSerializeDebug, MaybeHash}; use substrate_primitives::hash::H512 as Signature; @@ -124,7 +124,7 @@ impl DigestItem { impl< Hash: Codec + Member + MaybeSerializeDebug, - AuthorityId: Codec + Member + MaybeSerializeDebug + AuthorityId: Codec + Member + MaybeSerializeDebug + MaybeHash > traits::DigestItem for DigestItem { type Hash = Hash; type AuthorityId = AuthorityId; diff --git a/core/sr-primitives/src/testing.rs b/core/sr-primitives/src/testing.rs index acbcd9241d..f552600de9 100644 --- a/core/sr-primitives/src/testing.rs +++ b/core/sr-primitives/src/testing.rs @@ -19,12 +19,30 @@ use serde::{Serialize, Serializer, Deserialize, de::Error as DeError, Deserializer}; use std::{fmt::Debug, ops::Deref, fmt}; use codec::{Codec, Encode, Decode}; -use traits::{self, Checkable, Applyable, BlakeTwo256}; +use traits::{self, Checkable, Applyable, BlakeTwo256, Convert}; use generic::DigestItem as GenDigestItem; -pub use substrate_primitives::{H256, AuthorityId}; +pub use substrate_primitives::{H256, Ed25519AuthorityId}; +use substrate_primitives::U256; -pub type DigestItem = GenDigestItem; +#[derive(Default, PartialEq, Eq, Clone, Decode, Encode, Debug)] +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +pub struct UintAuthorityId(pub u64); +impl Into for UintAuthorityId { + fn into(self) -> Ed25519AuthorityId { + let bytes: [u8; 32] = U256::from(self.0).into(); + Ed25519AuthorityId(bytes) + } +} + +pub struct ConvertUintAuthorityId; +impl Convert for ConvertUintAuthorityId { + fn convert(a: u64) -> UintAuthorityId { + UintAuthorityId(a) + } +} + +pub type DigestItem = GenDigestItem; #[derive(Default, PartialEq, Eq, Clone, Serialize, Debug, Encode, Decode)] pub struct Digest { diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index 8bdfd7eda6..0354953bfb 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -413,6 +413,16 @@ pub trait MaybeDisplay {} #[cfg(not(feature = "std"))] impl MaybeDisplay for T {} +#[cfg(feature = "std")] +pub trait MaybeHash: ::rstd::hash::Hash {} +#[cfg(feature = "std")] +impl MaybeHash for T {} + +#[cfg(not(feature = "std"))] +pub trait MaybeHash {} +#[cfg(not(feature = "std"))] +impl MaybeHash for T {} + #[cfg(feature = "std")] pub trait MaybeDecode: ::codec::Decode {} #[cfg(feature = "std")] @@ -500,6 +510,8 @@ pub type NumberFor = <::Header as Header>::Number; pub type DigestFor = <::Header as Header>::Digest; /// Extract the digest item type for a block. pub type DigestItemFor = as Digest>::Item; +/// Extract the authority ID type for a block. +pub type AuthorityIdFor = as DigestItem>::AuthorityId; /// A "checkable" piece of information, used by the standard Substrate Executive in order to /// check the validity of a piece of extrinsic information, usually by verifying the signature. @@ -575,7 +587,7 @@ pub trait Digest: Member + MaybeSerializeDebugButNotDeserialize + Default { /// If the runtime does not supports some 'system' items, use `()` as a stub. pub trait DigestItem: Codec + Member + MaybeSerializeDebugButNotDeserialize { type Hash: Member + MaybeSerializeDebugButNotDeserialize; - type AuthorityId: Member + MaybeSerializeDebugButNotDeserialize; + type AuthorityId: Member + MaybeSerializeDebugButNotDeserialize + MaybeHash + codec::Encode + codec::Decode; /// Returns Some if the entry is the `AuthoritiesChange` entry. fn as_authorities_change(&self) -> Option<&[Self::AuthorityId]>; diff --git a/core/test-runtime/src/genesismap.rs b/core/test-runtime/src/genesismap.rs index 5e6adec86a..82e9423f05 100644 --- a/core/test-runtime/src/genesismap.rs +++ b/core/test-runtime/src/genesismap.rs @@ -19,23 +19,23 @@ use std::collections::HashMap; use runtime_io::twox_128; use codec::{Encode, KeyedVec, Joiner}; -use primitives::{AuthorityId, ChangesTrieConfiguration}; +use primitives::{Ed25519AuthorityId, ChangesTrieConfiguration}; use primitives::storage::well_known_keys; use runtime_primitives::traits::Block; /// Configuration of a general Substrate test genesis block. pub struct GenesisConfig { pub changes_trie_config: Option, - pub authorities: Vec, - pub balances: Vec<(AuthorityId, u64)>, + pub authorities: Vec, + pub balances: Vec<(Ed25519AuthorityId, u64)>, } impl GenesisConfig { - pub fn new_simple(authorities: Vec, balance: u64) -> Self { + pub fn new_simple(authorities: Vec, balance: u64) -> Self { Self::new(false, authorities, balance) } - pub fn new(support_changes_trie: bool, authorities: Vec, balance: u64) -> Self { + pub fn new(support_changes_trie: bool, authorities: Vec, balance: u64) -> Self { GenesisConfig { changes_trie_config: match support_changes_trie { true => Some(super::changes_trie_config()), diff --git a/core/test-runtime/src/lib.rs b/core/test-runtime/src/lib.rs index cceeee74d1..8aafd99791 100644 --- a/core/test-runtime/src/lib.rs +++ b/core/test-runtime/src/lib.rs @@ -61,8 +61,7 @@ use runtime_primitives::{ }; use runtime_version::RuntimeVersion; pub use primitives::hash::H256; -use primitives::AuthorityId; -use primitives::OpaqueMetadata; +use primitives::{Ed25519AuthorityId, OpaqueMetadata}; #[cfg(any(feature = "std", test))] use runtime_version::NativeVersion; use consensus_aura::api as aura_api; @@ -143,7 +142,7 @@ pub type BlockNumber = u64; /// Index of a transaction. pub type Index = u64; /// The item of a block digest. -pub type DigestItem = runtime_primitives::generic::DigestItem; +pub type DigestItem = runtime_primitives::generic::DigestItem; /// The digest of a block. pub type Digest = runtime_primitives::generic::Digest; /// A test block. @@ -197,7 +196,7 @@ impl_runtime_apis! { version() } - fn authorities() -> Vec { + fn authorities() -> Vec { system::authorities() } diff --git a/core/test-runtime/src/system.rs b/core/test-runtime/src/system.rs index 3703fb553e..81cbabe906 100644 --- a/core/test-runtime/src/system.rs +++ b/core/test-runtime/src/system.rs @@ -25,7 +25,7 @@ use runtime_primitives::generic; use runtime_primitives::{ApplyError, ApplyOutcome, ApplyResult, transaction_validity::TransactionValidity}; use codec::{KeyedVec, Encode}; use super::{AccountId, BlockNumber, Extrinsic, H256 as Hash, Block, Header, Digest}; -use primitives::{Blake2Hasher}; +use primitives::{Ed25519AuthorityId, Blake2Hasher}; use primitives::storage::well_known_keys; const NONCE_OF: &[u8] = b"nonce:"; @@ -51,7 +51,7 @@ pub fn nonce_of(who: AccountId) -> u64 { } /// Get authorities ar given block. -pub fn authorities() -> Vec<::primitives::AuthorityId> { +pub fn authorities() -> Vec { let len: u32 = storage::unhashed::get(well_known_keys::AUTHORITY_COUNT) .expect("There are always authorities in test-runtime"); (0..len) @@ -94,7 +94,7 @@ pub fn execute_block(block: Block) { // check digest let mut digest = Digest::default(); if let Some(storage_changes_root) = storage_changes_root(header.parent_hash.into(), header.number - 1) { - digest.push(generic::DigestItem::ChangesTrieRoot::(storage_changes_root.into())); + digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root.into())); } assert!(digest == header.digest, "Header digest items must match that calculated."); } @@ -164,7 +164,7 @@ pub fn finalise_block() -> Header { let mut digest = Digest::default(); if let Some(storage_changes_root) = storage_changes_root { - digest.push(generic::DigestItem::ChangesTrieRoot::(storage_changes_root)); + digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root)); } Header { diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index 26e86f596b..b2d4b2ed4a 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -16,7 +16,7 @@ //! Substrate chain configurations. -use primitives::{AuthorityId, ed25519}; +use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, @@ -158,7 +158,7 @@ pub fn staging_testnet_config() -> ChainSpec { } /// Helper function to generate AuthorityID from seed -pub fn get_authority_id_from_seed(seed: &str) -> AuthorityId { +pub fn get_authority_id_from_seed(seed: &str) -> Ed25519AuthorityId { let padded_seed = pad_seed(seed); // NOTE from ed25519 impl: // prefer pkcs#8 unless security doesn't matter -- this is used primarily for tests. @@ -167,9 +167,9 @@ pub fn get_authority_id_from_seed(seed: &str) -> AuthorityId { /// Helper function to create GenesisConfig for testing pub fn testnet_genesis( - initial_authorities: Vec, + initial_authorities: Vec, upgrade_key: AccountId, - endowed_accounts: Option>, + endowed_accounts: Option>, ) -> GenesisConfig { let endowed_accounts = endowed_accounts.unwrap_or_else(|| { vec![ diff --git a/node/primitives/src/lib.rs b/node/primitives/src/lib.rs index e2336acafd..967b0d775c 100644 --- a/node/primitives/src/lib.rs +++ b/node/primitives/src/lib.rs @@ -56,7 +56,7 @@ pub type Balance = u128; /// The Ed25519 pub key of an session that belongs to an authority of the chain. This is /// exactly equivalent to what the substrate calls an "authority". -pub type SessionKey = primitives::AuthorityId; +pub type SessionKey = primitives::Ed25519AuthorityId; /// Index of a transaction in the chain. pub type Index = u64; diff --git a/srml/aura/src/mock.rs b/srml/aura/src/mock.rs index 125466c9c0..eb1fc9756b 100644 --- a/srml/aura/src/mock.rs +++ b/srml/aura/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header}}; +use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {Trait, Module, consensus, system, timestamp}; @@ -34,7 +34,7 @@ pub struct Test; impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } @@ -66,7 +66,7 @@ pub fn new_test_ext(authorities: Vec) -> runtime_io::TestExternalities::default().build_storage().unwrap().0; t.extend(consensus::GenesisConfig::{ code: vec![], - authorities, + authorities: authorities.into_iter().map(|a| UintAuthorityId(a)).collect(), }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 1, diff --git a/srml/consensus/src/lib.rs b/srml/consensus/src/lib.rs index 2c72642cf6..2a55ac9e19 100644 --- a/srml/consensus/src/lib.rs +++ b/srml/consensus/src/lib.rs @@ -143,12 +143,12 @@ impl RawLog { // Implementation for tests outside of this crate. #[cfg(any(feature = "std", test))] -impl From> for primitives::testing::DigestItem where N: Into { +impl From> for primitives::testing::DigestItem where N: Into { fn from(log: RawLog) -> primitives::testing::DigestItem { match log { RawLog::AuthoritiesChange(authorities) => - primitives::generic::DigestItem::AuthoritiesChange - ::(authorities.into_iter() + primitives::generic::DigestItem::AuthoritiesChange( + authorities.into_iter() .map(Into::into).collect()), } } diff --git a/srml/consensus/src/mock.rs b/srml/consensus/src/mock.rs index 5945a89018..78351309ac 100644 --- a/srml/consensus/src/mock.rs +++ b/srml/consensus/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header}}; +use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {GenesisConfig, Trait, Module, system}; @@ -33,7 +33,7 @@ pub struct Test; impl Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = ::InstantFinalityReportVec<()>; } impl system::Trait for Test { @@ -53,7 +53,7 @@ pub fn new_test_ext(authorities: Vec) -> runtime_io::TestExternalities::default().build_storage().unwrap().0; t.extend(GenesisConfig::{ code: vec![], - authorities, + authorities: authorities.into_iter().map(|a| UintAuthorityId(a)).collect(), }.build_storage().unwrap().0); t.into() } diff --git a/srml/consensus/src/tests.rs b/srml/consensus/src/tests.rs index 9c57739fbc..9dc65136fb 100644 --- a/srml/consensus/src/tests.rs +++ b/srml/consensus/src/tests.rs @@ -18,21 +18,20 @@ #![cfg(test)] -use primitives::{generic, testing, traits::{OnFinalise, ProvideInherent}}; +use primitives::{generic, testing::{self, UintAuthorityId}, traits::{OnFinalise, ProvideInherent}}; use runtime_io::with_externalities; -use substrate_primitives::H256; use mock::{Consensus, System, new_test_ext}; #[test] fn authorities_change_logged() { with_externalities(&mut new_test_ext(vec![1, 2, 3]), || { System::initialise(&1, &Default::default(), &Default::default()); - Consensus::set_authorities(&[4, 5, 6]); + Consensus::set_authorities(&[UintAuthorityId(4), UintAuthorityId(5), UintAuthorityId(6)]); Consensus::on_finalise(1); let header = System::finalise(); assert_eq!(header.digest, testing::Digest { logs: vec![ - generic::DigestItem::AuthoritiesChange::(vec![4, 5, 6]), + generic::DigestItem::AuthoritiesChange(vec![UintAuthorityId(4).into(), UintAuthorityId(5).into(), UintAuthorityId(6).into()]), ], }); }); @@ -54,8 +53,8 @@ fn authorities_change_is_not_logged_when_not_changed() { fn authorities_change_is_not_logged_when_changed_back_to_original() { with_externalities(&mut new_test_ext(vec![1, 2, 3]), || { System::initialise(&1, &Default::default(), &Default::default()); - Consensus::set_authorities(&[4, 5, 6]); - Consensus::set_authorities(&[1, 2, 3]); + Consensus::set_authorities(&[UintAuthorityId(4), UintAuthorityId(5), UintAuthorityId(6)]); + Consensus::set_authorities(&[UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); Consensus::on_finalise(1); let header = System::finalise(); assert_eq!(header.digest, testing::Digest { diff --git a/srml/grandpa/src/lib.rs b/srml/grandpa/src/lib.rs index 50ab852891..1a0d0f7c31 100644 --- a/srml/grandpa/src/lib.rs +++ b/srml/grandpa/src/lib.rs @@ -61,7 +61,7 @@ use runtime_support::dispatch::Result; use runtime_support::storage::StorageValue; use runtime_support::storage::unhashed::StorageVec; use primitives::traits::{CurrentHeight, Convert}; -use substrate_primitives::AuthorityId; +use substrate_primitives::Ed25519AuthorityId; use system::ensure_signed; use primitives::traits::MaybeSerializeDebug; @@ -105,7 +105,7 @@ impl RawLog { } impl GrandpaChangeSignal for RawLog - where N: Clone, SessionKey: Clone + Into, + where N: Clone, SessionKey: Clone + Into, { fn as_signal(&self) -> Option> { RawLog::as_signal(self).map(|(delay, next_authorities)| ScheduledChange { @@ -243,7 +243,7 @@ impl Module { } } -impl Module where AuthorityId: core::convert::From<::SessionKey> { +impl Module where Ed25519AuthorityId: core::convert::From<::SessionKey> { /// See if the digest contains any scheduled change. pub fn scrape_digest_change(log: &Log) -> Option> diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 6992a5311f..05381e6df9 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -248,8 +248,8 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use primitives::BuildStorage; - use primitives::traits::{Identity, BlakeTwo256}; - use primitives::testing::{Digest, DigestItem, Header}; + use primitives::traits::BlakeTwo256; + use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; impl_outer_origin!{ pub enum Origin for Test {} @@ -260,7 +260,7 @@ mod tests { impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl system::Trait for Test { @@ -281,7 +281,7 @@ mod tests { type OnTimestampSet = (); } impl Trait for Test { - type ConvertAccountIdToSessionKey = Identity; + type ConvertAccountIdToSessionKey = ConvertUintAuthorityId; type OnSessionChange = (); type Event = (); } @@ -294,7 +294,7 @@ mod tests { let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; t.extend(consensus::GenesisConfig::{ code: vec![], - authorities: vec![1, 2, 3], + authorities: vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)], }.build_storage().unwrap().0); t.extend(timestamp::GenesisConfig::{ period: 5, @@ -309,7 +309,7 @@ mod tests { #[test] fn simple_setup_should_work() { with_externalities(&mut new_test_ext(), || { - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1).into(), UintAuthorityId(2).into(), UintAuthorityId(3).into()]); assert_eq!(Session::length(), 2); assert_eq!(Session::validators(), vec![1, 2, 3]); }); @@ -405,25 +405,25 @@ mod tests { // Block 1: No change System::set_block_number(1); Session::check_rotate_session(1); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 2: Session rollover, but no change. System::set_block_number(2); Session::check_rotate_session(2); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 3: Set new key for validator 2; no visible change. System::set_block_number(3); - assert_ok!(Session::set_key(Origin::signed(2), 5)); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_ok!(Session::set_key(Origin::signed(2), UintAuthorityId(5))); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); Session::check_rotate_session(3); - assert_eq!(Consensus::authorities(), vec![1, 2, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); // Block 4: Session rollover, authority 2 changes. System::set_block_number(4); Session::check_rotate_session(4); - assert_eq!(Consensus::authorities(), vec![1, 5, 3]); + assert_eq!(Consensus::authorities(), vec![UintAuthorityId(1), UintAuthorityId(5), UintAuthorityId(3)]); }); } } diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index cf5976f88a..b6efce154d 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -19,8 +19,8 @@ #![cfg(test)] use primitives::BuildStorage; -use primitives::{Perbill, traits::Identity}; -use primitives::testing::{Digest, DigestItem, Header}; +use primitives::Perbill; +use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; use substrate_primitives::{H256, Blake2Hasher}; use runtime_io; use {GenesisConfig, Module, Trait, consensus, session, system, timestamp, balances}; @@ -35,7 +35,7 @@ pub struct Test; impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl system::Trait for Test { @@ -58,7 +58,7 @@ impl balances::Trait for Test { type Event = (); } impl session::Trait for Test { - type ConvertAccountIdToSessionKey = Identity; + type ConvertAccountIdToSessionKey = ConvertUintAuthorityId; type OnSessionChange = Staking; type Event = (); } diff --git a/srml/system/src/lib.rs b/srml/system/src/lib.rs index bd349982e4..67b10e2639 100644 --- a/srml/system/src/lib.rs +++ b/srml/system/src/lib.rs @@ -176,8 +176,7 @@ impl RawLog { impl From> for primitives::testing::DigestItem { fn from(log: RawLog) -> primitives::testing::DigestItem { match log { - RawLog::ChangesTrieRoot(root) => primitives::generic::DigestItem::ChangesTrieRoot - ::(root), + RawLog::ChangesTrieRoot(root) => primitives::generic::DigestItem::ChangesTrieRoot(root), } } } diff --git a/srml/timestamp/src/lib.rs b/srml/timestamp/src/lib.rs index d89bb50a64..0d9360b747 100644 --- a/srml/timestamp/src/lib.rs +++ b/srml/timestamp/src/lib.rs @@ -190,7 +190,7 @@ mod tests { use substrate_primitives::H256; use runtime_primitives::BuildStorage; use runtime_primitives::traits::BlakeTwo256; - use runtime_primitives::testing::{Digest, DigestItem, Header}; + use runtime_primitives::testing::{Digest, DigestItem, Header, UintAuthorityId}; impl_outer_origin! { pub enum Origin for Test {} @@ -213,7 +213,7 @@ mod tests { impl consensus::Trait for Test { const NOTE_OFFLINE_POSITION: u32 = 1; type Log = DigestItem; - type SessionKey = u64; + type SessionKey = UintAuthorityId; type InherentOfflineReport = (); } impl Trait for Test { -- GitLab From aeff82596cbb8a49346c4945ea588454acfad3e0 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 8 Jan 2019 11:15:42 +0100 Subject: [PATCH 033/349] Updating parking_lot dependencies to 0.7.1 (#1361) --- Cargo.lock | 1337 ++++++++--------- core/client/Cargo.toml | 2 +- core/client/db/Cargo.toml | 2 +- core/consensus/aura/Cargo.toml | 2 +- core/consensus/common/Cargo.toml | 2 +- core/consensus/rhd/Cargo.toml | 2 +- core/executor/Cargo.toml | 2 +- core/executor/wasm/Cargo.lock | 29 +- core/finality-grandpa/Cargo.toml | 2 +- core/network-libp2p/Cargo.toml | 2 +- core/network/Cargo.toml | 2 +- core/rpc/Cargo.toml | 2 +- core/service/Cargo.toml | 2 +- core/state-db/Cargo.toml | 2 +- core/state-machine/Cargo.toml | 2 +- core/telemetry/Cargo.toml | 2 +- core/test-runtime/wasm/Cargo.lock | 83 +- .../substrate_test_runtime.compact.wasm | Bin 42266 -> 42281 bytes core/transaction-pool/Cargo.toml | 2 +- core/transaction-pool/graph/Cargo.toml | 2 +- node/runtime/wasm/Cargo.lock | 83 +- .../release/node_runtime.compact.wasm | Bin 807803 -> 809938 bytes srml/aura/Cargo.toml | 2 +- 23 files changed, 777 insertions(+), 789 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 749a8764f7..53489b81a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,3 +1,11 @@ +[[package]] +name = "MacTypes-sys" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "aes-ctr" version = "0.1.0" @@ -34,7 +42,7 @@ name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -45,9 +53,9 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -71,7 +79,7 @@ dependencies = [ "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -81,7 +89,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "arrayvec" -version = "0.4.7" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -100,48 +108,46 @@ name = "assert_matches" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "aster" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "autocfg" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "backtrace" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.24" +version = "0.1.28" 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.43 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "base-x" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -178,29 +184,23 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.29.1" +version = "0.37.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", "cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "clang-sys 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "quasi_codegen 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bitflags" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "0.9.1" @@ -226,7 +226,7 @@ name = "blake2-rfc" version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -269,7 +269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bytes" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -283,7 +283,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.25" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -318,17 +318,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "clang-sys" -version = "0.21.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -351,7 +351,7 @@ name = "clear_on_drop" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -367,7 +367,7 @@ name = "cmake" version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -381,7 +381,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -389,7 +389,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -400,14 +400,14 @@ dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "criterion-plot 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "criterion-stats 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "isatty 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "simplelog 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -435,8 +435,29 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.2.12" +version = "0.6.0" +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)", + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-channel" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] name = "crossbeam-deque" @@ -449,11 +470,11 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -461,7 +482,7 @@ name = "crossbeam-epoch" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (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)", @@ -472,12 +493,12 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (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.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (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)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -493,12 +514,7 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "crossbeam-utils" -version = "0.6.1" +version = "0.6.3" 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)", @@ -565,7 +581,7 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -576,9 +592,9 @@ dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -612,7 +628,7 @@ dependencies = [ "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -645,9 +661,9 @@ version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -661,7 +677,7 @@ name = "error-chain" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -669,8 +685,8 @@ name = "eth-secp256k1" version = "0.5.7" source = "git+https://github.com/paritytech/rust-secp256k1#ccc06e7480148b723eb44ac56cf4d20eec380b6f" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -682,30 +698,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "exit-future" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -719,7 +735,7 @@ name = "fdlimit" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -742,7 +758,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -772,7 +788,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -802,7 +818,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -823,7 +839,7 @@ name = "getset" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -841,25 +857,25 @@ dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "h2" -version = "0.1.13" +version = "0.1.14" 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.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -885,7 +901,7 @@ dependencies = [ [[package]] name = "heck" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -927,7 +943,7 @@ name = "http" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -939,7 +955,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "humantime" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -955,8 +971,8 @@ dependencies = [ "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -965,27 +981,27 @@ dependencies = [ [[package]] name = "hyper" -version = "0.12.17" +version = "0.12.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1013,7 +1029,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1036,7 +1052,7 @@ name = "iovec" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1046,8 +1062,8 @@ version = "0.1.9" 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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1072,21 +1088,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ - "hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)", + "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1097,35 +1113,35 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1133,13 +1149,13 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0d78b8f145c18f08c1103f6b0b51991a89fb0a6f" +source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-server-utils 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] @@ -1191,10 +1207,10 @@ dependencies = [ "interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rocksdb 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1214,30 +1230,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lazycell" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.43" +version = "0.2.46" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "libloading" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 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)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libloading" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1246,7 +1252,7 @@ name = "libp2p" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", @@ -1268,8 +1274,8 @@ dependencies = [ "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1278,7 +1284,7 @@ version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1286,13 +1292,13 @@ dependencies = [ "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1306,7 +1312,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1316,17 +1322,17 @@ source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371 dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1335,7 +1341,7 @@ name = "libp2p-identify" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", @@ -1343,10 +1349,10 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1356,10 +1362,10 @@ name = "libp2p-kad" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1370,12 +1376,12 @@ dependencies = [ "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1384,14 +1390,14 @@ name = "libp2p-mplex" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1406,8 +1412,8 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1415,8 +1421,8 @@ name = "libp2p-ping" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1425,8 +1431,8 @@ dependencies = [ "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1439,8 +1445,8 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1448,16 +1454,16 @@ name = "libp2p-relay" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1468,7 +1474,7 @@ source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371 dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", @@ -1476,13 +1482,13 @@ dependencies = [ "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1496,9 +1502,9 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1509,7 +1515,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1521,7 +1527,7 @@ dependencies = [ "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1535,7 +1541,7 @@ dependencies = [ "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1544,23 +1550,23 @@ name = "libp2p-yamux" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "yamux 0.1.0 (git+https://github.com/paritytech/yamux)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "yamux 0.1.6 (git+https://github.com/paritytech/yamux)", ] [[package]] name = "librocksdb-sys" -version = "5.11.3" +version = "5.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bindgen 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1571,10 +1577,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "lock_api" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1627,16 +1633,16 @@ name = "memchr" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "memchr" -version = "2.1.1" +version = "2.1.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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1676,8 +1682,8 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1690,7 +1696,7 @@ name = "mio-extras" version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1702,7 +1708,7 @@ version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1725,9 +1731,9 @@ dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1748,12 +1754,12 @@ name = "multistream-select" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1771,15 +1777,15 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1788,7 +1794,7 @@ version = "0.2.33" 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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1798,9 +1804,9 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1809,7 +1815,7 @@ name = "node-cli" version = "0.1.0" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1820,7 +1826,7 @@ dependencies = [ "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", - "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-basic-authorship 0.1.0", "substrate-cli 0.3.0", "substrate-client 0.1.0", @@ -1832,7 +1838,7 @@ dependencies = [ "substrate-service 0.3.0", "substrate-service-test 0.3.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1861,7 +1867,7 @@ dependencies = [ "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1871,8 +1877,8 @@ 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)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -1890,7 +1896,7 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", "sr-version 0.1.0", @@ -1923,7 +1929,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "nohash-hasher" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1960,15 +1966,15 @@ name = "num_cpus" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "num_cpus" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1992,15 +1998,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl" -version = "0.10.15" +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.43 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2010,11 +2016,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.39" +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.43 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (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)", ] @@ -2032,6 +2038,14 @@ dependencies = [ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "owning_ref" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parity-bytes" version = "0.1.0" @@ -2047,8 +2061,8 @@ name = "parity-codec" version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2113,16 +2127,16 @@ name = "parking_lot" version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2131,9 +2145,9 @@ name = "parking_lot_core" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2142,10 +2156,10 @@ name = "parking_lot_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2154,10 +2168,10 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2221,7 +2235,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.3.8" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2237,7 +2251,7 @@ dependencies = [ [[package]] name = "protobuf" -version = "2.1.4" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2250,26 +2264,6 @@ dependencies = [ "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "quasi" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "quasi_codegen" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "quick-error" version = "0.1.4" @@ -2285,7 +2279,7 @@ name = "quote" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2302,7 +2296,7 @@ version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2312,7 +2306,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2323,36 +2317,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_chacha" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2378,10 +2371,22 @@ dependencies = [ [[package]] name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_os" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2395,7 +2400,7 @@ dependencies = [ [[package]] name = "rand_xorshift" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2426,13 +2431,13 @@ 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.43 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_syscall" -version = "0.1.40" +version = "0.1.50" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2440,7 +2445,7 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2449,7 +2454,7 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2457,12 +2462,12 @@ dependencies = [ [[package]] name = "regex" -version = "1.0.6" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2472,15 +2477,15 @@ name = "regex-syntax" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2510,18 +2515,18 @@ 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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (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)", ] [[package]] name = "rocksdb" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "librocksdb-sys 5.11.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2530,15 +2535,15 @@ version = "0.2.36" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rustc-demangle" -version = "0.1.9" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -2569,9 +2574,9 @@ name = "rw-stream-sink" version = "0.1.0" source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2623,17 +2628,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "security-framework-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2651,27 +2657,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.80" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.80" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2711,7 +2717,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2736,28 +2742,28 @@ dependencies = [ [[package]] name = "slog-json" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "slog-scope" -version = "4.0.1" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "smallvec" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2775,7 +2781,7 @@ dependencies = [ "substrate-client 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2801,9 +2807,9 @@ dependencies = [ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -2818,8 +2824,8 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2835,8 +2841,8 @@ version = "0.1.0" 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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", ] @@ -2848,7 +2854,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2865,8 +2871,8 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2886,7 +2892,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2903,7 +2909,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2921,7 +2927,7 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-sandbox 0.1.0", @@ -2930,7 +2936,7 @@ dependencies = [ "srml-support 0.1.0", "srml-system 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2941,7 +2947,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2960,7 +2966,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2977,7 +2983,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -2994,7 +3000,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3011,8 +3017,8 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3029,8 +3035,8 @@ version = "0.1.0" 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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", ] @@ -3043,7 +3049,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3062,7 +3068,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3083,7 +3089,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3104,8 +3110,8 @@ 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)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3121,7 +3127,7 @@ dependencies = [ "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "srml-support-procedural-tools 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3131,7 +3137,7 @@ dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", "srml-support-procedural-tools-derive 0.1.0", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3140,7 +3146,7 @@ version = "0.1.0" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3151,7 +3157,7 @@ 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)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3165,7 +3171,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3182,7 +3188,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3199,7 +3205,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3227,14 +3233,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "stdweb" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3244,29 +3250,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stdweb-internal-macros" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stdweb-internal-runtime" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -3279,7 +3285,7 @@ dependencies = [ [[package]] name = "string" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -3289,22 +3295,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "structopt" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "structopt-derive" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3348,28 +3354,28 @@ dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", - "structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", + "structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-client 0.1.0", "substrate-network 0.1.0", "substrate-primitives 0.1.0", "substrate-service 0.3.0", "substrate-telemetry 0.3.0", "sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3386,7 +3392,7 @@ dependencies = [ "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -3413,7 +3419,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-executor 0.1.0", @@ -3434,7 +3440,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-version 0.1.0", @@ -3449,7 +3455,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3474,12 +3480,12 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3487,12 +3493,12 @@ name = "substrate-consensus-rhd" version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3506,7 +3512,7 @@ dependencies = [ "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3520,17 +3526,17 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", - "wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3543,8 +3549,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-consensus-common 0.1.0", @@ -3554,7 +3560,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3586,9 +3592,9 @@ dependencies = [ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3606,7 +3612,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -3616,7 +3622,7 @@ dependencies = [ "substrate-network-libp2p 0.1.0", "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3624,22 +3630,22 @@ name = "substrate-network-libp2p" version = "0.1.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3661,13 +3667,13 @@ dependencies = [ "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)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-serializer 0.1.0", - "twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3682,11 +3688,11 @@ dependencies = [ "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (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.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-client 0.1.0", @@ -3696,7 +3702,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3707,7 +3713,7 @@ dependencies = [ "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-rpc 0.1.0", ] @@ -3716,8 +3722,8 @@ dependencies = [ name = "substrate-serializer" version = "0.1.0" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3725,15 +3731,15 @@ name = "substrate-service" version = "0.3.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3749,7 +3755,7 @@ dependencies = [ "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", "target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3767,7 +3773,7 @@ dependencies = [ "substrate-primitives 0.1.0", "substrate-service 0.3.0", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3778,7 +3784,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", ] @@ -3791,7 +3797,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -3804,11 +3810,11 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slog-json 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "slog-scope 4.0.1 (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.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3835,8 +3841,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3856,9 +3862,9 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-test-runtime 0.1.0", ] @@ -3871,7 +3877,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-keyring 0.1.0", @@ -3912,7 +3918,7 @@ name = "syn" version = "0.13.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3929,7 +3935,7 @@ dependencies = [ [[package]] name = "syn" -version = "0.15.22" +version = "0.15.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3944,59 +3950,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "syntex" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_errors" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_pos" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "syntex_syntax" -version = "0.58.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "sysinfo" version = "0.7.0" 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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4022,13 +3986,13 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.4" +version = "3.0.5" 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)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4055,8 +4019,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4073,8 +4037,8 @@ name = "thread-id" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4093,11 +4057,11 @@ dependencies = [ [[package]] name = "time" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4111,34 +4075,35 @@ dependencies = [ [[package]] name = "tk-listen" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4146,9 +4111,9 @@ name = "tokio-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4156,26 +4121,26 @@ name = "tokio-core" version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-current-thread" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4186,130 +4151,133 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-executor" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-fs" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-io" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-reactor" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-tcp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-threadpool" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-timer" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-tls" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-udp" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tokio-uds" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "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-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4378,10 +4346,10 @@ dependencies = [ [[package]] name = "twox-hash" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4396,7 +4364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ucd-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4449,11 +4417,6 @@ name = "unicode-width" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "unicode-xid" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -4480,7 +4443,7 @@ name = "unsigned-varint" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4537,21 +4500,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wabt" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - "wabt-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wabt-sys" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4568,7 +4531,7 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4584,19 +4547,27 @@ dependencies = [ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "which" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi" version = "0.2.8" @@ -4649,7 +4620,7 @@ version = "0.7.9" source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "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)", @@ -4666,12 +4637,12 @@ version = "0.7.9" 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.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "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.15 (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)", @@ -4689,7 +4660,7 @@ dependencies = [ [[package]] name = "xdg" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4699,20 +4670,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "yamux" -version = "0.1.0" -source = "git+https://github.com/paritytech/yamux#8f3d16e7645447645d3552a52159d56c8a01de27" +version = "0.1.6" +source = "git+https://github.com/paritytech/yamux#957bccae409e827db4be05abb67d1d6246d5f5c8" dependencies = [ - "bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "nohash-hasher 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] +"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" "checksum aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f65958ff3692041c36fc009261ccd63f24cd8e0dc1164266f068c2387e8b4e4f" "checksum aes-soft 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67cc03b0a090a05cb01e96998a01905d7ceedce1bc23b756c0bb7faa0682ccb1" "checksum aesni 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6810b7fb9f2bb4f76f05ac1c170b8dde285b6308955dc3afd89710268c958d9e" @@ -4722,20 +4695,19 @@ dependencies = [ "checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" -"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" +"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" "checksum asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "766afdc5c6d7c15de1abe4c9c15e360be3aa972c363ba5b606be3c4271235886" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5" -"checksum aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfdf7355d9db158df68f976ed030ab0f6578af811f5a7bb6dcf221ec24e0e0" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" -"checksum base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5cda5d0f5584d129112ad8bf4775b9fd2b9f1e30738c7b1a25314ba2244d6a51" +"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" +"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" +"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" +"checksum base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d55aa264e822dbafa12db4d54767aff17c6ba55ea2d8559b3e17392c7d000e5d" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5032d51da2741729bfdaeb2664d9b8c6d9fd1e2b90715c660b6def36628499c2" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" -"checksum bindgen 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba610cba0c1727ed837316540068b51349b8268c073906067b7c3948598929bd" -"checksum bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1370e9fc2a6ae53aea8b7a5110edbd08836ed87c88736dfabccade1c2b44bff4" +"checksum bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1b25ab82877ea8fe6ce1ce1f8ac54361f0218bad900af9eb11803994bf67c221" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73b77e29dbd0115e43938be2d5128ecf81c0353e00acaa65339a1242586951d9" @@ -4746,14 +4718,14 @@ dependencies = [ "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" "checksum byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96c8b41881888cc08af32d47ac4edd52bc7fa27fef774be47a92443756451304" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum bytes 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0ce55bd354b095246fc34caf4e9e242f5297a7fd938b090cadfea6eee614aa62" +"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum cast 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "011941fb53da1a8ac3e4132a1becc367c44fe13f630769f3143d8c66c91c6cb6" -"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" +"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42aac45e9567d97474a834efdee3081b3c942b2205be932092f53354ce503d6c" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" -"checksum clang-sys 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e414af9726e1d11660801e73ccc7fb81803fb5f49e5903a25b348b2b3b480d2e" +"checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" @@ -4764,14 +4736,14 @@ dependencies = [ "checksum criterion 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f58b0200bf321214bdda8c797cf0071bcc638171c40ec198c3f652a4edaacde3" "checksum criterion-plot 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "885431f7865f9d4956b466126674e5ea40a0f193d42157e56630c356c5501957" "checksum criterion-stats 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c71521cb4c7b7eac76b540e75447fb0172c4234d6333729001b886aaa21d6da4" -"checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" +"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94" +"checksum crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "137bc235f622ffaa0428e3854e24acb53291fc0b3ff6fb2cb75a8be6fb02f06b" "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-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" "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-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c" "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" -"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" -"checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816" +"checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "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" "checksum crypto-mac 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0999b4ff4d3446d4ddb19a63e9e00c1876e75cd7000d20e57a693b4b3f08d958" @@ -4779,7 +4751,7 @@ dependencies = [ "checksum ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b669fcb8e20124db86dbd9b01e74ec0e9e420e65381311ce5249864fc7ff0c0" "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" -"checksum data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67df0571a74bf0d97fb8b2ed22abdd9a48475c96bd327db968b7d9cace99655e" +"checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" "checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" @@ -4794,9 +4766,9 @@ dependencies = [ "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "" "checksum etrace 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f17311e68ea07046ee809b8513f6c259518bc10173681d98c21f8c3926f56f40" -"checksum exit-future 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9aa7b56cef68c4182db7212dece19cc9f6e2916cf9412e57e6cea53ec02f316d" -"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" -"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596" +"checksum exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "87559b08e99a81a92bbb867d237543e43495857749f688e0773390a20d56c61c" +"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" +"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" "checksum fdlimit 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1ee15a7050e5580b3712877157068ea713b245b080ff302ae2ca973cfcd9baa" "checksum finality-grandpa 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a1dffe3c9d4c59d964f25cea31880e56c20414cdae7efe2269411238f850ad39" @@ -4814,20 +4786,20 @@ dependencies = [ "checksum getset 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "54c7f36a235738bb25904d6a2b3dbb28f6f5736cd3918c4bf80d6bb236200782" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4743617a7464bbda3c8aec8558ff2f9429047e025771037df561d383337ff865" -"checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed" +"checksum h2 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "1ac030ae20dee464c5d0f36544d8b914a6bc606da44a57e052d2b0f5dae129e0" "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" -"checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" +"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4da5f0e01bd8a71a224a4eedecaacfcabda388dbb7a80faf04d3514287572d95" "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "733e1b3ac906631ca01ebb577e9bb0f5e37a454032b9036b5eaea4013ed6f99a" "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" -"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" +"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" -"checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc" +"checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" "checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" "checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" @@ -4853,9 +4825,8 @@ dependencies = [ "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0" -"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" -"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" +"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" "checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" @@ -4874,9 +4845,9 @@ dependencies = [ "checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum librocksdb-sys 5.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1b0fa7f4ca5ceff76237db63802cb073d84e64a327e38478e79a669093fb7fa5" +"checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" -"checksum lock_api 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" +"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8ca8afbe8af1785e09636acb5a41e08a765f5f0340568716c18a8700ba3c0d3" @@ -4884,7 +4855,7 @@ dependencies = [ "checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" "checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" +"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" @@ -4901,21 +4872,22 @@ dependencies = [ "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum nohash-hasher 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "27593c72432b8cec9ae79e92792a73c38341064d525b6b612a9fccf8b7d17407" +"checksum nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d138afcce92d219ccb6eb53d9b1e8a96ac0d633cfd3c53cd9856d96d1741bb8" "checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" "checksum num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "cee7e88156f3f9e19bdd598f8d6c9db7bf4078f99f8381f43a55b09648d1a6e3" -"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" +"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7" -"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" +"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" +"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" "checksum owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" +"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-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5168b4cf41f3835e4bc6ffb32f51bc9365dc50cb351904595b3931d917fd0c" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" @@ -4926,7 +4898,7 @@ dependencies = [ "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" "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" @@ -4938,12 +4910,10 @@ dependencies = [ "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" -"checksum proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7" +"checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" -"checksum protobuf 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "671a9cce836bd3635b40b2b0a72783481755ee988c493891f4e974b45264cc9d" +"checksum protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eae0479da11de87d371fa47eb033059715ffa8f714748da20aa364d56ec5bee2" "checksum pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "efd695333cfae6e9dbe2703a6d040e252b57a6fc3b9a65c712615ac042b2e0c5" -"checksum quasi 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18c45c4854d6d1cf5d531db97c75880feb91c958b0720f4ec1057135fec358b3" -"checksum quasi_codegen 0.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "51b9e25fa23c044c1803f43ca59c98dac608976dd04ce799411edd58ece776d4" "checksum quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb6ccf8db7bbcb9c2eae558db5ab4f3da1c2a87e4e597ed394726bc8ea6ca1d" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" @@ -4951,29 +4921,30 @@ dependencies = [ "checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1" "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de3f08319b5395bd19b70e73c4c465329495db02dafeb8ca711a20f1c2bd058c" -"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" +"checksum rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b65e163105a6284f841bd23100a015895f54340e88a5ffc9ca7b8b33827cfce0" +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6ecfe9ebf36acd47a49d150990b047a5f7db0a7236ee2414b7ff5cc1097c7b" +"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +"checksum rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de5ac4de1c2973e1391dc305cb0fbf8788cb58068e98255439b7485a77022273" "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 rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" -"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" +"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -"checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467" +"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" -"checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e" +"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a09bc21b21795c366c8bf0e87afb71175f5f736b3a5b279b6f4e81839d0a877b" "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" -"checksum rocksdb 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a806011ca1d26f37729ed4dc78afd607cc86d37ee913718108b0b267e768d46f" +"checksum rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39be726e556e6f21d54d21cdf1be9f6df30c0411a5856c1abf3f4bb12498f2ed" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" -"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" +"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "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" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" @@ -4987,12 +4958,12 @@ dependencies = [ "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" -"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" +"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef" -"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c" -"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" +"checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" +"checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" +"checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" "checksum sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "171698ce4ec7cbb93babeb3190021b4d72e96ccb98e33d277ae4ea959d6f2d9e" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" "checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" @@ -5001,36 +4972,32 @@ dependencies = [ "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" "checksum slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1e1a2eec401952cd7b12a84ea120e2d57281329940c3f93c2bf04f462539508e" "checksum slog-async 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e544d16c6b230d84c866662fe55e31aacfca6ae71e6fc49ae9a311cb379bfc2f" -"checksum slog-json 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddd14b8df2df39378b3e933c79784350bf715b11444d99f903df0253bbe524e5" -"checksum slog-scope 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "053344c94c0e2b22da6305efddb698d7c485809427cf40555dc936085f67a9df" -"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" +"checksum slog-json 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddc0d2aff1f8f325ef660d9a0eb6e6dcd20b30b3f581a5897f58bf42d061c37a" +"checksum slog-scope 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60c04b4726fa04595ccf2c2dad7bcd15474242c4c5e109a8a376e8a2c9b1539a" +"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" -"checksum stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "22203527a18dc1c5c83bbd247fb005f5877d040783b6626571d6b7ed7a6f5e75" +"checksum stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b84f9c829ef7d2e6abf1965393b231c0fd495f0293d612f32dbadd637e91fd0d" "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" -"checksum stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbc9155af9606d44c740197d7d6672b49c4ee93a176c7cecde8b49322677604" -"checksum stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b74fe9de4c0d07e91987f4d798b95f27f3cb7769fbc222fa951fa386908297b5" +"checksum stdweb-internal-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d60e306bddd5d213f86f7b417b6cdcefbf742917414ac9dda6e9750ef4553dce" +"checksum stdweb-internal-runtime 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a2a2f4a2eb556337b2d1a302630bbddf989ae383c70393e89b48152b9896cbda" "checksum stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "30dc6118470d69ce0fdcf7e6f95e95853f7f4f72f80d835d4519577c323814ab" -"checksum string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00caf261d6f90f588f8450b8e1230fa0d5be49ee6140fdfbcb55335aff350970" +"checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum structopt 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "41c4a2479a078509940d82773d90ff824a8c89533ab3b59cd3ce8b0c0e369c02" -"checksum structopt-derive 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "5352090cfae7a2c85e1a31146268b53396106c88ca5d6ccee2e3fae83b6e35c2" +"checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" +"checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" "checksum subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc7f6353c2ee5407358d063a14cccc1630804527090a6fb5a9489ce4924280fb" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" "checksum syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)" = "14f9bf6292f3a61d2c716723fdb789a41bbe104168e6f496dc6497e531ea1b9b" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" +"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum syntex 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a8f5e3aaa79319573d19938ea38d068056b826db9883a5d47f86c1cecc688f0e" -"checksum syntex_errors 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "867cc5c2d7140ae7eaad2ae9e8bf39cb18a67ca651b7834f88d46ca98faadb9c" -"checksum syntex_pos 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13ad4762fe52abc9f4008e85c4fb1b1fe3aa91ccb99ff4826a439c7c598e1047" -"checksum syntex_syntax 0.58.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6e0e4dbae163dd98989464c23dd503161b338790640e11537686f2ef0f25c791" "checksum sysinfo 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4c747a1fbe091faa7bf76c19f40099f9f12495384c811485d81cf3d60c0eae62" "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b" +"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" "checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" @@ -5038,24 +5005,24 @@ dependencies = [ "checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" -"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" +"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" -"checksum tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dec7ba6a80b7695fc2abb21af18bed445a362ffd80b64704771ce142d6d2151d" -"checksum tokio 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6e93c78d23cc61aa245a8acd2c4a79c4d7fa7fb5c3ca90d5737029f043a84895" +"checksum tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5462b0f968c0457efe38fcd2df7e487096b992419e4f5337b06775a614bbda4b" +"checksum tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4790d0be6f4ba6ae4f48190efa2ed7780c9e3567796abdb285003cf39840d9c5" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" "checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" -"checksum tokio-current-thread 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f90fcd90952f0a496d438a976afba8e5c205fb12123f813d8ab3aa1c8436638c" +"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" "checksum tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb9bf62ca2c53bf2f2faec3e48a98b6d8c9577c27011cb0203a4beacdc8ab328" -"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" -"checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" -"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" -"checksum tokio-reactor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018" -"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" -"checksum tokio-threadpool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3929aee321c9220ed838ed6c3928be7f9b69986b0e3c22c972a66dbf8a298c68" -"checksum tokio-timer 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3a52f00c97fedb6d535d27f65cccb7181c8dd4c6edc3eda9ea93f6d45d05168e" -"checksum tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e53fdbf3156f588be1676022fe794232b24922d426e8c14f4e46891c1e31c440" -"checksum tokio-udp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c" -"checksum tokio-uds 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "df195376b43508f01570bacc73e13a1de0854dc59e79d1ec09913e8db6dd2a70" +"checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" +"checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d" +"checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" +"checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" +"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" +"checksum tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "17465013014410310f9f61fa10bf4724803c149ea1d51efece131c38efca93aa" +"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" +"checksum tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" +"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" +"checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum trie-bench 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum trie-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" @@ -5063,10 +5030,10 @@ dependencies = [ "checksum trie-standardmap 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1eef327f05b0d0ec1b9d7d119d8f4d9f602ceee37e0540aff8071e8e66c2e22e" -"checksum twox-hash 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4f85be565a110ed72ed7048cf56570db04ce0a592c98aa59b7dacde3e5718750" +"checksum twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "555cd4909480122bbbf21e34faac4cb08a171f324775670447ed116726c474af" "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" -"checksum ucd-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d0f8bfa9ff0cadcd210129ad9d2c5f145c13e9ced3d3e5d948a6213487d52444" +"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "082df6964410f6aa929a61ddfafc997e4f32c62c22490e439ac351cec827f436" "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" @@ -5074,7 +5041,6 @@ dependencies = [ "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "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 unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c1441164e5da61f00acd15f5a9e61939693c2c6e8b9fae36a220b82de7e212" @@ -5087,11 +5053,12 @@ dependencies = [ "checksum vergen 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "93fb2d57fbc535fcd45548c99b141d2d960995daaf04b864c4d9fe1ea011c819" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum wabt 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff1f0f87e467255240c1faf5cf13a04410723407840d7733e75967224e191a5" -"checksum wabt-sys 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0cc8982bfe0a923f152e96d991e50a6f97fe73ca4af6d9d84d76634f03051fa2" +"checksum wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0246aa1834c47c5f3dd87c0932a2c78edd1e9318ced5e92a41f30a0ab4e3a91f" +"checksum wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "462336bb61096e64761730e0dea1bc8b777bd4e3689c7e813c81f1cfdf4e8a51" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" -"checksum wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8a60b9508cff2b7c27ed41200dd668806280740fadc8c88440e9c88625e84f1a" +"checksum wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" "checksum websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9faed2bff8af2ea6b9f8b917d3d00b467583f6781fe3def174a9e33c879703" +"checksum which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" @@ -5102,6 +5069,6 @@ dependencies = [ "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" -"checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61" +"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" -"checksum yamux 0.1.0 (git+https://github.com/paritytech/yamux)" = "" +"checksum yamux 0.1.6 (git+https://github.com/paritytech/yamux)" = "" diff --git a/core/client/Cargo.toml b/core/client/Cargo.toml index 1da261cb4b..82a72920da 100644 --- a/core/client/Cargo.toml +++ b/core/client/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] error-chain = { version = "0.12", optional = true } fnv = { version = "1.0", optional = true } log = { version = "0.4", optional = true } -parking_lot = { version = "0.4", optional = true } +parking_lot = { version = "0.7.1", optional = true } hex-literal = { version = "0.1", optional = true } futures = { version = "0.1.17", optional = true } slog = { version = "^2", optional = true } diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index 9536fe803a..a228a8e9ca 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -parking_lot = "0.4" +parking_lot = "0.7.1" log = "0.4" kvdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index dee59d8f06..f1b569c91f 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -17,7 +17,7 @@ substrate-consensus-aura-primitives = { path = "primitives" } srml-consensus = { path = "../../../srml/consensus" } futures = "0.1.17" tokio = "0.1.7" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" log = "0.3" substrate-consensus-common = { path = "../common" } diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index 7f95b39a14..e204e7c36d 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -6,7 +6,7 @@ description = "Common utilities for substrate consensus" [dependencies] log = "0.4" -parking_lot = "0.7" +parking_lot = "0.7.1" substrate-primitives = { path= "../../primitives" } error-chain = "0.12" futures = "0.1" diff --git a/core/consensus/rhd/Cargo.toml b/core/consensus/rhd/Cargo.toml index dce6a6d7f4..3aae924115 100644 --- a/core/consensus/rhd/Cargo.toml +++ b/core/consensus/rhd/Cargo.toml @@ -19,7 +19,7 @@ sr-primitives = { path = "../../sr-primitives" } sr-version = { path = "../../sr-version" } sr-io = { path = "../../sr-io" } tokio = "0.1.7" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" log = "0.4" rhododendron = { version = "0.4.0", features = ["codec"] } diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index dcea860163..594a34f964 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -17,7 +17,7 @@ serde_derive = "1.0" wasmi = { version = "0.4.2" } byteorder = "1.1" lazy_static = "1.0" -parking_lot = "*" +parking_lot = "0.7.1" log = "0.4" [dev-dependencies] diff --git a/core/executor/wasm/Cargo.lock b/core/executor/wasm/Cargo.lock index d5f2b2cacb..97ac5c5d6f 100644 --- a/core/executor/wasm/Cargo.lock +++ b/core/executor/wasm/Cargo.lock @@ -42,6 +42,14 @@ dependencies = [ "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "nodrop" version = "0.1.12" @@ -65,6 +73,17 @@ dependencies = [ "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "primitive-types" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro2" version = "0.4.19" @@ -159,16 +178,14 @@ name = "substrate-primitives" version = "0.1.0" dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "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)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", - "uint 0.5.0-beta.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -183,7 +200,7 @@ dependencies = [ [[package]] name = "uint" -version = "0.5.0-beta.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -204,9 +221,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a557e80084b05c32b455963ff565a9de6f2866da023d6671705c6aff6f65e01c" "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 impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" +"checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" "checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" @@ -216,5 +235,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" -"checksum uint 0.5.0-beta.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4630460173a57c0af94b8306091e018025d988473f641a4af754b6cde980e1e3" +"checksum uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "082df6964410f6aa929a61ddfafc997e4f32c62c22490e439ac351cec827f436" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" diff --git a/core/finality-grandpa/Cargo.toml b/core/finality-grandpa/Cargo.toml index 017eca9449..2bef01f193 100644 --- a/core/finality-grandpa/Cargo.toml +++ b/core/finality-grandpa/Cargo.toml @@ -14,7 +14,7 @@ substrate-client = { path = "../client" } substrate-network = { path = "../network" } substrate-service = { path = "../service", optional = true } log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" tokio = "0.1.7" substrate-finality-grandpa-primitives = { path = "primitives" } rand = "0.6" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 6b0fb9af40..d02652daa6 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -12,7 +12,7 @@ error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "d961e656a74d1bab5366d371a06f9e10d5f4a6c5", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } -parking_lot = "0.5" +parking_lot = "0.7.1" libc = "0.2" log = "0.4" rand = "0.5.0" diff --git a/core/network/Cargo.toml b/core/network/Cargo.toml index 7eadefb363..221036032e 100644 --- a/core/network/Cargo.toml +++ b/core/network/Cargo.toml @@ -9,7 +9,7 @@ authors = ["Parity Technologies "] [dependencies] log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" bitflags = "1.0" futures = "0.1.17" diff --git a/core/rpc/Cargo.toml b/core/rpc/Cargo.toml index f3e9489f9e..c09e123360 100644 --- a/core/rpc/Cargo.toml +++ b/core/rpc/Cargo.toml @@ -9,7 +9,7 @@ jsonrpc-core = { git="https://github.com/paritytech/jsonrpc.git" } jsonrpc-macros = { git="https://github.com/paritytech/jsonrpc.git" } jsonrpc-pubsub = { git="https://github.com/paritytech/jsonrpc.git" } log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" parity-codec = "2.1" serde = "1.0" serde_derive = "1.0" diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index f950a77341..6a6ebca9ce 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] futures = "0.1.17" -parking_lot = "0.4" +parking_lot = "0.7.1" error-chain = "0.12" lazy_static = "1.0" log = "0.4" diff --git a/core/state-db/Cargo.toml b/core/state-db/Cargo.toml index bef12d1ae6..1806bce403 100644 --- a/core/state-db/Cargo.toml +++ b/core/state-db/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -parking_lot = "0.5" +parking_lot = "0.7.1" log = "0.4" substrate-primitives = { path = "../../core/primitives" } parity-codec = "2.1" diff --git a/core/state-machine/Cargo.toml b/core/state-machine/Cargo.toml index c0254116fe..6ae2ae1655 100644 --- a/core/state-machine/Cargo.toml +++ b/core/state-machine/Cargo.toml @@ -7,7 +7,7 @@ description = "Substrate State Machine" [dependencies] hex-literal = "0.1.0" log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" heapsize = "0.4" hash-db = { git = "https://github.com/paritytech/trie" } trie-db = { git = "https://github.com/paritytech/trie" } diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index c74cb956d7..7dda912792 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] description = "Telemetry utils" [dependencies] -parking_lot = "0.4" +parking_lot = "0.7.1" lazy_static = "1.0" log = "0.4" slog = "^2" diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 8721c4d21b..bdd4fd0534 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -298,6 +298,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "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)", +] + [[package]] name = "integer-sqrt" version = "0.1.2" @@ -537,14 +554,6 @@ dependencies = [ "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -585,15 +594,6 @@ dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot" version = "0.6.4" @@ -605,24 +605,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot_core" version = "0.3.1" @@ -657,6 +646,18 @@ 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -1078,7 +1079,7 @@ dependencies = [ "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -1115,7 +1116,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", @@ -1131,7 +1132,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.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-io 0.1.0", @@ -1159,20 +1160,19 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "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)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1194,7 +1194,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -1207,7 +1207,7 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", @@ -1486,6 +1486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1647,6 +1648,8 @@ dependencies = [ "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" @@ -1677,20 +1680,18 @@ dependencies = [ "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" -"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "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" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index e7d060ff3b4d2ffce6c1ffeee2be27dfd507f2c6..81ebc41cba2fd76b0f351690a23482ac162df581 100644 GIT binary patch delta 2416 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 diff --git a/core/transaction-pool/Cargo.toml b/core/transaction-pool/Cargo.toml index 93768f16d2..e2f19b839a 100644 --- a/core/transaction-pool/Cargo.toml +++ b/core/transaction-pool/Cargo.toml @@ -8,7 +8,7 @@ error-chain = "0.12" futures = "0.1" log = "0.4" parity-codec = "2.1" -parking_lot = "0.4" +parking_lot = "0.7.1" sr-primitives = { path = "../sr-primitives" } substrate-client = { path = "../client" } substrate-primitives = { path = "../primitives" } diff --git a/core/transaction-pool/graph/Cargo.toml b/core/transaction-pool/graph/Cargo.toml index 9c154d4b3a..7910e10d9f 100644 --- a/core/transaction-pool/graph/Cargo.toml +++ b/core/transaction-pool/graph/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] error-chain = "0.12" futures = "0.1" log = "0.4" -parking_lot = "0.4" +parking_lot = "0.7.1" serde = "1.0" serde_derive = "1.0" sr-primitives = { path = "../../sr-primitives" } diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index ab578ac885..1a8cd74f4e 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -298,6 +298,23 @@ dependencies = [ "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "impl-codec" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "impl-serde" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "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)", +] + [[package]] name = "integer-sqrt" version = "0.1.2" @@ -594,14 +611,6 @@ dependencies = [ "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "owning_ref" version = "0.4.0" @@ -642,15 +651,6 @@ dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot" version = "0.6.4" @@ -662,24 +662,13 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "parking_lot_core" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "parking_lot_core" version = "0.3.1" @@ -714,6 +703,18 @@ 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "proc-macro-hack" version = "0.4.1" @@ -1438,7 +1439,7 @@ dependencies = [ "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", "sr-primitives 0.1.0", @@ -1475,7 +1476,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "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)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-version 0.1.0", "substrate-primitives 0.1.0", @@ -1491,7 +1492,7 @@ dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.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-io 0.1.0", @@ -1531,20 +1532,19 @@ dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fixed-hash 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "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)", - "uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1566,7 +1566,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -1579,7 +1579,7 @@ version = "0.3.0" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", @@ -1830,6 +1830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "crunchy 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1991,6 +1992,8 @@ dependencies = [ "checksum hex-literal-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d340b6514f232f6db1bd16db65302a5278a04fef9ce867cb932e7e5fa21130a" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +"checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" +"checksum impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5158079de9d4158e0ce1de3ae0bd7be03904efc40b3d7dd8b8c301cbf6b52b56" "checksum integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ea155abb3ba6f382a75f1418988c05fe82959ed9ce727de427f9cfd425b0c903" "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" @@ -2021,20 +2024,18 @@ dependencies = [ "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" -"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" -"checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" -"checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" -"checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" +"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" "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" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index b7c15d3bfc806b744e19f2f13d9837b14074b74a..b73bd2e691a2704cdf31e0ba762d627c57ed11c1 100644 GIT binary patch delta 157366 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 Xoy|`+ z#u9)!NJhe?;A52k_;I4LDk)j!d}SZc{BpL+kAY6GX@V35EHbEHs;6Y_@-(!NC7>wE zr3MqO!iR8?7y{d34|78zl!szihcG(joA~8I5_~zYNgBw5QOMA0hV7e@Q;@$L<;6m^tC(&zB%Yc zWS5PHT;kkwN{8VtB5jA|(Fz~6juPUSv}haB4UhbM?SC}I5x(Y&NI6*3{ObV^myJ^u zUOx)1_r!uYJ}*^|vWC>`g!`>cte>K8BGcQ-#%z^{a#JEo)3Q+>NkplWh;qk$W#hC< z#Hp2tb7$EoEfZ0SO^tb~AnW!7q9)$gR3%mo^IJGs)erB%1+|+b5D%8kvQZ+3 zwq^sfY?wf_H>ZFwqvom1SZ*SHi?Zo&@uNq--vUDQjvaehT_9?JjX~~mDo3ja+)(rZ zt{o5gLjxR$-_zx(69L)1xoHxzz@&w|$=N_11)aOo?3=HCkeTGy&D{&sMBJ4hU7&!bWN9DK?A?o+(e~dp*@aHGld(2N4s=Bdi zJcO;rSDNwk7vB@ah67t6P$DV%vm}U}TrF&czVG5`+_7{9*Q&lV!xL)Kf`xh>ndVfKC^ zu(uMe6t-e5;?p>isM{m8kt0>i@mRL&@qR4~0754T_8cK|OV(dcItjV*9TY1=5aYk{ zKIsHdxP?qypd5;5X68awh*n>*Q00Fgy9TjP7`Qq`I*n|6?b88{_H`i=z^XVV4uI2O z6jQud<=hMP0~!|1zBw%`yE;A{LNy^fgAMSNif2^^USa=F(DC&wR05h0Td2s#57+R;d5BF+CO+hVReP;@%gy_XaMs zwFG~6;NBIu%>wt%z`Y}IaZ_L7-yXQP1#XkTZ5+6b0{2!tGA{`l28afMdrRQn9JuuZ zw_f1FfeVG^Ii}JYRi*TcRq9C_N1%_aQIF;~z_Ve&oZbSG zK9D81qERz@je5Ez2)9fqMh-(C!;SrrY%*y6341oM(Xei0H`i&JVop7sEegf^S#Zr$ zYg7Z%b*-w@oY^6^j1+z>k)0FGd%%X^gBpSm4RHM-HOo$Jd73O-X&tiHnk}a@YhuST zx`0aqtQP4aax{4|f@C2!Q{GpPRCywbE4kP{MX-J1Aqs}PNnfX`Sx=Zo>s2%J5mD%sB+UCGI6>XgQIcxys)Vu$RCTkd_kp@6`UDt^bd)?4sTO`%Y9vCeWURg$ zpsg_c0~Jk)T9GgEAd727JzF+vrEu%(Mty8UnOv)cTV5w>YB6)K{q2z(QOwNkFnLyU zqf#klExL9AB>pcpmMK8B@B`N>0HWUW@5y$mA+gxxA#&u>_#w&&0x0NzgmP;4<8k-w zL;mKPX|aDH&NSI1bn@bEtcK5Q!ii1tQ#SXf5^04W$=aiSX71jsqKL%Vsi-6jio?ri z66yKPl2gsy>P}`(YR>e#DH}37Qr4Eusu(mW-^$ve+Jche-EVWR8Wa+g#M2CD>fkG| z-|tfr&KRFCQiAJ^WF*T(KFK1ov-G<~o0Sxm<&RY>xSnP=jXXz8%S2|6@nFTrtWe*L6FRxwhC@ zF4y>{`|L@U_5Gd6Trce`muoyhYFRh!DwpfkWqsVQ{IAMT@6{#zYZ=0ge=AwIJI!Gf z^jA1LZI5P8? z&irhzdbq@&zsU7qm~eO^JvcV37!cwz-rmwRd(~~$kFK3B>F>H9B|~-HKm?&0=F$C- zPVOvybH5tF)v?hbC)ch(veN;W<)R*9Yh5;!3`3cp-Y9jIfmCuzHe5S@&H6$HB&*B#ZF79%PKhLx; z@ER-ZaA1|l@5fKx6 zQP}Rs)2OE6Mb-YEY*<60E*&)Az$PJq+(ap2R@ux7?{#&+_n8R8&1ZVtXx_x)%>Jh{ zZi?~wOz>X#Iv&L3S#u@rw4p65p4n$X^&9ISU>mSU8C3v>Dc}N(?YbYwmv8eb>w{8l z6p+XK5y*#7kG2sQ8)9taDLj^nxFUw-Hjt%m7in51nQ3_m6ziEymlWO&fVM26i8i1| z2zl^3fO#yy=1N%G5~(DlLX@)yqHxS}9tw$p9vlE*M#Cd{Tx}v)Tv30XrSKD&r{KH{ z<`snR|@!INBJp1v5S5l#5!zODbJrU!#;yozmD|fI5 z`7PuZd<#=QyFb~o6hp_q^-r|ybsM&6G&^Wn)YSj_Alu6^E3c?pb^fVl9+>4-4+S+C z*vLz1-hn;5&Xua-UKcWc@I_n;dkOWdYHC>CpYp51{;%_*PHV%CWQ(Bdp!H=YS>E*D z06_OcvI@hs#o*20$AIDVfwO!HKVabrmaBqk!3E@7zKNivbA1^xMV#|9J6;`4Rs&+sFUaq6Zs{*IssR zFwgUYxRWdCVAx}h*{3|}OXqvuD+SlvoSLbg7tL7gA}t=FSX#Qx^QKr4Z1=F`L?7dP zIL-7(_nu9U?=;PYbZ_FVxB;wV9Wd?V#()Tr^5i*tIl#vr6v&cvE(pRcv@{ztya%e_ zqF^uy+B}^A8`0d<%=B`TS>KoGJ=h#+qj|pa0JvhXN)*dLj>|0@e&gHR>>rTNdJM;u z*w&_ltZ-Dzi9E;5%k+w4DK&t0w>(}F@M8XbPC5By=6HbNTA3rmWcJ*1`n6)6po~z@ zZixksH7JIeCNWZ16?`2pA7Z}35@y)ckQaAd@=}kpC4x<7g0Xu-)+}bm0V3_u zGs|00{fA`cm4e`(++k*;CD4d$C!FN`YwaWlDne?$fCglQtIxO_Z@7Kjer|tvfIH9~Ui~|oz+(7L#MC%rkh_-Jz9KI z{hMz&X?sJfn91Zv=`ZL+e__t>}B?Hdxib3z0zK6FR=&PL+qjUFnhQ?!X9al zvd7xvAhVuezhzH^1bdAAnfZGU5*wa?k-?QiW1_C@~h?Ai7ld#*jn zo@`GsOK$QSKC|2IZNFjnvCmuIS{JN~)+KAPyU6|0I%S=Me zd#t1Ns`Z^|U)QT@eQlnt>)rda)#^R9My*xvt95F<`ao?`o7EPzReh+osgKllwL{Hy zH>izjyS2o5+ga+oWzKSEh4Zen+PR{j z6g?^X-nN!n?^w&Mcdc*K3TvG;*P3UQTJx<1)*Ne; zHQE|ujkP9N7u0xbkY%jF)(~sBbw&-dCRx*+8O}^+mNVO#VgbSJr!-6`%=cbYrh zo#D=OXSuW8Iqn4aE%%|8?b?6u`;R{MZ$J6>pZ@I0fzBYuID?%L&S+0114}SQ>kH1nsYSp?;+ef}t58rd|eX;wS zpHmNZbGkdPJ3XA9PA{jA)7N>^>F4x!1~|Q)H=M4{&!7IqFMoAfJ@xC~URJ+(=6BEj z{*N#I`Tw1D&N=6uZ=DOyMdv%`iqp~U6~&-I}6=dse8ov#5wAG>YQ+1^^Q9){pscZ{7YBwzdAhk z{2yL;&HImS&PUF6XNR-X+2!nY_Bs2V1I}(|k24j2!WBFL-nuuA`}v+}eEq|^TY@bE z9oXmYNu7qm@Ct6m{EZQ|3cYdG!Z~oc$-ddke`>M^i%5mxW&Vb3t_SrHyz&GeR!m9` zxp4?b=6m6J)GY8tadSMVMihqMW~^Z0_1|I=Wy>dg7Kbx(VR%WVY23`axn);RXTiG| zNuU>k48rg&k_;#Xhq>Nj7lu;`!wZ4qewv$U?3hdJRuL4c0zyj7*_*xF?_H4c)e_cJ z-Vi8p+b~`y)_1;SAqok23U8FBUnO>4W|rB~#>)L25S@vb%V@14v(j}Jdgm}-*4Y>H ztH_-6@N8^piG!NdOjMtucbq29NY}41#Z08Y*4Yj0lN&C~PQdee|B9jwv&x^`gtttM$EAnICTqM9 zS5|@=k4o3yF~xYKxMqzPvVh~H%Jq=zEK%^k zQs_RO{+ig)=Ea6y{a=!WMQwx;{(qNO%LXqzU10WKeo|V7$QL@N5*AR)mqF zU%G}KMqzju%RuuJU`eP5oamw@Ea6ads-c$`qkIH*VrGW)+r$n*nvCp1y_BB8@Zc0G z8ls*{KQH_y$UrC}9Nvd>)a#GEJxVX-I2(uzl7sKC((e#Ez{kFf+Gm-nH+$iy5weUS z{Tb3K(lbLZr?(%xL6!ZH*gGTKi%LR%J$q#66^z!G(QYslmoQQve=N4`nxR+G{{|9a zFd~oD^!AoK{4*(z#`lQq1*8ne41YL6g$qSn!=Rq#S?rvfuO-|g<@^4*lK)C4=AaCX zYb1r?*Civ$X-K3yl^#rNcMQsd>s0RVffzzWH%4m}S)8GV(%Y5!CI@9C@^(geN&G}6 z67B{tI1gKxp@%U=XQU`|Fy_B6>FRYX=c}2f!8#Zkel`msMjBt5su3) z8Tv4jbwskvD2%m0B@!lha0>b{(N|C$IeLp%{>=>CmxcNc0Ww0R@|#qKev|0S8A0tg zDcz5VON`elGBrc@r}rYfWokb?BRnm@;V`f_z@YY%p_9)P=YhIr?LT4p&SgmLpXr{V zkJ5h@v2g$d0{E2PZ{W=YSAC40uNlVaEK47!{|s~H>=UmWQoYVkeuaQ!-Bv5zgV@vY zssYiHh*ON#Dl#lX_oDYpc*|66L`HacfJ4=~0t~7)Bt!RRiqC+$X4Ouzcqjd;#X4o^ z&*(pa*f>q58RYafkt^x?b7GGJi;<4r|AO9Q@MdD9e@V}$@MK`5NfBmg15{7pOz7x z3S2P2(XsOx?Es_QV1UnHr2VE*Gw+sr(Z&nu-G?;jUSzR|-o5nVfL*^pqU8u*O!OYf zS&m;yLb&dhkpr8uSc~Ppa|WfpDC!c%+>Mwnq*f4Si57Qbkze>^;?J0@8!eLwu= zLI8;SXL#u~Lx02Y9Sm<3*^r^n(z_jAXAkB1M)&(!>>_7cE5F3iHH!)yP zv+*EJX0ZiXBrDcGLw`=}W*_@9l-gl^j;fTC$#^u}ued26QB zY-L9HT|{ARQM1tiseBK1WmyLFiI8GFP!ZAH#FQuON>H(73|)uNpklN>$C^cOH-^F+z$yeI zY<)N#Pc0cFoWO*^8rc$4=_b?YE-*P8LV6NI7U63m)`!zBGC=9c z#4hx)FT=O>zS@c(K{wtxCk0OE7ChX+$&zVtndmH zE`kw{IpXznJ(?*-^7FodG*O&w8Rvx-vT!5J<$JuQv4vpQ>E-H++bJcXHj(9_@G|5E zgJOCKgN8~F%nf44v6zSZfvse^RPtS zYc)m(`&yY$89*tpGRg83%uyJDjjYDBH)dnNMboiraY_aq-jfE=Bbh#q%yQE5`o1_j zT^GT=h*aSszugbtmgnoZgkt?P!|#L0Zb>M-80}Pn6I$!Yv5+3bR_}|rF205{IG83m z7t)5uVF`*0n!XbPK3h8Nsm4n zno#@U%K&wPA2}M*{g|#(hRJ%st7&({pn1T%HMT3HUnTwuXqty2JjbQuJ{QHo_MVXL z#?bE&3iHuq>`=r*uI^6kWni(UUiIhJ#3 z;T`ZLn?0D~ut`sxJK%|-fF(;gtAOdrR*?xIy^`&FPRjKcEO{h|5D5Z7s~B_^L6|2& z5O0OT6GGrR$SWnt;Vo?L8SQJy;gx_KRugqbP}!84uy|ZdM}_oz4EhQ|Ac^rIy@uY? z@RB6f(sK$Pl0>V>xR8FIm@k1Lbs)w%=T0EL00LA$HlzK{fB#>mTP0oWDOy%}_f zIJ7d=_K$eDq72+YbE>&lHRpgIJ!r!>7_#5g)Lvn1A40$)9rkozV)w#}3lREEdiKDB z7wv zLWb`n5Cf*v)5nNiYZ^b~6J*&dip~+G*RY_gkcNVjwe+ks zGavE_V(+3itzxCu5w}7-o?cJSa`9y759nDYo=m-go_EA!>y7j*6;H0-M9H#_O3xzkgmBnHLR)AaZs}FCO3m+DdJSU>P)Gffq8rG0; z0pt-P=Ls^Hg3)IO(|o&=AVkc8+xdw(sp-%FJBXyX5YNR2bheYIS%MO!AijtCaZKr5 z#LpDGJh}|5(z}VA0VE9O={@vJml(DEl6~yzy+lqEWYqscO36UO$6c5~K$IyGMRW`J z#j{HHCVH}QbQdV(K~_WW># z3`0=&BYHg0@!^N4Lx>w^DzwJ%qf9ZmqV;FU7;}GX48PIx39!B{iX-|`ts-ZX9>^%8 zBuwgo5)C41Br^g(4fAVlA}5tLM2-M5(Sv(kJ($Shg1ov1!CQag>h~FCXga3cL_%QK z5le0_(S<1uj0V``>iz5k6GY*Rj%TgFuPS|j0fP{L5h{p-L{K*AGWcWq21vT#p20>} zAF*P<_7|)WpxnHQ(;CDSyCH*PnchrB5#$;o`wH^v8e*zi@8bOjM0q3mK~ln2r7siR zJCV}te98-(18qDNBO@91HB!hyBJLH&?MXBh*AkuGkst2?biA_>^>yN2C$1b%gRmY9 z>n>sOfzgSmZi2!h#++Y>&;sN}rC()GSMx$!uz0T_MnI$>fG!N_A}CDBq!*z~bc@oj zF|0Gg>eb%vw!x_1LgcrCj1&4+qRyK> z?YzRf&mkmHTFm&{7$ zeS-4a(|quVSHaqA_B`TMjqO1IKMBfR%80ueF;2OQ!C4Tw3&;d5jCA!fB6kY%YFdC$ z!nk@kqimNbiREAlwwgqLluT)MJ>_MYj_olEYy&oB7C_`tjQkP?D$1-T6sq{TBCx?=n7~_O(AZ9#4EdtMc7n^&G+*NSfTMm z%@b6-uUYrcJUxLSa}lEO*3lQ9evAG&@RJRnNDoi-GRTHQDTC;2rmad7#iO5QIRcPcr*4` z#6gDp9zb4x0du#((_NWje8`;op_d=}h9w#oGLP+3w`Q#H^jZ4HnvIWnRioGhT%>ml zKbGL{&)fPEv7Mj^2^+A|Wle#S(IbAtTJ=k9##LEsK{g zOP?otnCbYqR~X+4yyNL_i5-e;xD~iS&k(cVaj(`x*rs0a!rvl&0c^%iWyl~z!{)Me zWQWqzh!_Ymolal?L)gYB!FCKj;`)b7pAKHFSQk&vq`x2HWZ@&T=y?+!G;L>3&!)F8 zy~!Qo9OC*A7tk=`l@j-c#4Ag~2wTXo-hLhd4bLU27f>;7x@7>rKq9`P^gIUjL=aVd zA;txrcESlhu|0q#DKDVsbw=S{8Z6;K?jO4Yfk%koJw$Iecnc8uFg;!23FOfv2f4md zo0~ar&!X6}2!OSdmU;T{`E^DB7rFQOll)OFZ~T_?o9U@HB@ z%P)ZUb9&j?=)hGv|;~E^e9C$hVeMHY8c&<77U3c=^&SVFX?6#|CzxO=-34;$HI7x2fJbjed{hrKz z55xZ{{reb8X60k_?uEC^?6<)Se-Pj>`@IV=nEl@O^l_%xT1Pw%IHJ3p3~{f2w`0I?qleclf5L3+0#66h0Y4$=Ez@O28X{K*d?hZ(ZfC)vtN zf*4rz_Yl9iEcGt-^j@MjAsVT7A3Yn*vY$ZLF^gjt_t!9zLkV$V7zag=MvV3J3Pxr1 zWp)Yccj;fx&m}1p(N+?@&M$=v$&|lT&=E>Sj8%;BzGNflg^++!!T*o;^jcz90t=HG`hE2*eC$%8 z)WM!!$KVw}_$t~YSY)-H*yX^IU_YRT>kVGzdkGV63f;DfjPUdZhQEVw(C!n6zmfi> zrqM4T=CSXDB#_5qR1e<7fVVOHA&ClqfRjcDakF?t$L@fD90M$+N3y9Ru*B9mNVJ#* zMAo^07XcPY1bu|RcLIC*wg|@B^AJo-wjE$1lfM*7R0!b!# ziBenF1adl%>4*>oJdF`3$DCp7V)&=RZ~IF5=$HAnE&*~1knEOPfF}d4bd6q_XY1Ms zo`hfr;%xRx9r!1jyPx#F_Z!$-x>1{BpRj?;|~`k5it(U4htM$ zcNh|IvIyKl+!%BGNpQ08Zl!lLqNH#E9}+i;xL_0@-a+CbO8(} zL%JlW)IOM?^hXRCh7hb&k%>xgr++B?T>f{^GX$Q1lSMaRpR<$L!N7(PWfwh$QOL=T zfJl&tK|sLN9u9K1S$|2*D89Pk%oSkq2rX zAPjvrj0#L!Txa`=C!}uz+{g6#g;!Wr6ij_f8@}j2@-4(!98W#Xazyy?>&P5aznJNe zvw_GAr8_c0x0DbJjd8ZV1=!bsO)TQOY~293E`p113>yN|*);y8mm7Ok0s<-NPFpuZ zP$y=Kx;F;gQNnBc)g5W;Ccs_6_~xThXo4~_1dI(B2R($Bvcs1pN@7oZ($9*B&MGdeGce2 zAtLG*#GNHBv3pL`IE8tURxKEF=H^xr^T(AKvj%E=%K zMxHM6V&DM7V_o?7ytor?HUU|wZxc3u5 zUtLx#M&0q2BdhaqGB>9jCR<1978rB zBvIPSmL5+emf`xq-mtjH;4Q{oXAYpaH@z=kkQA+$`6Py|CDJeMWct^b8o!0;^u5$? zp0o5+hOHLl)t|(<&RI)OXOxxZh2MHPcfXq&Q_p0`3PA-z=dUe2i^%1Il*S2&ap`YC zjPIl-PZ>Dqf@79`ohjdzD2X{}sjYhuy~Jcc?G@!NMyT*~NP(bU3|eF!d>WLv5J7QD zM9=^Rm6{GuW3Vq^P`pX?8w{B*sMHB!k*)hMWF9}^?_?7b8@Qgn44ca^zfs?$e-3kr z6Cu|4enid&GSRL3EZzS>VrL2V>NduTx5Lt>NvJa%wIcZTpZ^NVM^ zyarPd6Xi%be)xu=qK_FY;Yj@*ag)vHXD}EiAw{wY&N5`8+4Kws<6F$jpIX6i+xk4i zCI~Vpt^Ss%@f?g*W8?f!^Elxm(PNo$ya|Rtm_p}Ojs9U~%kMBShDtWUJhRHu-553`nRh^% z+0S~_V}@vm4^ybp@{dwDL2Sg5#l!<8v2>9XEKD)yrwkc@5Eg-_@`!zmxc(imbEsNd{5#FOd0TPPX)CMD`J6Fuz=*sF=Qy{tHI! zZN7WfE3$hjbNYEqq78rVrQg>R$s@_rEJQucs6Bv&nNil|EBarDKVBEaIYV4`^WyJu zKF|$8Ed4jcb!9wcCru%Rf6vxu8S)xJc(oS|0yPI)pChu1Amc=Jo~X`1L3tUfRkr?? zh*yC~)OxX{FA&*DkgWBu%knM>^JGgbeV8$?;C0l1@X9bbB21g>zA@x#-K9@O3Kn^Ir<}FzXFzhvYnpOj6zx3 zM3@#Q;uH|UUJ@cThFD~M&C2k*a@$v%sK9PHYWP#Vwvqxg24uGYWUeA!-2;l(uku>Bo z3-3h$yGyX~5wL-%oj}P5D7ExPB6a|gsQ!QHO~h>%Tx#tP{lUwtv`x@LSiw}5{zq@- zk6|oB-k+Y%-Nq6SyC}gg1|awJ7XetpJbuP`+DGZhs&F9-QW&lj$Hw~!yH}%!0T&W;C5$7X8;x9z6v)RZYQ|B z7uFGO6}VTNERiaF2e%mh%Wx@8xD@zf7Xffze*rE<2j9Y_0N{M!o`cKH{aLtCxZl97 z1@~*X+;g9S%Z=PuaO=W74YwZLQ*fuT$X^1OK;R1i!wGy2U?_ploUEVf!Gul%HHg3o z0Nn{32hfSYF#sJ2d;pjdiEjWn9%Dwm0m){t7XaDO^^5~O0LXsrbpXO`bO&&Tsk#9;N1!VJ z;fP)XAk0peIM5k@@H4Lh5DumjfUfMXjsQA~^2rrDOA90M9ROkKE(7SvNS6QzpLh{K zZ(=S0c!R*Vao{`v;SbLN5LW*zfRT*z4FK6bd<{VM2WJ3GVbE6qCc@x0ND`1R?WX_; zll>)t1&s6sfKmdV16WAlGXRSToCL6hzzG0L2^#b-*a=`QfgJ!=6W9*mT>`O>0L>$`4Zt)49|DjZw*nYO%oYGW32X*%k)PiLU>|{v z06rqH0l-cI9{|`xV0|1|2jFvJ-Usjrfwce*5m*xgBn;Sl0ED$$4d4XBR>gsp0EAt6 z7r>VcS^+>fn&kk51zH9`xT$vl2)nd24!jLOA};|T`ZtRKe8+qi*)aGn+CB?`>c}dV z0_a3wK^&M5pbIhc0Ekl0TmXicIRM@uFdKlVtIYy1fS8#8L?vwo0MRy^9tWlY5KXeF zc2>++5SRkgNG6*MKok!q0T@lpL;zz5ycGu~02oiqcmSewFb;s6-;V_#dH`bp$XP!u zmHVn2qX3jL)kpwK2#f#_6TOn*fJ8fFSR5D%U@0RF0q`M#!2m?Z$N&&MqCo&eQD`85 zJ&ZE|fT;HL2O#P@{Qw+f(3=2G66g!y1c5#Pj>ibS0q83Ny#bsi&?^q~1aOL&9ss^2 z@H&9=1iHt8ZUD{^(-lBRE_<&5xI#>qIM5k@TpoTEKsUze1fZ)!<+qLk0k~peB4XHg z0QwNP3_$dHF98sh-HUPH0szs_{T6`e;hqODgsIK}7){_TfKdd#i348)kc&QN04#Dj z|9l1LAS0ayAa`+2#W7#TF<$_Xv+BN$EPMoz+-><7fLydV3}7yk9Re_qz(D|Vwd4SRQeyT4koz0^0LXQV zy>Va<0J)#B8-QfE3xHg^*a=`5nV}s3Zyi3f707QR%D*#a} z-vZ!U25pXGHUU^o%*Hsd0f1esr6UyZ!u}!rSJ>zHUK%^Ujjf*xfcVFgX={A zjxf8006rm53gA-$3jiD=Fdu*%2+sp>nwYr&P7#;`;7bCt0h}i=3&6P;p_zmT;JHG5 zmcVoX(g@Q4$Q6sJ00yxQro@9L$1#)Qn27-7a>ZK!^#d@Oz?%Rj5$GES`T&sYOm6@Xb&B2qM6ID00MVZ42|#op zdc=X(0f=5hcK~lQ!)^dp66gxxT>!E0YXKDQ0$>HhIs=$Smi<)#qOQ{kzE&y8kaY6Z%Ww|1YeK#K-=OIh4SEW@$OP zc{y96Vj5{oI_Ux0S$ z{v2dY_sJ|@spe-OIHvz8D3I>IgCrUL6R_#@{}_|4ocjJqfWq*Y_IRYwB_%8rIY=FdWv@-==#j7G$~&F_+SXG4*A1Z^8UY7sk}(G#kd$ z-=)7^;IE5CUe3mE!c574Iv{hpwF9>nsGI&0P&M6RP&Hlb*rh-<1BDeBNfkeAz=|dd zY`}^iHef}m12$kqOQR4(&GfK(DmoJRU~+a7kr${dz)Gs9B*5(H5#nL?RL=5X4(~Ai zFo$=NE)0jApbNuc;=*v)ar$96>?^u39Cn&+R^VoWsOitZB0(4TFV52q-5mfPsF(-^ zs%4YApjP^^6A=v<@B!jt{EJRYT9)}V8fs$iUSx`jL-+C_(;pXyT38p&(Be>aq8Am1 z?y_2#uZlx2G4z>|(8rO9i&muR+vV-riHppSYK5A3mx#(U2Wp4vnt8QCRT#HYolq6? zAGJfZ%#~W9y3A}(?NEJ)e&m{NHlIF?N5OkD8_mSpq1)_}602#D{`d7R@`f)SFtJ;t zMZFej+4Q$aOYvyDplxNhFk|b4?ywhcG`s4AVnOOVOrM)VPuhnzn$K?vy^uf-s2e(V zN0~aLROg1E+0e;r1mjzmJ9&SC^Wv-C)4o&FoPE{1(}$~>cAdTZQsA7@1)aSNFVr+G znx+S?GqW3qs@Xd?noW&ExzT|KR^X~PpLviQ-)X38{K1E69dws1rc%0-TV?Yp#$x*P z4!mQOmbKm-8sX-c2{l5MsxRCHQ*5|$i9kN@JvZ(JJaw0`dw9KA_r5*6ml`FjEu~qu zuH4siI_NzALwKXR%ZH{(Pj7W*Q)zHJdz58PKa^3kv}P}_zhk{?=JxUG*nLNv-F>`A z?l^dkS^WgPgU12dqcG=3tpuViAlRa73TN#F#-L>a=T4h1As$&}e%jY->P;HGGA;XO zr33n+In(D9WrSn)-$Tag=QXx_A2ql4^XgYg7)!OGK8`0kNj%>U_wI~AeroZ)JgzrE zU>CJi z0yl(Khq_@pyd80)9BKpDZ1HBfjjb!}5;VXCK}fm6PX96MtD3|8y~?#`A8lR|;g#5U zmrMqtg5O8zlrivCGz9~^=$+}olSz&)>45Lx(tdUVQ$!4OU@HX}p2Uf{2iF`lUQyU@ z3Ph+314J_ic?D+L058I>ergRQ^p6h0F@(*w!46x6G35OxNg&!|$>r(ODp4r_p2qZ1 z_7$zBXTDwTatQKjo4q7hr514t?@|hR2Nnf0ZCjDd( zRGwJoVw9jhS^-(00iG)a-;)u|*Iv`2h0&tyM@;@u@0QqGGHsv>@rDv>lOiAF1Sc?_k9X9fL^XiYz_yRfp=cYcLjfedo37R}GTXbukb@)a-lUND!2 zdPNlh~+5s8e|`*P*8j;E7v?Y z!YlrT3i^+8IwnCW3ltgwq08yyV}#QnD`3u8IhX_Calw7{ZTaJU$bCFeY7Q{#`x*f|R7?`wd zO#6JQ7T+sZ*UoPsyzKOegw@R}BfZMil4}7M8qDhPmB5WwGE+uE;V(HP(OW+OY5Qvu zdizFcg9eE&9+<_kG)Gl2X6=k<5nCrSTIjcxL)#G{lFB5DO9mFmc!;YpHQ~fNo)ost?W`=jIlkf0fONc2p3_`PfDe{00W1Qr47etPI%z(Grm}Vm ze|Ud2f0gEN!$?f4mp1l9nHgi~i83=rzql7OMvoKb*3k*p@zkX%hnL5VHE5!THcx{=C7~E>baPYat9kOSd-DA9VOjBp9*Tn92%xoTyJWl%K=ZzFB(G=2HFsWZ;|z16g|&o~?u2Fag{&v`u4Oqug| zN>6Vv=UId?=lx`YH=#P%F%nQb3YamHi9{K5)D*qteHg6p4NbL)=!c`n%>xrrV1L8Adu--7wPl5eQzdTjUD;qFkw@vXL@;ZHk$kiCR zj``ahpZR-ys`t$Gi@a&7cV|knn@p2wxUPwuk*t~NIL*5ao4>i!ymt8L~-tE>y#+~W? z4$kv4VM^hm=`qu*QE+%9v94AbG=&_`{}vfOz(pWX!`%+#`z=a`8yS19vd$Nu^gC(a%?$nF3j_4F{_&M!CJxJV!qeP`~Qf05Adpr<`4Lu zbCYxSoU{uhkj~AeB@jpmA#}(IT~JWLhBOsKnxIHgFd)515oA!hprX=L@Sqe!k)jAu zQHltNND&l7B%y!5*>i6Q2=D9r|Gww>GTUBR;%C##_MVb#tVZWjGz zHHv=uH(g(iQ&;hnbf9dCJ74vQ9M=P&QwvUSa(R+nAvq`YBwV@1+8^c>ujIJy53p6l zc-!TUSdDSU0m@s-)7Tp4ujW>qM<<<=|9?rwqQCr!7Ox%QK9!^+>$Gyz$VLx}K^{-z zZLMk`3r4Q4cAm4x()CqvSW_%#eeQVQHMkj5EHZ|+tkE(##&$P#?-Emy*G6?A9-p{l}%A54kTCF@#alu+F zpvLxhYc*X_-#AGJ*J-H?5{@LPl(ilmSgKIcHZ4+}bdfuR)1@CrWR5S_Yh#n|2!J=j z|D59*Obb>;DbKSsWP^4OklOxYgBGev{F4KHvrcqsc&eY`2k51r;s=PKpW;ix1&aUv zM(zD1KE5X0MlpTz1Q(#0FKp5#`nwfLr8jHDL_RBc@7|_W z*PJsQFREm!wp}Z!esYmlUm|tcuIWWn^ZItJY$6st{-wA*SOwTzBpaGDe8%a6ZU~+( z)3@8TY5~#-+=*jk3Zc{;TJ5`&+o3zObYSMP9a=WGb#@2#g?B%-mwu^LQero=JR~1% zGjk! zFd0J?vP(OosK<8GrQO;y2{-Ww$m84`fbc__@?f@d^R?*6PpTRsH|XUEyuGR6e+B=$ z>4SWbv>)@en35;id=c+zxOwb>b)HkU_KkK{rGoD?D+z~PxTV2^M0j~dfPXQ(A#q+$ zTvDPFtAyC~_Go>Snn|E!+2G1@pU0hz=Paea!_|0xQ^EvNZvOLvpK^HZORl*Qz z8HQMI`IcdB`e{Elr*ig{{o351N);hL#?{nBRGgHI93d7QP~q`!*|h0RW(eZE746Rt zX+lA6gPF9_f!qcI%4Ip5$H^V#tw?_y)&_)B@CN%+Dp8*!T9v4BJ$(irWTU--e#D>) z%Z_Nz2Kp>TDStO+}uRI6JB7ny~d<=C`MFijn&R2;8$=p6aI|qrEGYB!xAjD!2I{u=SD_hAC z51~&Lym9_K<#9}Pa+jm|zks6$sxVCaKvpzHIK4L;?CFSrUl9#iy`hf*C*)G*L*!#H zObow2u4$OC1Tx|IDGl5vx^FNB0E02vva5JszBFzGIrS;XiqnFDh+MoR(XsK>3RHwvaTC>~~h~%+QP$%GEGOhLU$$>Q(Kn${{B8HN|gM^+(6asqwKt9iH zKsXtU4~ALA2h2PgEsxt{m2lE3=PfS_%h|zVkh4=bdNYoDAc{OyE5`^-oJ_LMAJe{7 z<6tv@vy=rY6YW*`1sxASQbF51nfBomT5ScSDf*PQH)RfJ51*|#%}xHIdcSMUZfz6Lqs{5RYc=jt{>R_7oWz^N z(()D&$pEvnji#>9qq|{_-?IwkORkwQ=XkWOsNxY?&c4B&5(ef4b{NHxnYuelL^!4*~EroZS&>J|CT(XDV z&>AXA%hl_2O;tX!H>-LpJW{CeAo0b|S@?yQkgOerc`hu;au7jV)X=TRQnMg^6QAZ# zUlLUb)Gt?K6tGN);nP*3)l2=3Nywvbf|TZ-c#4h0$V5O`U&;dOZ2?Zw}R`c zYv@_PxBiA+TD@_J#v6Khu6aSIUO7a^3_zJ8RRyTM29+`O`leqT>9&T`@ITd98f5Ab zT>m&zpTydR(jofu>eu^eVu-%Kw9^}&vp|1b*2GKnVrWq_HMs2eq5610(K!qtUZUJE z-HXqHFg+Qc9bx*o>K{Aea%^ubT;_9Yn(LQK@=&V!&#gaRl7~{2&#m8GvR?_;t0`Q! z)R27*HQNdk8JReM>crFBO6REp{FD5(Gq(3z^PPLI%mHoTm8-6K*95_f3%Ejru@iZb7#=xl~c+Gk~&547W5h99&cztz( ze=Y;s9{*grow=m5@%jv&%FkA)ttdZ1U&2chBN9!oCFi}vojM7<9>XqDC9Rg@F7 ze3f3>?yypSB?t<}L#y=Jj-D}wrmxmpIKRu%mDT!)h>LI<2yPOhW=O3(Qdt>qzx#>) zpl*MZtp66IzV;Q(s|rozngUu^RbS5Hik}x4@oL@~DXviS&(XqadX!rDC0&bh$E*3j z(+}137M#zUhH~5gD$3VBO|O-3^0Gwez#tsC?3XM7q4!;;_tNxkJP4k2JrzCz8>H)r zG3?jS#oLn0E8pRgqkqH&UMF-M@W!ku*d+HVsS7n(7ut%;2f&|ESOivF zbv?fFg+iGiS$&*-WQv-0V)^oaFD0!gGr5G|JS+ zYTsVX*0M?TX(Lp*Z4w=Bq}S%EP$HdLX6x1bktuW}OE>6)Z2gM> zmfd+;>{l&)w33toLkutbv{1wFM!0STNkTU3nj;ng8KWAF^#5roUZspC`cS0?CB3FXLboU=-2S$Set)p?0hPZ;&r{v4==eSQW2M&3Wb{hL@>8R%ym=6(7wg-*8DY|F`I~-BuZZ}jkLhES)%MQE02zX(I_Mkm`QUNg!sqwL z_11XeuWmz}FWXW!Bv3-$E)kAwu+!vL>@wz(LKE7 zwEiAGtDn~2RCe2Kd+4925J>2~^h%IKr1ip-*PzzDz=nK7eR}Del^S;S-ug8~Sw(4m zfl(`HVqaukVSn5gv_RQI^Ikv^Om#m!2A{h9bRRw)`{{!!)L`)8TDdQOBYhA*v<`a} zl(lJCXAICc3Ukaa&K#vTp$7f+XHnI%{(3wPI(Yw?yW9xC=Ld6_7ij)29P6+9!W`6x z{RSp^gQcSK80K zr0-Dhtuaim#og=mGWxaBe(hy_8RKjAa5>CR4%c5rMSl+GM2a4vzlE%8My`0&i9ajpo$-2xe{R8YR^yJr-zbaT zoVi^^7sl&PBmd(Q^jLfbP0%05XU_z^in40vL>^wsors}tM~_U>JJ)h15t1n=yQT3F zSCt3Jxqp810!dpGX)y$aDq|k~F$q+n29&@JVojOfo*@x5gem>bMc1qnJ*`;~X}A#UYc`|5joUAOYl|LwGlM}+>5r{&07PRm~KKT4L1 z3fJoisgA^ePtCm96gxG81Hl-&e3D!W;5g3B)&{++JU1`?T+dd&+)KwlcWffNil9=I zm8TC)57Z|m*ivGvaIMS17fRWH!txRbepp@tVp>2)QA*iMoj2;QU{gQ35tM^#j^3F`&u-aJTCcj_5* z&rUtP^aj}ASv<_JHi6#R!j9I<^Al(2dbc$FYkgSR*9tefdZxKttQ82dUWPM#@Ktl* zxCOEf>$O5!^tC=%#W!J>UXi~|cj+l{jxhpEMJmBY%7fcfydkk}*Xy$Lwu0|a{-nh1 z*dhO<`?l*1lt1lB+p)xg{#3()=;g2Uvi8_7^~V&7+M+j74paLrdXG}KcEEu?e~aGb zjtPyw&<8Oz>%P$A_`ClL{RRHE-KsZ9E!HK-m|+#@2UjZsm)Eoe*G=Phfe*M$cz`7u zyllnY;M!47tKCk$J$CD#7Y!eT4$kO0z%|I%``;~XOTKkK(;;#vX1C&AQca?R(^>BRi&?)9k71GQPaW$O$)|vlGP|7-B2cUAdAUi z=b*M>L76r6Tc?br4RC5~)c-jo-*C5*))ePnMPaAPELJhd8qZCWH8M18`jMlcWTXDe z#*AdUDur_YHluP`9;@I+Jn8|-bl#8`10j1ld3_^fby%TpPFMOT>1wtc>z^M8f~PF6 zTGa)<0;Zjklp^E;C4v(HmV&!mhMACstOV=`SZi)z9VDqJjSZY_KcF26;tE_zJs4eJ z$^ki`7mvHRAY2BW_G;WK15FF02w6dMX(jlNNH$23@b?F>Cq`_-1X$9Bm0RPQ0XFxa z7G5w*b6gFbRb0V9_FmKfmG0qb+J)O`R06Fp;_ zBjHEyl;;5_o=ZXOHGVxirmFDfy zGqpWifwmoJ-yZ$RQmd}8`hqi|EzWdoE8X|K-cTFGxZQzX`(FQ1ow1Fc{XySYYRlC? zX0Q#MdFeK4yjO2na*xdH3fWXziQ=PHUNC)_uT_$&(CA-Tx>H;gdYmZ}vV?x4RS1Lj zPpXEvyMlJ?(-T_?tXRkkg*QCTYg$L7Rk{yvEkTMHjwk0@`ax6vSKpuQtc>AfS z&JuB8LN%zRP-jUbX*36QR?ry4l1MP)Bm@iq%+exZ$7sg+O1AVx#3Ae9{d#Fdql^3X zlq4fiCms!AHJ85yUua8Tcu&L#%08f%#p`$6PX+?bQr`o5OfFOMkXw|+7?;qvB-4qN z)C-&NK%eAf8UMI$Yr)H`oO2}^k_H}e^J95O6e-q1)%>#%Y!+xE_Yd0=i#0geU(nIl z!7MHp*obM!eIADUz~Q@Sq)*&gBW+5JwB#4jC7w*U6lZlyOLR&$3cU71<%|lTf)Ar& z5P^Yy=|?@LJD-F?C2$xZ33vnu93BAlD$LGf%CRNOZCWb5Wy`Ge=AIX8<0cf`E*gs} z-Wbk>Xv=wTSGEz3HcF}47*tkY@=+l?3HF3iWdtQKdci}7cOHrx?A~50xH~2%H>590RVtO1{TS4zTh}C5A$#Z-WN4S8UDZ{Yg`iCDkD>K z3>dW8jNU+>61|}El(C4zTMf*Z%XvV*!T@V{QV4nhY^m#F>HI zyN9Msz@(wNsxB9h9Dw%bm!a^6G#GT)yK=N#PmHBB`jB2;3IjFf4p;@wd6G0*cL;Jx zNb3&iWpj;YaWHWawU3rz`wgQejP=`sRM0J*US$NgJ>lc;sZpK+^&A zMwJ1~_V9Lu8z6AVV;z(fMfQkIB%;ybT&1tK6p(<8E}S-_0+mH!U2ugU0)YlYZ*36s zELHz_=m54BjGA7f6%QQq+89+H5)8a-kWCM;D#53~Rsk7VjeJb;#xlDY;uvl)?E(|S z(HaalXz~#~I>|B9V3UH|%rr_nW*ViXnMSU+ba68ciJu@P5opw*Vu4O+4*L6;x`CkJ z!KqtE&~G0RpiyjeQJQTU0yP2sb;R&%E)v~aN(+n9xsHj2LtOlIn2wD_Y1o=z&Uq}P z(T0NJSZ}u)S(Ij`o|g{>Pc9u_2xb>}i8?~D{;`?zJbH@HBSuTMq=7uwvD~N@Mj04d zry)?cfRsvQKkD$hF7F!G$F|-nnT`WKr!;=i^ z_lrIq;$xgB1o{Aj5MBiQktoBbKM5t&P`qWTH1C)mO-+wM1P2wvF+DPrF)LWkIq1;T zWBPrqP#ZGetWEB6oDFuX{@SEmnh(IZCo9cgf}JVwy1`&tJP$Cxz@$*hulllRR0u$v z&T~E3JY+re$FF(~A5s}~XPXA_x&u6l=mD@AAJ<24EubL|2wV%;T&I?U$MwX9`C|fY z0xSFhO=3kJr|1rRmOtR6NXX@SwQHY1j`C;%i_G88-o6n3NFq82VdV`P9mm6L72DTosbXwE5!6AS38Q+joL zuAS1O%g7P)kD)W5m;ukTcIt0>@1U~(X@p%NACvtDq|A@eh_iaM&gN95?vJwtSmc89dYE#@p$fk_RIFHJ0w#wl7WUvAkRXIhm`?wt9|}&E5C=@sWGV)bvr4Tl zv}~-^Ju+r91z*;EQ4@AU$c00%r=c~Of8y$qry(ues7BgtFGIzs&e?5GxC&u0+s3TE zrnk&=#Ck01FS37PEt3@M;S#AN)DRcm!4#_Lb!Z`^71Th;_fl`@%~*o?`T$V}n#|W% zh|792zASA%p)P(+wtC$R>)1=X{YYAK=uCa9w#YT`3p5#`F)V%9)*BwrnzuHn5- zwvwf8_jl0Ri6k7@N@yZO@~^jm3Q+Ce4PDUPI=thAfkB00AzMW{Sl(C-Nhc zC({1j6ipR%=UR#n6$us3eC7yltT}7_KSl+9tP3RV`HVV;iZ=E5gq@|H!-Vkl>|;DJ ztB~10N1<8j1)dA%uziHl0;lbR{KXyZQ=y_k$U3gN1J>rTwNyP!#D;zv5)9?V%Pfsl z=;1KYDL2k1Bmya3kkVefCYhNM{8Xu2K)O|yxhbd|A$X4Fmu2yey)=JyqHy^b5|CS> z1URrFQ&>Ql;$8`Jk*Pf1Kw(rO-+17;Q>|Q%!EG>6R0Bsq+`wj_G7FcVit_!i9YeOj zJ2O}aD8n6iq^3{S8Ym!B02X7XQ~NC`fQ|>!X(lDNSS$T%0Z{I=^N*jZb!6WR@=XBK zCBQ}SLDxHDr3u8oQnjodbH2H9^h*=`}hKJzaa+(+$il!-Gi(E8KLEeCcwG)Mb!29EY zu?c_;w>PLI-#<@uI!si{<>7DZz>OW+%l`u)9f}D21AM)>`Brfr$9f5!0i&Tyta1aF zbYK+&i#WzAlm zcy@C>9ZbOW!lEfHLOG|;xmfq#WBQWSm5OsSLQPRu@s(Nb1*RXjM;$a`S|riKALg|v z(Ze5Rl;ok6mdy+hV=qTI*B}wWmcJZPR3$byYUB}mZfKy3yxU=Dz~dEjRs$?KjmI98*P<{W>m4PiVWRn9eLpu@T*Ik^9XAqJ-kZH#d3biYh5FaVZC-#Ao z;;gF9BKj&yOjml-pJQM$GoZA%rmov$KVJrMN};XCh?)GI7b~DRFSLJ%6Zf*3xqO1y zUxIf`h%m7CxZ!fNr)LC(CyM)!+A&d7!DoCTHtu?~B2k=XK31brdM}YmwJV`ddueJVF$=p{O0wvv)TXh?qM|x?3av;M4H=}aRYW?KO%ZXy zlhJY%eON_!sdEZ$g#;4kq=*Q0_;p&AA}Y#EFeByOT}u&B{!XP+lggqTY=e7L7Oivc zs8hA3?kckVLPG)9HFy3=7b}aZYT<73R1?+0H8q=i@5Vymz5(KU)YVgHSrz0702$F; z2#QP<@c^QFs*pBpvTL(bvB781*Qp`~Nhsr^-(L`L{ZUoK`D<}vN(x-rhRO=f?3e6@#pDvzIqMhlU3f5X$k%8alX@~Lr z>FS^^$QG6%-d5T>>?K>jD;7A2sl3U+>ddoG!4GUF;2RXnscRqqL|OoKz-$6_cu12` z4x5Jbk&JUq0qL3I5p~XY)HPE?DL>GlOtDD)<1LD>iA~8F=xFL)Q#_@PT11l@iWIt1 zQ!W6|#o;o58oB~rvPm&Kb)yq^AA(7-osBA4ah8mO&H)m9D zqO;S~#txnW5lA9-i3BEjycIZ635be!qLTel@T}vFbE3Tds5nH$I#IZAD_B?5PN` z3lOVuEK~s4K6GkOSIo~GwMeq05_^yVoIY^qD@G2eR$Y)p7rJ^|<5=YaV>K1h6V-z? zSx?kR{a}&Ba#eX)gC+fYi*7;jg^O;Y_#2Dp*?NNQW$o|kfrVDu(#85>0M?{Z6KnDm z#nlv*X+;BvLVnf&WM8%sMF|Z>Ss42?Xo%S>pgstxOC{ntG&2}?-}g4eBAiQ6jYK#YgeG^3G_{;%F^Bpy`vETZd;9Fl-=I`zl~81raiHYme9TAwXXW*4(%D-|u# zkhcR1X}B40iMo-zfnavp$UBr+jL?|QqhBpiHDMmMV`l4wwDe=GDr8Gi!!IySX*t-* z3h3z^d77M?BeD@Xlp`A9lh{}+mKJk3k+HfOQjRvTW0H&A8-)6QYAh-OxS%G2$|1{Y|USPtj`7#}tf-g|CY7I#`m zcg}DQx`9Z%WT3ZWA_t3WLt3b#jyP8$DO?N_`_vAhq1* zg1o6to+6WI3!4}YaSP~LQ}GDy?LO2@^bQ|8S7MHviQ|nql;2D&VFL4FbI}8Y(YVq&eCf!i_?k;4}&znaGzyLdq`it-pP3K0bQ7aJM>(suL zY-N5c*~%BK#9;1pqt>E9NxqKHMp)0M$ zMA*xWy;s!0XYIYBg_8@U1iA1Anl~P~qV5y#@UmKeU(s$ViF`E0w-Ke31(e=Kyr?X+ zKWHQFQIv(W?m=)CzWc@5r1^6#pNEM6u0`YUkm4dlXuP#WaA?Y0%6LGuQ7rqF2Sgoz z(Wc5eD>)xgWg96h;sD33raOQbb}njN62EVjRk+ zK8y`~<049LFKR`%12$G}4tcbER)Wh{aWdz&2TQPy=Cl`8Z!J@k;vW)Cu&BB|BvKQu z1_+kZlfMH&^yBwM^!`Iw!aL~5Lm~yV$$VHe@HbqOUVa#eSwJTqmPEw+h{({nPi`!{ zM<2oT&8OT)L}TRG{D^2TNlBo4AhnKtZ|b9RjX(UTNV;=|Nso$ZHRVWoArb&@5W!>Q zFD?hrRZo!|qSwCyoze5GqqC37ekVKzN?Je-9urMV7hCDa0=wq1aWv~O!S?3Y9}_WE zinqla2+zbGITP3!+>+Qa1WbA;r-R6f>&HPbPB^=TIW8Nd=Z2|n>pV^GAUg9}z0d*E z)`x~YE;gc_Mjb_k(&uOAfq4n=wtk@d(u*C%6A5q3k#|=NKWH_SVeHFzX9a#GEoymJ~UeF2B%=TX-!(k2p&YSJONakSE z%s>!HlV{U`uHpyOYJc6}~K z#eC?DMBt9kdx0P-UpR+EH?c%pKL=-!L`v!+5-Gihv#}oTCK|`KgLWrJN?e>Va)v@4 zhw671mh5X45lz%xWT>a+&{y3>TJgweN_`r8X92Z&8tS#V)bD8=CdR)*vz`_y|LQIW z{1Zge)u(Y>I!|FeL~4v?JO*~h;#hS88J zB9z+p6+Oyic-3NybAj9PU!IajzO#LC$^(@0C|Y!Y;rmn1ijQMAV2QyWl$N7B08=_S zh^z|XbM)0`#c*W<4eKYOffzIUi9vx2Lj1ZPF9-jLTE$Kie}z4JV<5I24fJTC_F1uYx~qbMQ`$Ew{`ob&0p0ip%=;co_r zSZr};21vHD>kHt!GU$yLL`vWql^iM@`%>8hYTQ84@bO|)u-MP-xSs@`-z_yD`#8Wl zUsi_{%e3Uoe>up~>VYDKNyU+YqKk5ptU)3}B0A({5XZ5YhDA%`uv@F1vovXth)ZRX z>yP45D|GffoI=Jy=)+m1I0stto}OCt-5{~6>_Ld>v((|7?8x_VgkkYM?sr>|?o-}i z5vBQM`9BU8N$JzR03NXn3wO^OTI?YXKQgU33pc~O54=4~DESY=##tzJh)BY%r~8J8 zETtih9wJ389}WR!Dxj?hQG(Ft$`29~8k>dFlL9)^SS)=BQx3`PODB#i_NlGALVo&+9;>(!l6ZNJ1s7`*<#>lQHzCvm|*K_;HQ%qfSZp4 zkv_W&-t&t1lGoRQ zkx+o`B73B$D-#2hwie{F)eu4L1+iJ%ErNt-0z@D^LcH-7>p1DCAr&nJmTaqo{}CWGIrOKm2L zw{Q{c{AAHGNZCmBr$g{_WIlD7E^fNoRauwQ8eIyw+EuMEHfanfa=iEjrY#;HsBw-= zhlFsrbhS&dGsI_6y#0BVI8amoZwbiZnWUbY0U{3RSGm_68J+C@z}H1Bb#y+hc-`5P z1Ca^jnJH@ACSGYfQ=~LHBPRwTp}@@S<4FLC*u!7Y2+)sw{6qlyHHdilS3ZtJeyXu% zruacQMpH;UjTK)&BB7S#ZCN?#&*~H{B3D2vC=Xaw33A5L0U()FT(+78HoSm(%z}_WDyI?+)+rLUHnQvubUfSr~wuJGDHD-$i@|P30pDSXy?7eeEwMc(4wtzKr>JNP=EGSf?uJgo;l)Zq3qVq&d zdO+ctq=2|AfmNZ4DQHeS%!`yHm$mQPjSM{0X(haP?>w{wmtR!&!oS##avj8iTeM)P zTO1G`fh~1T1-w1HR1OO7k5ZeVvQ-hZ85kYd0;$*%z*L2@Io(iS*kkY#3ky;lG;t?D zZahvY@U}7%R!4B-!DfKiJ=g~ZZy_huSQ&I9n3ISWNB${$;=&*V7Y#xvUT$lfBq(X2 zh|jw7P{2q<8IZ(MGO1ItxNLUM9(qQ_L35Ho1);(YKMe}7o81@ePQ)P{RQ?vG1y z3Mlf#e)fQGsff@58{`?aF4I?XCJd4jf zTjbnfcBBhhOwRWTb($?=?5H(jq6%xEg`Z&ytvzZS?{zGzbjFXD0Gi^fu+HdVXz@E4 zn;>u4m`?u|xRHmh@_O-Hq&)HQmWD*fO&nartz0kSnYK!%NqS`Zdp#_4R#2%8P={sO zwKj+?5~r?xF764q6>a;hkw^=ERW&{)qCVEVV1Ucev^>$25pZ9gXr_#@%Wgy+A!GTt zg`LLb8AJDO0-|iRdvAhR0#mSNi&zkZA$fEM#BAf}y&d8~e6H<)RDGje=1WmhfNN>^ zl^J6<{#L9GQZLV=%Riv%jb!bG2oA3Bu3$zl*}M0OMygUs5eKjx7E-$d;z=Z~IUssM zc?zR8k2MKcF05H{r;Y3l4yDeIqBpY6zabK6^N(n-kbe46bit?LL9|e4k3Pt1Tqsn3 z68ua<^+O^m9+f3XIt*X+)+n%&ru8D*@2Ue(;}eI(IutK^7|dKDwLFZ2U?D9(jM9bV zJAxAkuI3#9V1=~)i1-Or&i+|^k5K=kST2RM@F;{Sg?8jG5S!yfSnn8=yI1J^G0{W0 zNF9C^y&7Mhhvjy`EuYNzH^04pB)z)PkF{4fl5t#Y!tm`p4y{80nJ1u8y=3<|AtDsS z4n8SWpmR?0_|qpRMPmF$#_J|9$;2lc1TnZ*5?@$@1lBW_&YgsEYzkF9B_2{b*`rS3 z)PjzD{F`_TpYYS-4K%Ujw79{O0N1V9zgYdvmR>ISHp7r@I3x0rb;|E@tS7& zsw>4%jeu&S?5$VDP;RO5btDzi%hv__aQF@%$UmjEtAlTRP6)nv^4rHr|?BCx2 znoHD+e%&(SmBQCM89$?ZwqkVT@^}tF;%gY6GN7v|pbr%T9i*L#u>u8$szwET7PyUA zTBjNf@cXiAyok>WZlki3az8%j-Nts5S{r11i4aP~(EMN{6u*}S8=dh9)r>EIW8Z41 zb{f5+8=K1&$E(}%XK#>Vatr^+0L>P6$;d>k}OY>_8UEqJ5rgb%QD8n#%D3@rq zVJwW3S1#bY3|I5brnpaOf|m_ut~b<8_nSsS7;X;2D4VUQlq8eJm`3HW$6XV+WE7TaKLxljNoMg%lHzFx5 z%(xFlUJk>^;F*swBOCS94F_-+?M30n1Vx!n)jY=ixy8Hu|JConlH*+i6w=u&0+Bdi z6pNti9;2ChbU!sKVbrWL@c?*IVLXK6ar=_SRP46LOB#zI^O{)7NK>}c+EPZGy8M8>uau#v%4qvQl##>KC811U zJUb$E(h0SXMq~kPiZ&V{QjL*A)houRsVJ}83uDpB|KDR}4~#b=6!pZ9G&aF#qfR_% z?@KUVP$6l%&ui3ES01E^UL#4x*ev$~+>I2Rgih?DzDdT17#pw8c%2EG&q!6b9kh@6 zj2H|GT`zAufPUX!!FWcwWUsAYlwo4{T}7i3%p$JvXCsxXWF(c5#Bhs(3BWw$@i!0B ztg+Ogl2L#$e=ym|#F&puHu@-?=wh^oaP!T|Mj!R+M%$=j zzzNW9k1`B(9o~8c=(?nG3k7_72G6{c3MF3p%0p{;Gk| zuGk)*U(Hy<+xvtxqY3Mz^V5t6nR%#?ZZw0cw|BY`Tc3}#Fw^RX3smw*2n_bL!?IT% z!GYLijeDCnlv^34Z4#?hPdnO_Ze;i?j-rt2z&yB&sBTn9T{G9OooA?1Tq_+NYrr05 zNg#-%1#{`O>X?AuG~&~sGIp5^qc!s{cDEYFAqBelCN+%=$W{l{G@1o!b;hEo*1%Z! zYn5YxT2Iw9q!tK+kVL(*jAni>Ie7~9HWja#GMfy1C~`rxJIi3dG^er*c8U~S%UFxg z##%;ue9F`|+TinaZKGpQJMj0ky|$4UjMv`q^K@;ac|e^PfW@!QldwRY*QSo~G!Oim zItBzs_R%`PF}O)NRTsNS0crJ&Zc-1Y`Wc?9FyNDpcyj9*(SEkyVTIED3GdgFKyIyP zFdzSGJ*)(%Na`C)bK%to{c>^#>S6zsfjEB+hys5AA`g2?wzFWykWa3T10nVegc2|t z0r%jxmf)%qo=Ac;HAEKRHf5&&fq$w^-Vy$sAq(cw(!PmNp5pNus#b*dt$Xe=}zy{uC+T` zd4j6n>+Y?nG#pkt87l0YyhuVBf>^DiZ|5>Kbp)na)+Nk8IkB;_fp zQVve`yHR|3H++54!dj4p?l12K!KPE?-MFdd)W%Q4Q&a_aQ>DAzp@Lge!m7d|$lr>m zEA_4DPHF@{K{wljZ3#FCIKxTtvW+qJdvFjC9Nh%rX?f(55%3fYeqeh=x347};39X^ zu;?PlgNxV10j>!zqwoQRdnOh1(vMK3VleffluGX9m4U;qobkhl4~MlCpYd>FgJ6_@ zL169w#rt)ZN}W-yO$!>VbDjL)jm4+s}XCM_$h)cz&4)Fs7kv(CaRm

    UyS6ZW+ow5Su-@ow7F$!HQIfnq_Sweu73f5BEPyVe%i z5vzALV*WRpG_bSr0&J1abT)?EMq%jrF2?u&8@U?L)#%6r^j%kDrh4NO>h*+?5X)OU zY;+;Vh6H%1GZ;Wb-7}ZodIFrm@lWXF6NYrSTlPugaSjiA()hI0dqCD4iO6pLcr6%V zwtNb_7#bM#lu-p%my4bfg;M<(;ucjzv1?O-hI*Ff3T0tbxPeV{qQJ7k4x6 zQIz-Wv)#d?{cj!1>0x9+yfLH)xPsewG2OOD6$|pVJ)jpjPkgDD z(Sg4gdKuE2b*0`otwDI*+jug~u~uXY6z+ms9;3ffc(3Gr(8E%GFcZN=hKh%KgHLQn zL4DA_c9h!3X#T(PZ}a;YgVD?AzQ!uW@0vA1nO(FixceE~N@F%}aci1Ck9P^WG7!ux zRQ`hu_TGp`Dr0HKAdH!G;g~`xgN^R|d#DjlO9vY)i;=(GLyTnScM{z@#9;HJ*M=DN zm20$nh_Mo(;V&8^0+|zEGHRKOO}Ja%GE65c*^HwXUotudGF*7cfEP!uxf2&1YD}?@ z_A{=j$~F7Q^G1T(ju>Wa3szpIYNKGI-e{!phx2=1+(*o3z!KV5+K+K8N(ZI1@)uCj zXrpVGBOW~`*^!MjWwbE_MU62yGk#2uj4>WVdmoQ6%7-|}z7Hn*8FX}v@xslT!~a?H zb7TKe^O3PQ+fS!Wk#dWOAof>DJ}CZA6+5-93b zV?5&KziO2A$33R5SwL}9jnT>`S~%6n;RSU6Oe501G}X8&#hqQ*B%$mKBbt2EF*%#4 z<8+54j-76_LvX?C4&@Bw8^=`y0@1W*hVf+am;`#}bhkIbVji;3Y{t%Ud)}9~-j>(yzQdTS*1$#f2q+@tHv9;tFidX4lk@#H+z`eCQ^p5^ z_&p+@vUVEtx&6I6jSdO~RyB5E2ZI0gT_8D^Xwoi_zf1PUUB)-=|9t(yUh%Clh4l!H z_867j`1aguY~w{}*VvCWqwbhO7DL3sHUH(zQLoZ(KN{uz z-Q}wac8i0?HAN=7t*<81y@!nEq4ME3s~$Xhp}>MeMrHr7rBI!N2D?eNgAN;;6m`oU z+I|GPP6qvP#Ap=d6nk$Xc2mvru{$LboJG#h#!e8qh@(al%uA~u1xjVmeMgO_L(Y8b zXT(rX-ch5udi5w7zZi{KM{?gUSWev1g=0o9MOjN-jvM>flXKk@#;>KCVuxlOs~%bx z>&X*i&CI8alSYcVKHu(m(uiad*Zj26z1Y0UK{4&9->_N(sS79CKn55xTq5Ilqxw_- z3sKn;5O%K&u$;pKKNdp=C3(-CpZb3s39y`VzNLA;8p58@qd8c&5VR}bKm6;Be_Z8Q6>;~ zgXSQ5dKYNU@E|ZWsBY&UMvCu_FnA-G>j-sD-&E!-_Kr&wc}^~a>~nG%^f_l_J^(4N zE?<}o^6GxqD)1S{?*~F>Dc?Hux|ydbghB)l81fN~w^al!`8;J&VaJh6?2XZs{H(bYIg(rYX|LejW;P%C}eLWZV zci@;{joC6Jo`v@xy^_by=+jkGp2zAdX3N}oK!}?PK}iY7k>g5A!2j_qB#Q7R4D}`A zom*V^3--q2f!1Y1eb9Nd!;OGoepSb1ZF)102}!c_U8v)zk76agiNkzly(J%lW3e*B zIM{C4FgPMB^$>o;eS|cUu&%TGT(c6A!r%oDbO=|o`egle|oZgf%2E)8b?C^MDy zSFabBK3SPXoiE0R6#GfnR5Mw*k1D#&RQ0nTsh!*ONfHawL-`sZVDzM+vn6TaCs4VJ z2{NnDZnw$wIWUT4$rEH&^&|}Q#d3#Yyz$(j1iClKd<9HSevtWDXgr_z-PTlS%Mxg2 zu<0$A!OD``Z3BXmqG2t7jI$t$UQ7Ff%@)P??rh%ZU)0PdYz2|0A<+*7CFo{z_4k9+ zT{p9fBG>BXJshbEb8_%x^tvR~yAGYp=fZ(sBHGWwY*pjjy8m=OvQ`F?w+DVe2HV*% zKTwp#c1Vc1NL3coiZF8z3!V@CQYxs=wmyQd4ypq~HuqrA<{&;td3saX(&pc({uLj1EY82;S>D4u zfq%tIP7*6VyNvl^!pU#^*b&UAJ(i7yG^wgbtN zt>Q24!{OS(1JPzL5QGiUX1qG@TRIqR$_t$fW6U&a8e{tWktq>sHgKEWn);VAay-F_ z!LjDOyky(OntYPBC&rpzut)#<-?IRSByy0ALBxJ5k^6UD9+GH|fUx{Z zqWQAATcI0XGlQ0uHQx`=*}zEoxhFYN;GPC}QS3|mq8GD+eum+-wA&2$8v9In{vGHu zpJK-))BiLU*u%=14=Fc~d@ngizQXb*yB4Wl!EB~1qrnx-O3HFtP{HKa3D#FIli*wW za0Qc3(ZLnXmQGGDJzLStLWXzv0|)x4W-1w#%-VkU(!+6s1|D!A3T#`+ob8k;MK_S4 z*zXebcrsd9O+%8+4ru!OWHh~ut|gm%a0NWc)HB7*!0)*!Cd=(*R9t1VJnY50rlTk> za91{2%s;5I$-Bes$^h4&@7Ky^3IL3#VkV*o)vCxIw5t;6K{9RSs10~#s+Qq`;s zXwFtOdHZT#&E(U#>`%2c^aoX@nH4b6n`3lu_M${2xHhtq%B>QA`FJT~657T!ALa)iwLzGp(-a!)H}plT9g6cRZQ(%#r{)p`Pq>lX?=%#@933qT&Pf81-zm zzWJ1b;L{Bx(u`?Jd$4&bj?mims8Lj{k4%50#x4rT`$(7}w3V(SYq+qiKH66@Ge zs3G)D2Xi2V9tn?|(Y&?Sdfcpr_ZV=I2ZC>Tp(hlsvf=h0yB0fw3F7w{u)Z}K|G3$> zBzPtlYq()@nyhBxIY&W<9ycrS4k#~GyKmFiv9$)aL0D_VcQotdE)7;hEXVFKlaWI zXz@$BEc&l20ySB5K2+9J~!M2|6mkh!4A?PKTuDb#G1gO97E%&ODeL(##+5P%3 zd%Teb_BDMmlVM4RWe)7A-P4)XAS<({wPYiG*cW7YBjxu6J2IAj>kGD}lb!Iaxl93> z`l=s-AlcXZn+p(}|D5?e2TKhwvz2YsZh-lqa*>t{Fh?V@+6w@pfZln*99_mSHeE6t zEC3U+#q!6&&6G3HTtzisG`~eL@e;r+pzbfpVuxPBzOj=^4>ddb2^lO?xhz{CqvV*O z=F%vq+LdgtiXJL{M#Np$Xu^JGES3^7D;-N2YM0&dV)pBwXqF} z|MCf&*)szUUG&$`rWF4teS-jBZ^m&<5KVa5e5^9$twGO8hr;lkoMhsEkUZ(yS1xZ^ z;Y^T6E1e>8&DdzHon+PP3$ub)_~By52b}65E7yz+;?+Tq=3?{r(6(IAOC}Lei+O9c}L*T zjRs12OG=Lbi$|F$QS!uXSY>6Rl?X?aZqI#mbd*_{kI>1Z=n(O?*8E!kyv8v}kxlcrdY;7sA8pT?Rc!;c=5f*s6bn(N3hx;7Tb zIEh{uXI2j%KTnE*k(Ah8Y(N&IG;^b-)o>Yz@Po;sL7g zCdk%Id&rw6o_3!VkTXmgx7iM#V{TED@$}tX^Lu5y{oXutlv;8$!-dm%`6BfTHCkxK zyFo-~#6lyo=&j1xhvl1=?s4lkQ+~Q0`CrUzj;)u9n%LXl&2fcnH{?4j3R&}mYEj!q z)hhP&JhMv>IP>5#`ZTx7&!yAK5+Y`1H#L}IKF9Fxp@Pp%ev<6zJkx87x6HGuvd=DD z3^p7Nx*EM>TKJ4`J_x1LU+Yz+IU#QPZG{nU*=`{>j6vBT`Q_q}gw zigJJsf55fQT#5tLermB)mYc8?toA=^SC(DjYJkdeHd6m9>T&`HijZ<86kCV2-Y!Gf2i(7e|?&r9z#o|7fajBHO z(kxN$bRdDHzA3Kbfgrb*;yM%vI<5T>2qJ0MahkLef`tDsYH3jKwG;k+IABZ+1RXF& z27(S4SBio0*KumP$}CTLD{zxE?L+g~a66D0Kz?|FHm))&(+?k-P41ZRz(;pU*mbvr zdp^EPiLFSecPP-f(~rG@pwo}tfuPfmZGj*l{rm*?qwgJn?3?gjAfHq0tw0dP-aJ9d zI&^U0YP0km%2uW=tIY-BXNr|L?jMplpO{zgSR&sxpZhmWj$d<^CimVgp~9zTlYdk5 z%1`eC+Of~>(qzWkyCe+1Tf#0R{C8Ng?>It3*4?GGZR_rW8;#fhyPoe_Zzh;$Hf`pc ztijOr{Jq}1LEn96)=l{2lw2SI8RN=85IC^p6jk11Hm=AItATO#`^fI+Dvt~n~#RiKMOhhPcC`w=chkt;dZlAsaet! zFK33`A!pvQ*)F*QOc_o9xG!}gG!#|@IE_F=cTk~@Uzl-rg`MVdJ-qk>#>Y0(gda@4 zM!e<+Gr11m#Fzfx10^{EJ`MN;-$NSg!ao9w2BfK^kL%9l+pR8I|ASesgQhV}_A=@UvLc4e95D z$k~wU`~e>VBu*M>*2vtG12A2qMLtB%?Z{1wnCu@jHLGh5b$ZHNVnEn{y6Xu@$bP91lF z-aT&C@MB3dItP@B#An?XbR8%4k~_a}^uzI(L_9KR9i3?>pD=d>N3cG@74lh-5+s)i zC2hgruH2=E+TP#IZAvf;nN(VT26kHdS#wB*#i$5}Hypf9@)a)?qluG*5`z25Z=GH> z^YZlN+b8GRZ=W@HD1Kt3tWmW*&R9uso$f$c z39B?7Z@^)`;6=TJ;({0g$1nsvKXcom{NS4uPCLfDQ2Qc{FX-dM2Nm}4;agnIlW?P) zvD$EB^~-;`{vSYd`4-ASJ_ceHvL+kriyr|FmJhzUtss`P@IxD>6@+){EVl&C3=ej> zgMxL;58G~DLwTqy@f*&OQI!ZV(r#AN!515@3tI902U-#ReZb)78ewAg!t%&vnJsap z*itPxC5b~z{L+$za~W<6^Al@$k-)mbb*mxVu=O{7<3}*X7MStX-0ZvrHeNtwdFFLS z2&?5mOTqch`3b|?hYBG6{D1$ZW0EkqK~Nccej%7WaEXJ0H4a!{q_Q6bs% zZDdIQRLk4@ndb+1pY84)`0Rjg&wIQ7KdpTSoK)5I|I7eV-VA<-y_1xSn%>;HS+ zo4a#&Tt$Ds|NAi9cFwu&+|%ytyoSc=$O~$dV&jDB#;9ps6g00{ySloW&FLe((z>iR zs`l#|g0rjFw$%GkWA&J(C}>z4R!4OaZ9w&!wbjjlX>M6p7mcl6)0C7_jOJRenTl%~ ztJgI&t!ZA_9p(^KuWeX6@w}+9p#uVyNT9s7p}9KR7|?jyA#^Qu$(|h|{V?0G^TKLrcy>us zvv+n>9Y)D|rc+plO{0xCXU*ERGz%;M2H}Na+FTcTVbth1c#UE8C&##R>re@AK|R@! zes~zp?P5wJnPo~t+17$IamMFn+or}~a@`s~XlRTkH>_)#>@}`wu4U6KX%U+|TpG_t z4VPx_{Nq$&Pl@9)IPo5^7__-y^&c3=dBRjh> z@|s#2&#hk4(7dcI-`IfN^Xi%=FK>z(neHg~qvaF~Vo#cXL9>wS#$!_U7>uO1_%&x4L@TZhtl5YO&Au`P3=$%tnN{c$}{K{z%Lx%x>?R07EVL%e~YOIp_bYaK) z(g&>Gl)C*dkNdX*Y5!q*`)Vkiei#r;vB*9Qr5&FQxASL_q;+DqXDRdFOP()y zz)H4G>w4)Kc72`n#-I`zsE1F=%$;DjdD(1+Ep3#ZKg|A}WH0B8Q{Y#{W2JE}~;f%ET!E7J=>d**`_u#qtOh2Tv z*+pNGimk^XYiBbVGE(>C@|gih4`T5M=Z{|y-w2Z>Aq=FN>76?7tKr)#hhxtq=_Ry_(^)un` z`Xs&poXLD2=-pAn$^H4{GP$mCKGU@XO|%Yu3N4Pi1GJ7T(^{I2r9@!Ky7t8O9ER90 zK&(dzmy%>K$-LapGnU@~{Rja)nOA~ds9e?qZ1!bRvCrfGw+{aRba5ZP;CTO5G2Yiv z?w*X-r19Qx)hE~>nH*nw{ANtM>AuIVyj1E}MX24rC8Dyy4@d*qp1Y;aY{^xU%wD-v z>YeM|nZ0+ZG_KEz&glm7b$b`g&?6Z{LaF)NWlE=C#lCr&)VEN@VUd=>lPwa#LyVt~ zm8UJA+S@14>pDQc80gaH>%F-H^ea9UJy~#Z@E3G|eoY1XE$q(Aq<+bfy9D6;`A!F@ zcL9}-6<>#2Q0`Sicwt#SQz+#t_x;Bm(E5347$sV*8Bvxb`ymh$=X5uS@zvu4`BiBk zy!?4-$>0l;XPL~9@~oZ#vCqjIb-?F+^7L1L!$knTm=htd+>zft}Y%FlGoXGn9b?~>1~Liz+!k^a9?J}r}(n^|&1 zK65$%evFjH%?Z7OG9jJ}LZo7N{U(%YV7!AVAY?P|5ooG+v5Lo{X&08lMas2QK9_1K zRAqX~WsTGMJNXQn+8zUCz9YP{FW@=nOhY?qLH=AKzyq%}sec9Pt#b)tE|6(&=y@CU zUD9l3KJwMbpO1F4RJZf!GI0^F0Wh2%$0L*`)N|FD)}#NSsH9D&X9x0JrR2X`CQfZ* zP!?x;A7DwB(ewNR?c0$lgsHL}d1QKERHSs;dmudu>A%n^ z*%=&;r#GCLN(`R<25=Jq_aKZ6;@nCjgBu@Xe*nV7>SQwT*`3z2JTp{h%9=3|y9ZcV zdT|aTFpfTQ89(e)`w8^SHJ^=Mi{8r+B6=cr^8$J`^1N4`?u*hDO#9AcHnJ->m&EQE z0kxxne+X3CeNIZWZm!0tI8PI<^C`4=w_5>E%DzOaHMLGkt(7wTa09!ev>|+851>q3 zK+kndqP z>&Vq*vu(>g^ULgcBNP|q#UmB*)!1dZ-a z)VH00>&mmIwrZ65M5+8xD}cFekf{Jx1mJs0e3DrIK&(v1=ku9asPBYy4AMQIs|#f= zNh$?KD;FiV6;l6ZC6H*3^1V}yva6WZbB(g3RA${F)&RE!W%7?W9QThn+>Ly#o4y z4$zw`dM`U-$>0wO=-sw{a_|>c^j;yB9iZ?h-vRnnKreCtq_?7+`VUF({RQ+f$a5y+ zOLrKlF803i(N7NkcJ!87fawq_20vfuePsuOzpnzlymZ}3W*j1PcIAyy@n}BYUjsvA zm1j^MUiJ?63LVxW&kr|8e+S@Tytb#jT8RapbXaP6LiUq#PF1lXocl7!F zQn3F)N-J^%(i)@@(!ThXnpEum>%OUSxt%=(jO1!e9`@Ljk|puZdKs4v?Sd(#TS zZ99{{1OngneL{NzbZgmR;I_q+fag5gUuY-zGleoA=nF@|p5VsFMgZ`U62fKyfzRYE zVFueP;CBh|{FuHEc+$4?JXZmK0OcH?KM(8m9#kGsB|_%5@|JLm=((ZgWfmo!1LKGf zx^_rvp{)ZfnG3s-@>Ok}hXP-+07zVGh|b=F$EKW0vseyzE~!QMGf>aXK;Gf_>a@fE zLP{L{5>hgDxP0h3G~b$7K}1*_F(HZ?u94EzNu&E!C&h28Ea z%REDEyTC&tleg{zFlUBJzj}8C@FBo*{@7E|_FP4|^RO~s?L`|`voweUW!Toty#S=} z%ny)~Wz8++I+UlQJm9pH5KpU6PfN=!h_z7rjwFB8zi4$v0> zowG2ZCtgm{dmrNXIsyFxLT5uCkovJLh$Ro)0n`yd5tYyclv~HL2k(~pwk}2cM52l3 zS>(9{y;~RtwLOM1mo-$T=d$r-_$!bne*FVzP>_zF#5Yl~vmAg_mA)iqQzO=m&^0d8kP(KFgoe06uiR0~Ysr?Y>FKVlY z*L`-W0ZC>Tkhu_~a)oVU+*#gcdB-QW`3ayC3-hM}y*E(!Gol0Zmn(X&FxKk?^a&lH z9|Ss=G1SdRD0eOMs3D-w=>WaU#PXr;0DX~wetHM!1)y^cO6V1H7nd&V0DTzH+x%&u zf5zM|=m1@<7<`3I`{e54g2fmeXTpE+&#W%LJu z&J9+A`waBcJ3xO5=-kF3^fJ37E|9paZwu%IO3%v`y;q=%-1dQh&gcFP&_!m=Ou}fA zbDl6rXJJ!&BhS%z`uMUmbjHgfQzRov2bnOdIFtz;(5gb$G?WsprR{FHxB@47#2}&w zn9~8VK_Di|udyiS%JULe^>hK9$iJ-RGvs=ST5clB-$wlsq-P-=ThTrVmEtx9_$KFvQZt8-pI9`M{Hxg71BX{ddh0MF|+z;iR)UP@N^q4{JLtByBg{KIYkC?yBXLF@ z^7@~kejdui8)E(2s9%UW61r5sX-4Uq11U*xJ`iLxS>bMO%RM;%guoxpFuY9Zy$j1y z?%sPo9iGz>uc8K>T0SKrpS7t~^3J81z0V4JW4?gCvIF#KKIF78R-GwVc>$ zhk(CJz^A?s&Ppwc<7TG<_GXlqqFz+(8p>ZrJ&nmlIwy%gAAJO}BymJgQt>aK_pxal z_d#Tbq}qNHvNO<1&jsj=tD1Z7EAth#?L%4I7OML?;JKR0++SuSYU?kQ`C@JcJYSG% zw1Z2yw8IG%5I93$3k2@vT`IIw2U~F6vyMLVt!3IruS1s zF8LAQy6FhikqkTu=?O@0Ldw1OkB=#@1gG;f>d2_1XAAOtWs}34R%d?FiUv-EBU0PL zsOLJ6$MC5B3Don^b3&J(ZV)x%ITv|8@aYK4Qfy@k>SiLn7pp@-s$M9MM@mnhZrFdm zd{nUys~{)mCHbmg=Lh(DlJ2B09S&=K1rz7ne#zeU+y4JUT)qzad{Z7n|D1hjc+Wln z1tC@(05I3Nm2t>d1Y~~GZ_P;qpj^Yf2mEP78P8(0aWkrNB6EJh2U23$&+2$l8*nD` z9S|jRdIeH`&`t=-9Vr!tfKySvT^LkiG?b4F41o&ZdjQP0W(nHFovp2a{RLq8GFMt7 z>ndO$76#E;3A|AN=JN8}$EDT_Hy};XFbA zr~A(vDh&W$UugjBnwuIBOTjE7L710UqC5d*Zcuz_UTWE#in@f)=BI|kETpO7Fr@sI zyGv2YnGf(n>?LvRH$GH8JeMNR`Ie_w0i8<)La$J?n+5bO9iZO~bS@)0K;I#tZ|?y8 zM-}K5F=`QgR|n|3fX@8}>b)FfPUgN(=zTZxT=WtsJx>9>ygK6Clc_c>h@5Uz20p$5Maq0Xg)b%B!V9BENxZR0il04w$yGrG;XeXWbrwdYX{x?WE zBDNO;Ah+ym7%dqj0fF45 zcaaW5%4JTa?Dz`cX;5b&rLTpKKuTUy4@`oV|0 zHKe4;xsdu0WyG11`z%sey#Bt$>8jCIPzTi~mxR|+F1%9NwWn0(U)rihnfPs1T0gAq zuU}A?IR!+x5k}=&l!d#j+DFUB_`vQme^USStOq!^NT_@P%Hzuh`ECLIPzUJWr`~|Z z$tArL9XvbGMu(4{L|+TE^2l?X6aoPQzzYIXJm`tcnlIq@7w|cqzXPAU17in+eaqCCsY+bHw1Qe0kkBKD32vAqJZ1IR;|CJzlvIVFu4=TBiX9+CR? z*uOH5U$e+$?pevsK>36NE?xUgp|Y|J>qws$Na7=$Ej^4 z%6#3aOiw+gN^3^XnHB9KJjcU#q+8p(v5gfSY!}L0fi$55E-mjxJ74Fd$H&S8;`RRp zc&?kf3GD=5os>(eio1m00Rr(hJ!1gCJErnVfdIGrKP@u#HoQO%!`;%y5V<1zg`PG% z>i<48@awJDFaUne4ecwKu=>}-06N4dA@oapT_by>N#B=Cf$lUz5;Kf5AaI5{DD6Lv3t!sx$n$8-)yQ+^;(s@L9qJZhP&}mp z&J^(ZaijWLpUJ`*X~==UR~ za8VUHn~0Pi@h_ydW92%f^G_Rhp@J_V)nv~sbA9Fa$(|Enc?^K3oR?+-e--HPdY*Pe zJzYAzi8Qj1nR9wR6CiybA3C!;&@f%7&tX(lPY5D>zEscg`<2R^DchKjJ#;Dlj%Lem zrF`4pQDptpmcJ8pY0{iw=b@gqcTTDPYLtohXuvlhPv*LV&o<;qB+%{1k4kxRQ0_vW zSZOLg_m}D^KJ_s2u>M+;iS0pwj4_HQy;K64iTta`QwOu~d8?G4jr=>vlMQ|hKK!=h zSmf#Hf}_sO%J8Z7J6I=_ZNMe2SrM5LDQ-p#WG#8R%4rN*y{wxO`m#7=j#`Dy^ z1!eKno(fo+2t7MQI>c}HiWMmP0OlS>J7Bc!s(=**+wO`^pA%r)cr8kG4gb5GR;~-~ z2-9zDazGBi1sjLs=?K8n^2bPtH#z*jFnAT^2a%Hb#Opbo7Sz)g($gn`y}{+oV2q6C zsqy-Ta(Q&AjW54~GG9*4gnYRjv~k_UnUdQdGljO4NwNN1pv^6HLY;H2<$HRffXKO+ zOW+k~1nJ}FIRdv5K~neBT5KiPJ5#Ckj_tvFKLo4Ksef}d2n=1H`V zj@W(F&i8ZX9`Ru%>(au+h+D}c}yFG*Uw|qA48MO12p!QX1`@Phj4cMR1-scBc z8NLt%a}Ua}-SJx$$)$nuCvN1D)?sHoD-ApDQLraB5yJcx;);->DfEz1{FOlK0fANufv^qWiFr%3m$v&`%yDQW zxlKopq^IH}>qbK15w7n*SAOAZ^GS>XL>`W*+J%2=%uizX+dRs3-l;;kO|_ z4xiURc#KegEAkpX*PxzK4*wYPv?c3NKe}3Icoun*R#}k{GoO=2x7jS+8`Dc=`pp|U zTTM8V!;mUSX%TM1hiG?0na0BFX^d3AYi&At{;iEoD3krd7coMf`(4{WgJPL@Qu(?Q z73t-7A|sxCv3!6bBYON17mHt1M*JBh<+P8?hzc1pO(>TRZss+>(?Osn9efV(1S)B%_@U(d`!&=N z|5ny-F4eCCpPz~RrTCDbe;H+R$@U;6o?H&1g#R(hbm&XX8lur}abn3zSD99lJ4wn~Id|^$*TTt&Jm4rh_uD zRKF3aREi~JwxYn#hA40WpPBa8_B?WDi2$`#!p;$3e-Ahs&@QA&4`%`C#nYqKwCc@fOPy1U6_`K;&{>y@4GBL+3z4F7JCmVEqW#VNWfFa+tE%u`V3N< z&?z8FDerFp`W;1X_Dp1elbMHQH|D-qDA7yo6t}V^wIdxjSer5LB3ijlgbg> zX>Js&EJhjEj_eD zUoi(?NGSc;{(bmys~-ELg;k+$o0=8rb`a^lVY@>b+90af=6#Y`rN#6M0@7StCYzb@+AMDO2M5X8hOCSnnaNMY9z+zN17$ zUC~CK+cxxMauR#wAJUY(skosNVrr^lI#%SfBVU)sR2h+`S(tc$vDrc3jy71Y*YS79 zXTB~;RcP`xL)Bu>Q++qG$Bbn?-Tn7L>pW9p8=dv4Npa zOsb2T>$#B{nz0weo~G-QzLsU{-<1Y@_i_0s_VAn1oPvfu@PpXICV6ojO`b{ZgV@jh zE#-?CwClyL>&8K#1bV2rK3nmYR9)pcy5cz+mM@4D-E`EcDc0ZKl6n;s-M2l(^PMo# zlvsB(_V_{RC|12+D&(=>v8`#Iq3NpT=sKIdUs_xMuQ?_v6jSwd-wX`4WxsS%!NI8A zIP|R`(n2#bO_n<#HB@Oz2m#s*dHWhHZtGh9z@Sd!A@ju@X3@=gh8W)3fpl z_T;~$u2sIKxTd3ffoZxXw&R#|8;8b?QB>o5b>7;57EDu3T~Q4^@*@0Jxb7Z1E!pj1 z%?-_7odD-~Rv6+y2Dae_X6(+Ho^nO&+ft$6o3>#p*mP41gUHm5V_V;rj4E5Vb&S|| zOy4)nAedXid2p6omG?s>4m3Md9M4kycpe-1Z^^I1o&^dR+fg+Ozf&H}pWnu^g9;Xe zSbz=!JA%N8jRkDoyAs}z_ist+ZF*kln~rTkDutRBEL<>cIor|)Ct+Ye$Q;LT9UNNU z(oD_smH2q0ZTMa2{Hjri^~ElSh5~`6Ei#k#qZ*@g@Vn8(HF~5wo)d+xZX1xECs-+g z1Mf&Z3MN)AP|ZNGAT}J^Sj?n%rDcT}zq_tDnt={I3k-20jdx5HBw84Iju9#$crkRA zI0>nvTh`JKSvPK=ZSf3Ci#%J40sty*bP{{{U1>p;X+XwUy6$O_V`#R%bbTt@RveNR z6e10hM{^AbO5f95^<=i=kkph14}!TOMe%VAO>-HOyURnX%t((z+w;}PK?k9^d=BgN zu{4|!16TQhuLY*%xR&8)v1P1ip~imfk^e}Gt3o@r!#Ije$Hb<_!Ix&Fm_tU(Qo%J8 zU5hkuH;$318Y|gN?@L1phGOANK`=yGA`4DoXN-`C76J?`RBJaB!fmdQY+n7DSF7 znx1c~Iz*6rMhfj(B#6LZkd2WVyEW{I_a(OgouQg8Bp+7AFrwg0*7IX1MCAhsY-g!f zph58C)M9m2kFEMZG7G8|g`R>lXhBPXEq!*&2hx-RgijQyilXab;3`27u(zmMQ+;r) z1=$`dss*XQ+z&wn$5&Ns-H5@}is8BuYyD7is^UOZ!OBYHN3rdCQM{P#?9?&Wf?VgPYrYaVo`s(4ttbys9rYgc&)blw?-NO8fl zp5_=(OtEdPXMd@ZS5=wN^3b}b6M$soM2$jc1xp7n;FqjJ#fGh-TTSTzA%DPRu?hj| zS+?Oc3piCVPz>l}7s41K%xalOV;IJ+#}o=~2!(3UfrAbY18)O+C?^{Q9f~sueOt3! z2natoCq0Ic3P#`?(Dypt(qNh!n`om)vI(8!8C8%a*g^-|Sp^T6&bjN;#;u*?X?e|6 zbk}wrOZOvmW3V?n$*T*t=7*@jL61EpQqDg=#kj1qJg*m62~s{LbH_C7knQa(hgA^V zrVTy|_1Hou;g>H+G0yKI!;I5F&M{pmz7RU!zpy23{7)BoRu#?DBva4VHb3jjeMx%I2qs(%XA?_ z9k#2hY!+NKuwkB7in^l)xk_H8oH~; zI1R9y1KlyhuVqUXZtFZb&weE1#F06RjezQoAlAT>FsMw{qq{u37{vx1Q9t%JC%-)dXxxHfOcStB`#4v<4#b(R$SA|!LM{rnc}ycTa#q4B5)>LT{lCxHIAlV&GyUk^;N2^7)}&9dTe{K?Xc_* z*+E$z#U4IVZYjcSfXNCzQgoZ_(`)eBqRR)$M<;r)ps04B#$=1Dk)>Plwd}Hi^0=Y` zLopbfp>G(V_Wyb1H5iJCPHGk2)deSVlSW!b<^;-WY?txzMq$mDf$YmVVp%+ zmZoBa&em*w+B&cx&n&{awcublu$?pqQ~q9dEwv6|-$+^=sD>EI6#ky?TG1`p4Jq#X z1$llEybtT%(pAWhAPVhmcvp9_QtPYaehXv8fvpxoe?yoVhIVV#ptod9nbK6ZhK$o` zYwFk4RiCzO)r=`qXxF_pYq8boE&B&qE2RY~Cg&l2JZLS~hkfG4 z$`9GEi}KV0nBP%gBWOA#5L~4nv8vwkoC5euA?}0ups1=I|Cmi3Ee|R9(0e-A&w*Q{b!9>h|W+!ue2s zk+oB#)S~sFc(C0T7SvZw<3ZMwWPo7=@Y3PsdSH7Pn!n7>x*FS^b_8)nrmYJ1CW^zr z*u_2?B~O4Ff>MHi;$gSo$VU&c{~jn$EEw8N{4o1yjBFL)wp)RL1%&4r zcz*N<>vEJl4czB>TI>YSjaXVM{uNt#lzd{rFk%?M9=th6$3Zs!J5g~3s4j?d*tQNd zplXG`W)DG47O|HuoK!s-4M?3aV&(~AbI z$`D=%3~{_eDpVfD3b&bVMGalS*MrKo0^QJ}-?nRw@Zul{MZ`ehz}RZ^JF&G8D^_T_ z8bTdlde@F0OJ-1oI26`Gu3@ zQ`p>t(&%CU2SN*>x8MMnzGgj%SJNHYU9Rp^>HJJG3};W$-8dH_*7Fg2fQZ*&+&`5q z*3{68s%ny8Qw_b>C<>p>?u6ZWQ0mK;R?9Pct!rFUk08W`sHXYcbx{-hQMG(*L8n)3 zIWPlZNBan~J(C(8o*9v=<60Juhv{0+W*4^^&7%vj8#N&C!x7o12F~?E?`XTuy4P>o*yBPEOS4LD#b#-%ws=M~srI3pQ9Uij)YxE?jNPcqJ9|SV|8P!jEynHGn-F}UJDisuc%rRHNExiC0%-V+Mm6EZ5b>NU~H^> zGBgs7uo}8hzDnpt#)0f?wso-FpY<6B1uw!EuP>9Aq=cLHWkM1%o!!Toa)Q z7`6Xow~v$87Z9|91EIs@3quu$?q5t9FE`{ps8EFQUCdt<@|>|H9=lph%Cc^QG)WlbGkD^?S) zS)0Tj)6PH0QgpMLy+0i~CvkwGqv+LUJ}8kjtbNG-Fi{?c7XZEoYDa&Z?ca`CBVJwx zBfkk4n{v#YBv0scQSP2LxpqatLP#?-5#_X9u!vz^%mz)ChiCtb&6+G%XD?yiWVv7V zD{P1=4`&UEtQLG5fnRc;6c;{mWPO$0smQAefn|Z45KhwdK(PboYXS=R#)BCcS#bcX zQHd`tq1cg&;3}9BFI2-eew|R36?7kd3W8(cZUsl%zKozpu^axfI zv>c+q-Zyhg*-%v;%HGrvN`ebvXck;s*#0DKzm?MRJcKJl1QX#a!{-e)6RipCS{)9k zr$7gWm=unQp~hF{TBostI)t5loO~QR%8+{&O&CasMZl_tDT5%=RXM!PMw7?&$4mR_ zV2a|J0Ws5nlseSB<$Rl6Xvl6s!E7~nn&2xpfMNL^w#Aeu4!{f0n#pxTILf0akguyr z?BTntrzuZGL=!8%F zZxSC;pq6xu7!g7E-l2XYJJFVnDp!vX-Gps}TdOEgZ_3R~5%03)ssaVLRU767A|EQ^ ztv9pZ+w${p)NE6sNH^kTFi)*5rQQb9dmI~^YH7U)NK&u>-E` z7ZD>tSi^(;3L)>i!L2zbrIn~i!;9&v15pJ#hTjm~#%`J-Pp?9ZP=iSe4uL|0jrsjt z5|%4ghUK>B&S3iyb7T!i$yy%`H#1l_93ssIbE`kdwYSL~oG*B;u!`Xk!K(Zr+dEYr zTY$QXU0A;c&M*|4@*_5Inmh})5(rvB+jxP47`AWzn4LXMo>qio13MGS3*K0)srFAW z1nxafuELE6ydnpSqZ17IUes_SU_wSfc_6aj_;=?{WP4{qG5IrLYQV4$V;Awb5Kbdvu|H$i z&6M>5Jaxnu90V}I12D?(VK2@kp{d4j?_k{`yo(DPI4IS#WV@hSp$~5j!W`R-D8s$1 zc9uK_GTGN~ec-_n(qagLpR=vApvu)SHV}(9Ao^8U?Am>7?=0D`LJS%Hp{GHWIf#*& z_veyGU=i^UI9CA-DGka`(;mnnNKV1jn`g^fQ9&>SE^_3P5P+%wi`)#F-H4;{3QoLC zk3{)X zV|u%C=ad(CHv4Ff+@m*K7Q{9YzYHUjqB0M)hZ$nXJ#Z0}^n%#8hS$yp*2CWniY?zLlM#w|g{Y`FJ8KxgwI9D$8 zHn42uV8W1sOpM&!xr=d`O7XhnPW+>JkZX6$#YRN9`BhCA!4abSu&*D@m9AitxL%)m z2rI%nig9KTp+*z}`uexI2ZB)qSu6LTJ!+ z=40&kd9bcLy7qt~!rdrbxiEN~`SaxwMXJDM0oXW3c-+*U$SLe11JU%`=Ob)~s|6Ec z8p0OK?-@_#CX%QxvX|z|J*r@^V_|$J!tsVPVeUzpu|Sn7F5#h(ba1rt6q~pJ?ln#c zgdw~qNEUK$o(30QKRk6F3RSRfVAWzjp%GvvJ_Ess#-kJ8p$MN_fuN0a%o&%<;j?J< z90Y{lTPRl*5qHpVxrcy6jF^a{{yw*a;vD^^rKUVyn>u9*tgQ%_4s$3up`{sCd{R?W z-$J+k8ln~o?y%vd z#053oe!xc3A*l@Gx!hc8oireB#Fs8W9H9n}Vl|Lrh@nTyAK6WdYr1436U8XwYVeF!3I%eKhJ)$5S!>iVfnbj zgdJs@_=>{|oN27%<-tXSs9~Nec$aek8z78c#0Y79*vLf)F=@C#f`Y{r25dI?b}z9v z7QrM!vJorS}MZ! zq2g<~LK(E=Oz+DLPq#U77SDn2L2C|$F3X!Q~$M-V!Z delta 155376 zcmeEv2b@&Z+4ntV+D_e_Ewla3EM*s1c4-UJ@8VKbz>25{u`d=tG@2;0Dk3(-pdL$9 zY{4XA!#JpD7ST6GNkmOzi5gLpXzVq-HopIJ&Yjs=SP(Vu_xpao?+sb++;+}$p8h=N zIp;o`8T92Z2CcllOe|TFw&rsBk0-qZ|Fh_ub6JzxZ3L4i%NFP8Ic@2xDHp zYPG0X^^mAK-s|;p{FUMl|C5aKGLKh!x%7Gy<+#Q1fBc8z0xp^V;e{|gOlP>mDhe25 zVGn+Kyk3U?b6#0li3eneRaWA$%F41;Mge`+Mmt*{kg7PlCS zqcO%T{4bG6tm>521utygWChcf^TOs;|C9%nyu)G>PFZx!k@HSleEcbkPFQ@xF{fJZ zuA1p7VehFyLqlcU`gB!?r`bMnvGA!jT(`>db-G zjd!ql>-c?q1N$}q7kh|p;bR_T53uL>GknIRzpy{ETbW|F@|$`3$FmOp4Zojf_xbu&!Ws_jOG#{V+XEVolT1w#1X)R32 zMQyfl(vxi2w&+xcO$u8!cS7w+k78G`8s=H`%-VR`YfFbMP6cc~{spE~rUH&NIgG1q zVP^a4xn)Z`5UWV}!#v~*>MKcqhzD`8GUaazdxEyt4z%DopY5lE2k#_h(DqQn?R3R& z%XWa&kzO>?vH%faOG;ZL8Ge@nUVl>1Gl16bLOW?y=W}4lwYs{_5K+J;Z=7%Ua~iHwp$CSKg+4WA^1DN*^=(KYV}=^ z5;JVJCM5}`wv=a~En3t2+a4EPtC}AxpJ8xoP~k<#DGwpigRuc=o+&^TelJcH*a7@2 z0I&rHfgVDjpCI+v1wdfHAkeSw`2&y7^w|XlH5zr)Zc<~C+NB$4x*Z72;%p5ejNoO! z6`O%OS%8@Vm@rmZ)CC%#ngWb@R&A_~55VFKVpSl&*XH@xeU)=B1BXEqn%EW-WXl96BFbwQ=k6bw7LJE>Dj) z7rt=hs&#*SvZs4$W;N@x?*6B5l0Dr;vlp)Wsd|~mf-#X`&#vX63+ql(X zJvFxqP_A42#*cfvX~69D_g)1(y{hl7s{P8VqKqy4VNV>aI;vQ5cWr$86T64wqTMzA zJzw2ro8SFLA0YDEhxqMJ?0zJB*2}lI@k5{3C4LCNANNEl$V8ReQpE~ZJ^j__o*u|@ zz0u9C5HJ7#i;|-< zd)2W^e7j@`pE(^OtCk z{Zq|sWPPJ=aVzL-+px)U@GrI?b3r3($eQ(LW7Y>~v#vHZu@~L$yWPm#)y%>yzW)7< z@C0IbmbdT_4jqrErw6e<-j$DRvSNp;1%uc=J3sW=!{(t60T&)xHkgg%9UrJi2eSd} z@XQB;*wS5;T?7eo2Jfrhn2*qIabn# zKlranxM0a(D5^TYW)mx>+Pu-~WGQ&GrR0-N442`+Cxxe~8G`pK^0ivS1+YVhPDXF5 z?H*pI?h-r^)b5#dYWEF~RuK;$z+`X#-$Lh1aB_ zj{kJD9B#FjuSo_So{Z7hLIFJ{^}#zV80|iq$$B(^Z~9lP44&{aem=0U0FGt5+ZzpH zNVh>e9ORQ!)7Q)|3PMA5!^0z-%g(vaxwv2eK#(_=EgRCHYcnPPMd{r7K$ll3t z&EK9XP+Mzx{m^c`iG9OptRBxK;banWpI})e+aQq5&=CC0uNrtNt>4r*aiaP?=Ly!{ zAgpA>U?f?H4m%mbh#1(C8ch|oq5Z*GK`aEI*Bb?O73!DYdxJM=q!XE zgvU7D#<3VjKaM46oj=Bsv4~x`Cg}l&qxkcO26fS@Z%RArpq1b85IGGmIdWQfZ;c+0 z)wiOu+EQCWe26;xBNmC2(!eyhj%^pHM5Qo>ZmsrwA z$G@;-5gngp$tWHFs4>^T{)=I7IDeE8z>U^MmMk-HBm;J-3Vh6xptn=U;}t1cX@@k; zO<&ZJCP6|y6XJub%CmUaq^#H(&{36kxqiRWP$Li4Qi1`ng7zBLDmntzI2{3Nwc1+7 z%Nn5y2t~j-HJ_{iCJd+K`ld^ur6cW1HS-fzQmuQW{+I)<$%0$~Qg}jbnlBsL@)6(W zBEGt&)^^#Fx{`RIK-GkJ+WoQ($6YrVWg1-@VrHbKq% zoYk^`I_GnC{jBhCu^Qq={Cz7MF8nrBN|h5k9UNRmngy^7VJS0|8Z(lLq#j5qF;_h+ zB3^7@1tft@%n#K{KnFE7)P_%4Am)f^;Z{uvX~m06tSbw7|J^E6z&3Lm8!ZZKtwcuw z{Br`l7>BLf*#7ei+Mw)UKfoFB_F<$yadsWksuV!z8@26?xKRMetcw{bg+}Y=#A>|W zx*_Jo?(_^$rM1huGdo5#5%N;HCpFF%G3@2%??tdKWDvIt4e*r<`CMxV5O{7 zUHt{5sZKrk1?wHD8Eugu`w1Wj+IwHHvUJ^Wt5)Mx%o+~f<8}aQYPc1*Q>0^-Ep6RS z|EoPOmBJa+H=RY#TM9Jd!g4#bwsku@uhqY7DN-H(|Gou%eR!1)m225X%WeHueS$PSV@2#q2Yl5;soozR6? zXlxK#CyXqZhCd5?Bxl!+JqkL(WK6Bx&U!-#=DfpFEh7x{$trpsEs;m#r)KoncYZ&V zj0Hn`eXHmxPk{F;EwKH>tmN!Ct088v+yNtt{n7u1Z4d_|i&4npFg&!1X+eyrpEBNi zA2L!TUZfaE{2-rN%<5b*gMrXumY^{}%*vt9ck3`T?dUL|Pp!6*awLTgVt4m4=EQjY zIP;Qr%sgZ-vMwpD=nk33zz1R>82hS_Kyx z7cUH*4mPn#9rp^={HNvn7|1sTbFO@obL|>h0`o?utt_cp!k(sPo|Pq^mDB*x)J^=s zZ(96;Wi9@tYTp8$AdOPXOVwEgyr|2~*D}{^7ultTj+i_M=wA}@WzYvmv?Rhn(Zm8t zV$eupWGuwcC{R$ife!$Pz*7>`%Tl#ARGrUpuJfe+?BUJ%j91mgc!uqu%Cu%ow1erE z1^F@=2=xkn+du{yP~Dgfv6?5;+wDFtV2QSc8wuRUwB{sc&^N;f@7(vx+QNOa7T*MZ zq-yDfh$GNw9X0v_Yj0IAg!tYVNY4A4-j9&~p9m;4^o*jJeeye)(eNMZ03!*88mNcy zYDI)c(giUK(~FafQIT-Wt0b- zOJf%NB&oXvFJN{D|C!cqq7r!L=-z}ijszv@gQ})CKcEhVp+QV0fhXzTVrk*lejvo3 zSQO&_WRzDQZ`c)zC{GC(CrvAX5#*!Q^SzBOXf?XPF}h$3bOEeI5%IVUGeov&kTsg( zRj9BKCTqIPY=N2{;}rex!+EXGps+w)8sh`@A&csEAH#$c=CR;a5X#}AkeiZ2xsFIY z6o+HXF1RU4!8kx|{xh_pJq({66bx*N1wJCF|7ILO!4( zWt?mBLn_5Q3FJF{h6OZabG7R%W+lm4!fb0{E*#*tY(ahpL6(H0U!uy&xZN0Z zyoe-HuF_AHW>WxLpqvuf6B-Qs_;S_$5fIr!Mn|Wfj&jos(4&a_|1*}tb^&rhDOZIF zUe*HyWi2KnmC(LruKzttC#Ad6NuXty+TJmL#q0zWI7J*lM#4^zvMYxchYnAbx2JSA ztGtam*IK-M$K+HZ%OH8lDd@L5r4XqZ(=;@e~;lad(9Z^DlPt!tl$7LR088k7jh zf{S2yq%{%%7mQ+vbV-W`mS41r+9RFgw1hTgX8nUEIoQg429r2_pDX>nU z8>8SOtsNa-QQpN>{D`u&P$r=MbpSLiNg`-Xf>Os}f{6*nnUG)+I~Et*1hX$zDW&J!w7&HL?zv1y_pyMxi5i}0l_ zT!}_pXB%cw>)&8|1CUK9CJ{!QQ>u>qm{t8KC)y<8oy>4F(g22scI128E(e>U^h9%M zz_Ia*yeF#MfmR^q3Xu0i0Ib&iAd&U2Y9#m)dLqMDZ_)s&sfPFMuNAQg8FjjYD9l#t z(2+t-N=s8VthPN>qRy$|iKenFYvO7UJ~Mi4(RwpF(t@hB6QdZy1-o##1pv_V6E(ah zof}M^wuM;VfkOg~PmJNGX_rOhHf!AJkV+d9;ERk&lhxZUajjdH zQHV!L_~B+!BCUiHD#fnf0G2?0EY;gCgH_6B8+ay^h}4O*IB|cY)r;hV5@!&CdMgO_ zgpW{WrzocHZFq=gYO*s?(NH4aKZC3|p`9j9#u!s)CWT0+KvQU)LL7g(Snr>5g+47N%0bOh0XiI0PiXiqaktN4*fOoVg$38RpCz7 z&-wP*6}%lo;aEpU#~BMTr(sN9Pm?XeZ(=pShrBBIu6Y)JhZvEZ9WVi~L5YhjbYdmT zf|qk~_6WX9*d77M6HARh0>x@vZV!sx;PXd!4XJ@Ln>ivJio0`AuFpDRdj#bjdkE#N z0J1-!Wpxfpwj-Z`%~mtOrswAd*75qC*o+h-wcxTDJq-cYQfwP_u@jr!UIzi*lLa-K%?kT#3o5WWTJ-&eY+-ESOnRKQJ&eSv(K0mKA;cpQ`WP! zil~)+F!R@wRf+(mNYEx!6X$)VA_7kNY@b%ZKDayho09TXYIbk~abK7$1j!=dE>AOQ zf6HiN1~os{=GF7?sGd5Gi{w((~sAWBIjwO zRS)*WWyC2Bb}daTg)y~69NIU>p}DChKSgfIJ~rkP`}4tR45^8nv_@;Bo1?4MEXeG> z+UF{#mLPcv9BED+2EM_XfQF4Ya_1?ly&lFBeBEdrNPc0xmFI8qVZ2%UlSto@DdqLx zslFt`V0R$GrxUUvUrvxyI*L@m0epOzqB2;AfSv|ZGY9Z80=IiCN#HM_z8AURqyHZp zfA3UG{89jhaMkdkNykI&U@`@>EkTqu+tFA#Rm9fYeU{oal+CTR`!2P6FU4Fk3I=k* z7Ys=>!_&5Zl=TXEf$$1nq+?Nw^=CRpTdZg37;LfrKu7rXkJGWF#o9>6G9A=V0BAix z=T$A%Z|E3rvF@Q`b&Iu@j^OCq=vdHV-9*RONDB(v!%kh@LQ0c0N8lR5|A#5yrM;rM{o4`AT=I7{k zyLK$2i<@wG!}(457b{io5qw?UBlm8!oFTDh%s21qr@FC~mxsFU-cY3Mz4$TI*iFl1T)p-I z52_WT;kh;r;{mm4FO24qd)4;6_$+nANPZV9RN+xrezD{8G4<6bzNp*f44Ua+k-t4T zemJlQ)!tye@T965%WsR^z0S#9`{g?I^jQA%bQ`M*Fi{g5ghMPQokG;SW3D-bH)HLN z)o8tNl|w{@!NO^SwdJa=HlE1-E_4Q=rXR0`)#ma1A{J41|DCt6s9NFhGrK`YgN&(x z@AKvn@lYWt9v^&n6vH@dVOuyBDhfJ79Tuzl7FsGvy83|-LHm>W{AJS$BQ3-#N;!_XUJwZXMxq>1TF9|@`6*!tcT!A?<&xo|+ zcj|#AhNT8Jl3V(^ACK7Ww#R*l+O)m7lUTd$b5CT9G7)H0y16cMU=EC0j6rbx5IJ3Z zL81dIrvYR7t(ew94>4oUj7 zjn5+W(-KOBb zXDyk&)A-xXI4?YlpY6r*vUBV{YVc(6g)gI}!AqiQL79Qd^n5@8+9W zj%ljy<)`OP*4&F{K2tB>%dcj`GpDWNEB%Qsp~{!O+gGUS4Os7#9n{7Rma@nGc@e*9dl?x^OdJgOLsT1OF3a2WGra^P}~6 zHl6`gr?>EC!q`1qcr|-cJ&gnZaD{q*3m?qJWs=YEgC!7o#-DjD!G6u3`JMFil)vx? zP@E&4*IFqv?|D9(=f<|>MPA89s&`-H_s})moSu3ACH|bK>Jc}wYAsxuS6<~(H=;Gr z=dbazsi)Jn@>i%8XiZ05`8pp!7ooip>aVZ!zq)t&lPZm=Pu}1oa<|*w?VEmzV>>P>5KZdyOt(rgP zd*Q78V?KgS&D`=aqz#q6FMYy~j1RG0jUY%PtY*$~1$-&jwGF(hyD z#?}07{7AaEc^h9032^?KU#vOouCMq|#lPae#*-PGco}O`_kYbN^Z<#f`G!|u$a{Um zU(0nla6A81{z>JPesOmXFJJkJc!Qn`3el`SW@22)?^P!iIF=-RAr^FMlF-Sq>1rYu zo80H-gD-z9L=(YHR+^5Q{r)P%z^obNt{E+p;^*{UR+MYhKcpCwf29mXDWZTcy-FSC z5w+E>_0);NF6*hAd*UjkJmP2FU%u-b;Zd`_VruuxTfC;tm%XBVkNl0VjxR{4W}hhG zE1y@}$N8%G<{Q*qKl7IGjS94DYm-wBIm29;J76^j^{;j)-GnWN6|n<8-@4(G;2 z8xBvzMGX%BjO&Z@i^ZG#j!kN2iKyc1Z&s(2h{-g72k5-xc0GV-$6Fg=*Qrx~d#iW2 z+OJYn75?cdy6DG6q;Nx+(NbIAFX-i#+QXxzcmN))v-)8*uSzrwyIYsqTfr)L-1R)+ zJb@*A4&{uh+M(*}d8iPpBnxrV#tHg@-jDrDiAvE@vIVcwXgNgJK*D3Mt1nALHDB?P zswfpz%%g^vifr#TT1D?wIH32FOGQIG+xw;%FGM{*d=XpSUMeO`Ci_n;3NVsb1lm!tx<8%bs0iF|FG?!IkR7eG0=9P|dLaN(DD1N-8RU#xXh-y85j69m zZW+_?SgVY2(? z53PlZ?C>HCrK969Ya$v(q?|*EhBcgae%y{Kl$vQ+F#IV73RFcSwO&gIkLclloUU7NTbD4R(mq0A;g)LLY9n{(8lcO6vWvv=WaedEHTXG=OLy_M({Q~4+LCJ8Z@T{ z&@vhXo`6a8jA#h&hr$%T+lABcXbcY&;cmJ}H-aJ13gzt8>_rPN;O*@KeBory2hi}r zO@Gw5fe`+`l`3))i=D)2sY3F504cyg2lIhiS{rS!6LUVf;8D`VG3Xou$8 zf%c?cH9rX;XsKh1j&u0wj_=g9n8xhr*kUbB#vPF)4uD|7ihm4>Bg;go52#_}ilCt> z6$JgS%i>UujJ4I-novMYWJJE#zvUw2(LG##_gEjqnP^jNSLa8-f5F7zJ2$!-9$*0mD4cI<_?!{hZXpL*v z#$m`3B0UV}fl^@f%a313B-k+CF`UNQV}HZ*AV2}NPym@DhXJ{Opmq_c&H37NrzkUB z&wG&*L7as%C#6fQF*Aq(o5VdiRJKQLuM`#hv8PmJl^C*1f2AnvF=YLf=Pp%0uM)L^ zEx)3z2dv=T>h5WQ1#0DF;jp9BPpZX<>fL5hsovWs5LJhc5Rsq&Xd#`0_Nb;oBEgPU z1NRL~XUC`|`vyK_$Es8I3*4rPhKPhha1vE}4H1QEt}P0KusHOxA1|x3Y`AU5W$v6F z@Un1!3|TkIt=Ny$#udcWMqFSempY=hOMnH{Ff)b<#AiW4#Mzt`fSf_Es z@oMg9QKF(VL^ZS2#sdOp_0GPBaqRLnJO8x|n<+LkHGL#tSlJhtCK&vbJtFd`n+^_) z%Deg5NKsfs$tImzO6DFLQ!j3ZY6YG!%nC@0R9g-ST=|`b5jsc@P`^@T_-78zN&ujr%GoSPmlNiz%rwkCNuo)nV%x_8{ z=}V6d5M_M%z3P<#VivBoG>XwUoZ2X!XTMO>28#1>cxIqjSh>8z?V6g^S;6d&C)E*6 zi1BV%8t^LBBt8MxU)(GL!}J5Jp>MEtV6mDA!c;b^iF z?*gevl!=&HFjO>#2NK^96*%$puZD_zent`yo4A1KJhUH75Bw~;^K-#4QQ5`Mc$N5> z-Y0&}zMtji0>jUErXdf86R=Z|_&F&oFaX{qe$Iqi#C4vDnCs9Ni1PTA^ulh@oP#yW zg4EfbkrwGVSjHF*m?;S1fV?PeB7@wZJsgTnI3acCFi~1jMPgX5F#$s=!1y?CCM;wc zM~mL2s1`1u;zJz15M{q7dqmI-c%uM6j@5b6{R(WBv_i>NeSBu zm4vl;4!Tdaio?`P<3#-^(PUvt2CF;ula!2wmN3eY@(NImWRC>l8``6ZRS^NSYV)YS zwTf%|piVVcKuH{uO&e=vqcsMWNm$5Gi?Y5luQQWM)}0x(O*6i_Gmm;@0t8p8FDHnV z8cIn}s=#XC2bn~kj*>m%YlIkX9P@MZksPDo~J*NK6j!p13Xug9C6U`igXW-4CD+4Z5 z9g{>Q7AgIFlISJ)NK0*)BnA`db;h0L-qRv->nfwZ{?|G~qyDdT{(r#CNH$;HeS|0(aM4ZUb*&<#k8+*o-lV4w$qA;@FIKy!`2F!}_0bVx4Lea?Ge_*h zwyA&25q;RUO!!Dq$8veYOP9gDnLAgcV9L=^lb}@pZ{`ZYV^g4Of~FBqG{B& zYsVXbOQ5SJ>+@^J)ATR-+tl;>*LDNsAK6pfdi7d$n+aQy&~7D&qgRsgtS}`$NOCBoFN!bXKUUW5r;;`DQiaSTTtDeCAik zcyG8+RH(a;6*F76af&_2kYa97I4G5wh*;D8iD^W-Pf0^8i`m5kYQk}%zF-@7!=cO7 zX~&5%!0)=_#2j{#Dmq@gQT?aux}jrp_7v!N>^fC+g7|f8{gWFB_F62=869*wSF1mq z02_Fs`o{^PJx88n+L7>mZMC|oUDUI+>dAI7lt^DkB*BlM%0(zJ+Rdh(pCkUjeh>}5IZw=E zz{1?~#p)abY58tmCd%18YU(mEF#pEEQ@e1SM>1fBM7-Ym^tx`k=G`n48(s5e_7pt* z@^z~50&yu=>7fh6T4p%4zq;Z=5vLAwBFIiw&tE9EK?`lUNW8*uyz>%qIXypqg(zmH zsDoCBqqDfp5@`22?(ZwayWb*i?_VY!B#rQ^m7;$)a7ZKgRPb`K`G+80H6QOU&h+^i zlt4ZoV}5GED)=A=sY_OgAvkod0u>HYFRc>$5;P50xX{pK{s~uzBg#qjAWcT92{R-} zmc#vmqZHew{&oda!#1_;3i!p_RQZ)+AP$qS6ncvKCpaD8(n`2Y?b3>39n#J&tq@UZ zS{?UG?*#!qozi4$pJ4KkU?R47r-F~vFb8Zji43nlSGb-XN^ zGB;l%juye?_qvfE!o7s--w=tDd1I2Mz?XtUTj_5StZU_97% zgE$B?PuJZbGQ9LzhOuhr6~__e#NyHG)GN=4aajBgBV^w!LXAB?MXwrX7C)ZQUafxl z(3{1r(OfiaeyHRMTO3iP;*MFv^9H>&{tmG`3*f7Fi2Jj@f3+6Bhh+fJupD5&zFRzoYbe^d zfkm?+nPYyKLC;tx9xFL%*Ikaik6P_MOpm(re&7USjpCN`ib$ys6y`p0b-tSWOA%J{ z?ngS{q*WgUdS#Bth=sy!A%g)-;lW&HV0nj1zl==4nSaHL9kX~$z5cLx5f8umoEWQW zHyH{C)cf}dZ=Jyl;g(1{G!I)NvcJ`xf6Bh+0(WAk_%F1#;rZ-!pgYhv+lXPQ9G`%< z48s|o9HuHB)o*WoRBU3;s@pb+-vQYtJ*E%fBU>HxxL6v^#$}HAVene{UwHK-7jO50 zJzl#F7&`Iy;-{G#e?T;d6i{PZ!C?<*+i4D8DkQ-^q$M5Hjcn5r>u__9seoiN-iJ{$(*V zm<`RGTUTYkKW8#89&WUx`rEByWM;&x;$s%gWjM?aLzEL=Bcf!6Y!wf(U@kLq->Yid z>u{4y1!4vjh&MriGXMI!IF{!&d=oSej7*Hv`LH_bEm1E~jCPT_>@6{bUvY~X`@X1G z@4h9DAX8!r4BmxQbi6Ib^V{9q`R2}s%QK#+Cdt#V+_+Lob zEK+a$OQ>8!m%SsJ2lQx@ovYo1K%Sk(Pxa0_C_&ib_Il*IBA9C{{Vwk0fm@)yepdwY zZ>Q9l_k^E!-k~PFXG{{H>>ms1fF9X_Y}pH{&E~r!8&2=*QnZWS7rNdnhk(rR58ygG8`l%`501B78k7(m=OEghyx|0ieH!y=N zgI7CL>YI;5fA5>ObXrc8dggu6N4@_RGRNcJ-f`%+d@K&Dj?uhUq&?tM=pt!Ao&TvA=Iyu@tw*T!Uh2(HMIqq?I2x#We*7_IAZRrSHag63z<>vS zBl^)(m|&k2yz4f!5sd|$M{ZNkeuFUV+S^D1>Q!``2xr^MOy4ek#Mn&4gmUt4zCa~4 zo0&m6>>B0@%w8^NC{U8}^Wf2WnCX`qbuqcj zkBA~wE+50;pXKsp93HEX6kohkA@?#4Ja)Xuci?fNMpeqAYBwW7-HA@8!PTm#1X+W+ z@l#Rh-I^nKuegIvTzU|=ftd+a@<9(fJ@ZXc!h&p5ANH1|)i2(v!^&)!@m%&4ZrxM2 zX6pLL{h35yD%3rFrLC^%D~s{woqgp9y6T~;)yh{dt8lefy*w9(HTCl0@*!X-fIZ7* zt=Oy}Uk1)@z`*kXR^W+%`b$4K#`_5kqf`z060AR|zbt1Ls(Jlo6HzV4zG`ECImCM* z@k3#br;1eb0J)FdGg)3BamK7aF#7WWvcbE7WVu-V?F(;TYT5s#_i#0%QLZF6_4P(M z8rr*dpxnzXDzD3&)hr(-l|FKa9M7`|%lg4C!n7a!)U8SllPjpvzAbVowby)+O!#!6 z;BA}K<`!91@)n>m8A*S8s}Du+!84H1y*wf+G8Mz+O^m9Z9v&g9_zMr^%C?TY*ISZ6 zN*|eK=ju&n-tYVem@k-?OQfpXOCCV;e;#%AUh<2~Pe;nltb~+~N!%9VS3Q|R?Dux~ zXnDM+z-En>I&v&1cT1}r%i?P0cv&xkVZZw0JpmNUPmqPUICqq+#Y(X2$H*47a)Mlz zIdrW2k>GFMq8@hS=&vP25_Q2;c{E$5-kmBBA2AQ=A)+H7S8}q6GM5oJ z1w>C7DdJA4(}KEh1YvVk$256uaGP%1_J@IibB>nf{F7VNIhV)=b;3R}N_>NY&}PhJ z{dymn;#+T3vH7^SZ6B#soNr&*BI9l0LzT0yyxdFCR@hR{?<-GqVINlNa~^tBLqCwp zrZB0rl!eY?YV&^b43<_Cr^`(dO5GFA4SF(VGvr~6?0uF(L3W0^XQsRZb0>6YMd3lQ zNpKv9p;LmR-nw*?8^)Vh@cd0(Il`|Wb$=H-L(R|+P?`PZgIOE5(UFZ5B0@vrUktSp z6T>BH`iZhZ0!@3Xtp~_5Y(Mzl2gsT-ie77+zZrUzqdJU*%R)exOfLhaCk4$kd8ivQ9N0Ap43$Xp!3cAbB4q0-VET z1%LG!wc%j7H1yNZnV5)ko)WZU(%<%#ebuRl$T2aarwqzt%nqt~M@a3l5utk>+66Cm zIGUuVRY05ABD(%3y|-&jy?li1?Oj2dF`;fc3?{E>jw~Qv88t@^96gjC?ZC<(+G^V>^_2G_4HEM z@wro_Of%>HO`Rl;eLx_+pYR!>(}T{x|4Uyi%wGI)=(HRoIp2>O;CEXzh!6R2tJq1P zVUFNH?K4ZB6Yb7VF|}~EtZUm3!!6Hp09NpQALbpd_C8epY=`#CsQuomV7BaK*l-Au zMFAZ6*c^E&Ozr+h$^m`J;G+i0_EE(mjwm_WKj>U#@L!6T zacO#Ze|6iDvR_>s{;p>+WrMU9m>8akjFA4R6V>7ULo?OKN6NF=K(%15+`lT0JT?}u zoQS=Romr@4g!4_?Ifuk}JFZ@x3$?OM9WoC(E3TH$lap}RGEa_Vb5!t0vTE2I+AYRQ z#e#F7t-|E6P%&TqiSVr}z=$j~4Bk8OWLtPB)ri!$C*$hyAIa%QXnC+gsJO%M!tnB) zC(Vc&vmA9o=(wQsJA;wqv%fT7KpKuiYgo8=tUfp|YYsKsc}(aiqe1xPn@GP7-hmK7 zwe@J(uf7h@U})rK{YLqa%nTF2qsAj+OSPnReNl6u4z_cqXWU33H+b%F!CGn-1`LZIb+!waX`WOrong z6gQ%{cx|f{`vUnszz4W{nOpgzT#!ttneSn7M4dYJczKoE>|oV=g7oa$A7#sEyFXsr zftF<`SZf7oQD+e=2h?SD;y~(A|7T_;P~<%DyH3(>FsQaSToj7y0aK`R!wIm>OAeF; zIxNo)vU0!0MggR-N{Gsrzz+Zv?pF%??x3!T_5(;(IR7-w)}h%#yBO3u7;$2;8B!`r zCsFFZQ0><)t4U{^)V`C>fT1}-CTBFd9pdp)GemOsz(TsKD#(zt-1Ig`526rj?XZt7 z(!u)%ollMOCOx5*_o3j`N9N1Yk^2!5>$#s0jxq-nJ<=oLLqfBNGG<#RutyHNwpVo_4vthh&K5x$f@v*uU>#nxT0jcN}3@NwP!&hYR*d4*wF*mo|UX6sBL^b3zj5C#hB0_ zsMJIeP0+dM301sMj*PU~MOc2Q`Dt=!qB?w`oE0!r5m=n5UR@|@>ftX7kWIbi{IPM{kJS-&oK!7sbWv^{* zUgEMa_EvQLyBe)@!N!*M@sil4-%jd!T$rjP{^CIlct(3ty>goDh|*4nx2FkfDd@VG zI`MQ_JFxITz=Pc?TqP8n3671}u>(=g!|7Gp1rCFO!h$V~sRvG%EdvW@<9z3LW_P`# z?UKiRr~1co`#>tG1%(F@&9Ji)9m;I@rZh`67-xj{db^Mg{m{?UGvp=^AabUB9*2LN zDX+(2=}+K$#ndlRGRL?yF-`Ar&#=|v@Ai&rZlZnHe=HAP&a$FJ{wGF zJ%{Ys9cekJ4|pH3mji!(-_SI7Ms|Q*m7m?gi4q;M|HPg%7LRD~)aOW+X?)H!K))_{UMi&m#YinEn< z`dnAmK_g`EQ{|l+aIWl|9!5d}v!=x)KuQc69x~TuqS<_~Gwc!EJY?&&T`I8SNiOI$ zs50oPd|sJ8Xs`w6Wpi6O2mk^M-(z zvv9lPFy3y~MT=b`2M$87F-{{QeGwvd#aBcM;r=09N}}W$Fmm`hB{>77Zahj>`J8KS zgMBYi3y+h7T@S0>-jDhl0rTYC@n58@u+oxJ^5p!WJ?tPy4x$N@%9MSgERFclvlf`# z8rXfZS+!lHA^&xOT*N{qc7c9_eOAX`D368xd-_5-sUjXmT_Nv@%P9ZW5YY)hL_s8h z5bEPDl5<0v7YrxF)pHlYT*vRfSQaqKx`Zx~)6n*;OJrX+L35P%Pw=`?D1`JyZxy{% z>J&Z9=HOBOY{WMorhyh&-~uKmrqIH)i?pjw7%}=lhYnrRr4t!h!em?atG`|5aM|P3zAGa@;OU6{iqw#mNbnV@ zqgKjRe^I4f0)1Je)~*D$+>k2K6^|#uXW4&v%D!A)i7hSezZ~kjP5t$9sL~;DP~qJb z5*wqMQ=7op-fHU4~$GDqgWGQ zhc`mj|7?2tY#m9gJv%m0{rpO~wi)ZS$tdi=1Ws0ClQ*Cr2vW2QIaF+^jQ8GyTpM)A zUQ6YXd3mZz_54z45BSX{x4@3lc1_m0O>TjmN!$H8FKu_rCRKO7JhKYUEG1!qV52?A z-*SEZ0=52pS%*EG1|1+P`q|hzOzRLG9$>c#9h_3i5gWwd41O}Ux5k%Jp?jA}e4s`T z4T(9o@SXfwD&K~RfCBTY8?KVSMUH)rk|P-FQ0i(q`@4Z(eT}@adbh|@FJ2>WDbUJ* zYU&rLW!K8d*-nJ^pmR9NruSVO3CijMM_*hkFCqTWYu>NBPR>P+KlAl<@*cr{rS7^> z_GLrWO{e;bGw<9eXEJuN8gr98t;B3lay3E)+Mxs$Hy(T^RCU}er>UZw<)J;_&*1(Q zp`P#2yUps*yW~;q!OX*VLB9?@Z>!#{g%h36+3Jk4P|XZAj+_fEph75)Deh(F87vrX zvX*XDfqUfU@U8GLk*TFEY+m@idi@^xI971qey@DkU$EuDP4Fg>zgUntD6!1lx;Ik z*LR>SoXl_x57zSy@S$Lq>-l>1&p*h&tBR-PGpcNh9GXVxz+#;YiqT8=dy(f`&uv;` zP=xwKtPCco^r8yau)D!aAasWgR&@iv2MF$4zy_L0K~Bu8SYD*lIjI1`R=BF!#)6^W z;(hGXyo(0(j#pHaxT^+OXu}T#-~kp)>kfc|okx(}a%-0WctZDoD*!~dT@An!TF264 z`FDo_<4pC8LQm-K9s!_D+Oj0rJpgOdKd^yc?e2ZJLweJ)U1A^@O0U^n1O9Joz#F=C z7w=m}cu0_df4L}y42mXsZU z)TEda-k&H$AJm3oNkYRZ_9rczY+=>ItV> zy2|%9$egeXWS-I;nWyBCc?%*Ed}^k?B|>~7civgoX+-JUkV|W)C zv^?)ZS4*PzEbr0>G~tsF83^0NyTL5)VlP_KTNMBYY6~+$HcOM<3Qq}->rrn7X|Hit zZ-Ftp^p@t`6T9>7i7xL3LpSb@ce`s}coW(rsh1&t(^A7_5wNWn}+_&Q@_~0G9UL~ZD5e>$@f=qLUA#}?z%W#0Au?%=xfaUb=jhtsEW;wPyvm6UZ{gmQ! zeFpNScLK7DtKm^+xtf3!qL<4H-PQ5XtU3lq55b2{hW%64dWdm@>Xa8z*K_heWkDJm z1=WXMJ3KMTps4)0lo)1_k8%Rgy(b2pD5M-65%GMX+cYw@rKU&&*CZa$LQZn#58VW9 z*zJw$^#zU3(6#!v(dr8RGoCazuE^a8hA!{13k?Hlb8qNU{jeeKMfx{BN=m&lgq(K8l2LN1`g4QLIFS#RN z>fqVFc$y&HZFII1G|1|b!lmd8Tba9%zz|}e4GI}SbzL)xI`KL&%Aj~Mg@UJ>Hn^?-pr$N!#UKyyJ31N4nl7CK); zkd+5)VU&{x6oBqC+gJUc5`+A~d(kzCqYRy!ML-V(F!=wU5`z$6@Pu@v4hiT1|1R;< zKQv222nXghD`NK4L;DR-)?^L5PKZJ*^wVAQ0ALvNgQP$e*09<%$ZIyX#x#_x{B-pP zQ5&}9Qh1ztXWqO}Ij0piL*<&N+XRBy-`zwLV>FV2loWoL6c&2bNvzw+fzgabd8{Y& z6IxRe*O^QfsYgKuTcbH^`45%?%Wl6=D`{$g;YV%Vz=o>FW)&dIi-Kn?$O zJ?&9?7cXqn9CrPxk;bngXBK`H_Cd4}t7AeRDFyZ1r*cvnd#Gx6o;r>t=>`&d6A_Nn zRkNf@?*fk#OKdD2*_cH{DI-I6kDwb% z0fqE3(02^B`$H&&50K#>Lns9@Os1<8NzrTxLnKv-ND9;MNPDy=6BI}>1X87KVayof zGv+}&hp#7b>fOX}*l))!YfqK!i}D=8An@j^PvNLl9DPJ5fn*2;SZ2Tp+SCnO6sjAx z$(lkf`r#uX`UoQd%#rHpZL+)>v#_)q54JPGEUc+C!<1bWY8)vX^q-!Rqbz0vXxc-E z*(ECR-?Dn5{%jj<2W1zMfYI(T*j8Wvf`k>*FH}`ffk7)qh`jq4Vo?mnRrpxA1b9{R zpQQ~=h*%4Ym*6?;&E^o|peJfV!#T|HB>|(;X<>K17NS;q5k|0J65?Hr9Mfp*5oFNl z8&9Z=@0|fo*u(@2YUJRfYWdU10+lxXQ+F^x=hXaMy#FYq!*S3b1 z7}qL1kFcmoI*+&v!5^Ltov5jb6*!o~v%PSAVPlA-z%5j-up?^RUu0uif0>XuXCSts z4Ii*-pKu+X4zD}{JW~EeCzvql?uP=`-)uH`)6#{h_LvqQQxT-C_%4kYjTbt?c$3Dd zFm?r-!aygwZU)@OZrT5wSAlmm&PZ8OJ4U=20T=>!B&Wu;q|#L=Cw#>%M`6mtXlmyv zDEdN1aRf3L!OnUReA*wB6jT_?Td`y8c>Hv=6tOmR1dD&|ARI@*V zTEgsdKK+vfj;1s5nO00G{lQ1t3tyulRYpRizi-rwzWITx_>VRQU>m%QEzP0VAY}9$ z>MJO$LiK{)qmTBhCr0OsQ`lqmv{cD}wXJ-a%MU1Xclm+lKXf+451n>aJH89%g_stq z-+d;V;L)IzE=(1(`1}?GLMI{YcsNLx5F^>qu%DLjeP^0#SK(Vpnl=Q_qiI*LKp|$1 zz+LV-iZm$12Vh>Bz9fvKNGp)aaYIr9*Tl`#hDJ1@&xdzBRO6wssFQMosWy%7?dlbv zIzd=YIC3$xKoMqr3z=u^2)9S5Mxl#fqI!!=Cym)S+7K1OrZ?+EDoxi9Voyd$owI0>*`*R5jq*0V3M9?p)t_2_#~M|06rM1k4Q@B zV*)8U+Ci4She-&_B8r*oKqNEQQILb@a_0uI^>o2t+FkL7j;O9%x9P`HGHM$cL-o-Y zvQo|H!#wJ@U&yDhRyF=T*rq5P4dFXh#C1g|51{QRDNbIa-M3vig|4FMLD9kO%U5+h z`H5)SxQPxaK6Iy50;xPYca@%IZHPhOB|nhOEyHq=T8u zk}eM@zfPVU`mM0+E_dVfCnWPD6W=%I4w3Vj+fJ)JeGs6w?#E zaGAbJN56{O@v%Om!tuSWWHH#X7~ca%G*XOHtrgYdF;A}q=16t1f={O%Fg=B01^*&^ zy^$4qnuoek1(>}iH5hf+Z0;`B8}9h-$!)az3KSQguwBrytcwg>0Dd?o1uG z3tgs0a)7>>RX7FWjg}UtATTt63ZB*hF|HC%m!JY%f~QNsRG70tkby)H@ic|=C2e8M zA4yv1P=XtJ1XJTRN*dt9fLc^(5hc9+YJ9d3wylizE`Tv3 z7ZgHi`?OAsuU$HvQ!bS-7RMm<{2f;H*olcq;Up-bQ$}YL-eOid0YDOj&)(?1%^iH%Ww z3YA6m5VX-3Xo{*Bf}|X27yzL^q3lnU0{wsl0^kCYPvXKwNo@EX_cRyc6$%h?;##X_ z()3JCH!o9rZ(u9Ra2g*CvfB$U<(Jdt?3Z>eH8pfdo#(ODk#NFqNa9@+{`ZE67E%rY z#iAN3G?1iSq_a~gWQY8;H9uifO)mBfEGPsko<(0;E>s=Gp3;K~i5Va)LB~tkq~0Xk zeL!XU3bo(vm8`Jql6~#o$i>6lQzA5im3U!vsa+rx^qNZq!T%fz@{^vRPBvpeKCBnf z7Pt#Yz%cTGm#U-0<4c2oQS4kndYh>1eh!hovq8QltuI4X2V7TAL@Y6agagTzktQ&* z$VTw^=DeF1Yt@nr0kZ5QUK8+MA!SLph9t+3tz=sm%f5WWl2{RtwCnK%zD8#wL_sRi z@O8>80wbZ4$t3YE{t!4aD34L4p7JuCctA2WMYOgl=|DJMujZF}swioW6R=cB2g}G; z(20qh6Lu}3Caz(u0T1JABsyc|r^QG*<5cJ@X?Hk;8cUTi*m|teO7^$wfsp>#C7Sv{ zYn*N{yiai_CC(Un9R*PuZx8j^{Rm@jUdlHGDQDYe_=iu(r~0kMGWwLsCE}AiZq{SG z8d>J4uProDY`0vX8?8d$m8x^fJmt(**Wu8|Po}h*2E$Cgg#r*@Bi{={NcmEkr@>8K zj?0l~oGMOuCg3x>vl5=#bTJuLqr$9YxvScXDXUmyd^`P(2EDKYJ{`AXy(@5ZTD?7$-RCJZ64K(k^!21MOEpc9#+i4sl*fBFB zq7IquE1E?tv)ei2-T8a&6cM4HJWs4yHld)fi`84@p4+>E23QIfLG;vwD+!R>k zrki$}21b(*6iw{3*`x+q&`e5yYo^T@f?X1O2SwMH6rCn^s4Qsrp@3O`)qD}uTS>Si zRH`QnO~l<7V3}+iHBzrN1Xf;9rV<(t>t5*7p(r20coQKV#}qoWb`*A)K0YpxL$~Zw zL^w_fw0%cMrwM3DTgK=^r1YxBPaLaB&;tccZGj}pQo-YH*WM}pfQN39S$=&9vpH%_wWqd#JQ95+p|(_e zihT*~$4d21wdd%1v@J{9Iy9n5{lT}I92T(OQE-Hw z0D+;=6Cm2kIbR`k^3dB8ks$Ywn}Aq_+yn}P5EY^7&vkW>IYc8l;B)~BAd(REw2pL< zE2J%A$X~!?U77KuK67o6*DfNBtuz0$S0+MHWTIoeUax zlJdj|5p!Np&!(YU%vMiN@5T|#OJwLp3$b2UitDmPln8^|5K?H-AT6RRgpUSa?tiv_ zv`^6?3<*u{Xt_f1Z-1njV~wAXBYn6)l^@wf>x2Ug8k!j43^xqohohW`Jby%FjGM zf$)HDi8^5l&cHQo;X$O}LW2ll-z$e@(mg&6GuqfGhXuM)RG?E>dtNM)ivjXTPl9G_ z87dGA{wb2y$wSojLLg{qJqlvfwx20reA)$4S#R*-1u^fZ1`6a753L zvSR;-x9@7^llrdnR24vq6NDWCWMM&^XF=pnBk+Q~S)igVu?- z=06}Fk#Ru6LE)|j@$kINOMEN!2p#>W^9Fl9ARb|ZLIJ44nB}J2rFbV7Cb95+VO=AX z*~6+qvlyQ31s39*av-6cY}L{%ud0gwJe2>IM{)`-6cjzlsL6Eu_ zC|Wd;HA;hBG|@!nc%V8jGztpTk6XoXL?p`>f<>LaVqEjIHA)B49LQk&HJ3e6234ql zlA9&i7?@FG!&=3v#w!7dJ+x0+cvlmr!sYyRHUj_^4a&(}$90z1(OE|lV7v@z70UVe z%Lc7tf7dehU`U#fV}Rwvy=;&sc8X;{nP5Y2!LbV~fsFknDx0JTi6?W7nP23n3iq?p zl$T;>Sqf7w=Db`SEMe~(%(%IgUWXU^+gylC$Wd5wW)5z_%+67j8lq9go%8^F^u_BMzLrRr)~vB z1B^P8C8L#CAAdqge4FZ^Y_9&dc7qCJEeC_8{X;{CL}#1f)zz&9`$B)d!PiRe3(Mg2 zAG-{6BSwJiMQ+-cG7J7EUD>F}zVudNDIz<_7!2f9!%l^{&$hKxS;#?4atl$O zo35LE=Kr{AMb|84hi{ndVME{{LPh9=Yyra^V5=9UDUceKK0)outXb~^2m&$EZEd7`<(d2OH z$1xF?ehMChJ4`S$=uwHd8hUcV4`4;ZBG36a+ry*KXlM8r&o1VsITmdEqTXD*sQwf~ zoi#6jWioTBpUV9!DT=EEteRKkNrepJ2(m85to@}efrQ}&QccD|$BUt^;o8PhkT+Nd zCmtza9iD)m2I%*?;vo@c@su=U*~3*M0Dke6ZdN=_JHNGfJ1ibYCaJ~aQS}>&r)pP`77sCh(XGcjao<|J6BdsiNiE*uu)VJJpfwhclGyr^DaFIc*UgHrn)7X)PuaXC zYfQQ_hC2lN+@@%zF4*F83rX#hY03PEw)bfa<&1PM4=Ek}*jN{Q0{%*_mugj|e=ov$?g6ki270VG_zLt`%OL`{0vR}|ii@rl8bgg$v{saOv8}{$ zAh}?CYYS(E5Go`YhXnRKKIed8edAV=q7#rlL{l8b{vhDkhu4Z*DS89xU?{3^CFCNR z?XNam#NDJw4WlWP<_6nJ_R(XZxba(8^6$2-G~*+f;*z^R>PN`#?{V1&!15vQN`dQ? zCC8WMUdQmTMvyn&c=q+J%nq^&RIBjm3j`hiZ_BZTsY)tiC7W}j?#chGJwZ95hYC4z zvYb@;Kx(%I`j^3e@4NS#Uk--|txkf{(&ZkLg?WT$HxNY7_<$qBC=dyY`hInCK)$Y; z2z3)2VJcoOCN?kspMGk;%BWsyo$m=YrrDHjWrE;hWF!1h0R>oqytT*Mo56ZZ09%_C z7h!R(kkiKXWw!nz%p|ftV~ZnrD3?Q$NPRO{>GL}V5_TRiLH{12a1K*+Owb+X%AKmJ z*&I>nkRfBf$dct3bIe^bIPS_4{g&q`-Q@trf0-AsaAjkAh~+Vxas;3`s?vd$i@1FA z4pS%L$ zBGjsgUru-l#J7DJDyKvU#RBzns4Y1X7Ci1LdN%(4$e-b)Rg}CGYn~86lI*Dq&dgHv zpj^yn88TytTJQtGtWm@!Nr?Zuh&NIXr$S*82;1Kq`G-;>Z00$DkTMt*bT{N26k*-Z zN8rPa(f@c~Bs;rMMn{GyS&@RXYG2fn&*2o%v?~=6g1KKv8GYkW4d{Au7N!!k;Iogu zY$nMeQTE363wuS@iV##+D3AFUoSq2gamGQO3`fRf@XFAMQ_kjVW+OYcCmVdB#D-D? zV+V@vc;a1RgIb|ypUN51xM#>2iaCNP2|7yBx8MlB1gUT<82vyNhzUKes4#30K?yI2 z>X*Q<06&;KDUgNSP2mWsEW;7>i)c86GQj+z@=zFJ8Mn}fGIMbvU6tcON&w5}YpJA; zrReLBF$U6(24HG;&6fjhNui`9+`nJJ0@q5_8JtuH=m7)+${MQo|G zh<2pXxMQDSt;u5s{fg5kze`zbNMgg&C)mm_iCA*-#NMYw%;MD>l0?BqPp|oDY}b4T(*+ zQ*q9}OB&&fya*E+YR_B5d29!cT z1(6)O@v=A90!jEMKC-C&&${H>dW3_RiV7Jy>>$mZgZ9A$dR*QtPF}zv`gx z(m#dj=3hqFzO2uuMmhK8zz|&w+E&S~B0?z`cFwpH_r_y^P%7kjLw|U(Dt@dO!e69t z#$h}yoH7(}g;NfOjX&Stl!DMX9lMl@^O;QfaBljfJ&> z-Tk6UL-$_89UQ0uqdwB(6b+^ah3g^;H?{8ulbm60YpAMLPj-b!D{&boNSGxF{jM-| z?p9TU1a*@MOS~^Z+qf-0?Q1@j))cKhc`$|2kUP1D9kE%QF zK=Kl3JCa9IlH1rqDep667xB76l%T!8K~)!9WaNDKQ51gOJl{m|<-zVvR4X{!ny8oI zG;XSHh4VsF)f~>urfLSt`9(7|6TV{2B|*dHs3<)DXR8+)tKO&Se@~Ztptt^Jd9sRxf4VuyB6*VSeR=nUe2G@5(`#!Kl+R6;#Az0fQ2aQpN$g^tjy**7_*MoHsfXQxz~(0P**f>|4r2^ zldpKcReSZwnrYr>b-a~k-``YEHOhIw$~Uk4UG=g?nah7yTdi4U)0?VVgM8HpmtmD3 zc}|kC6KnRcxU539PI1rS;L(hnf2dN(s^LG>kKy$EhpG@oNHiNJ>|iaddfx1RsEL-f zA@8RNRn01w4~`OBwCrv2y2@&pUtz3#)4wga<0Jb$-f&{pG;6$XzZV+Pr*~WE_207J z7<$3wAar%;1-wLHD1CT!ao&%OJOn_Lm!{Q9TTr-&Sz#)^0-vazHYxP`WsC~Fei?&9 zFUsgEFg2-eDJY|?ROM6MB)!ae*Hl0dDc2lanqgTIghRx}ExSVitt- zkcjiuz*#s@sl?t^P&9rWcWWGP98i3WX%yUB;P!=E6>dkkaky>a=Dvp(j;L^}I>xef38U!Hp0HD_7u`v*yK=$PwM?{>Tc}L(vtmj>T3(Xj>D>7^dcQD+0 zU@g&`1fUTRtFh%+!lPyAT54}KX}mN_0wj_E~qm0 z>qx`~+2OXw@k-vGmJd>n7r)0|ZGO~ARV%>=<#DAaUWxf2f$0YHU9&h+8HS_1R**zO z>F15y)-UBg##sE;C|?rbwgk+gw7JKgn|Gj-O1H`)AUE@6&;3iTf@uP1G?j#*^X=xF z&g%ArgvBetU;@_f$9Xl<{}AC(hVP38YU;iZ(gNyR4uIe{-1C)ig0d`_8sFya%@uoq-^a5l%k4I;K6Gefwoly=A@?s@rVWaW} zbyqd4%=4Jr9ZCacnRk1rH;c;VS;%D`kHWlNQQ4T+daAk)qHtu(cQK^DA5CwB(pU;A zg^ra8YLt^(Mzr_v${fB^De6U`t>et@o~m}nTo<30O*dJ+)PbN{kZa5`=X$BfFtIl7 ztt!EJx;Iv|QF#-3t7oiINQ8d+nU{S0=q_;WI+&=lv6VoC(zuIhaW6pL?N~gQb6)g`>c4mhudu$Wo-$A z8Cmg`m_idRaopcB2bwPBBxWEAld;4$KAp=a!)m>hz1xmg=I$NSG0cooTLNyr%B@K; zG9L4w3MxdtZLmob8FEIvWWBU#PFbmn@Q_gyoQ^u+<#F71;@vE4-Xgfbn}g)$2XCt% zJoO~9;P)jngzSHq(}v%F08R8G3#tXQ!S*KY0gECGp)yD^f|2j_ba)vUwM763g)+S- z&E>b%PrOq zTOHydh9$mlfPXNE{)CV28ldk+Ud-i5Qb=v5t)QLwlZ~9`P^0fPa{dY@*2sA^?wGy9 zFasCkS(h{r@6x&PN`B+ua0pepu5q&b=9@c)tFqv3S`Jrr;Jh(h<-Uwg%s}+J@%g*~ zSQ22?5xlI8?kel)2P|Y2PiL?BvprUV7V(_m4JjXm(c3y+zYq%3(Vg+iA&SibJLb$X z)(Dv&9vC64_X{J`_t3FGwUMFOKT=h#N`_fz z2M)V8qo8}2fObr!QK~6A^tn;03ik~S5dj@qRyq{=?$V+606742a#?Q{e$%;cXyfl2 zW{gsQP<{{Pj8-)iTas@c8;$#D=S`o{vN@PPTGhuCd~~#G2xR3k>MwBmkC9Eq;xQ6- za*S#OWVNyCMaiwN={Hv0(;DP_GrDKp`T1o|dNLR13V1sMe;7YF72#OGzQWVa$ZUBtTwn;MyuQPzxQ01p;R?!O+g` zVa|@oER&#uGLAm|i3*G)ZU<1a7!(ZViH|yx4<*}2K9uYO`B3twp3tpS&OXw5iOwnqUVV@f`hJTUoCGN|N3o53X?Nz1TwM&tNT3c5`?w@Y8u?uaCapF-jqBl zc~kPJ;7x@`C2L9+l`Ls0i%OO>l|>~>n#!V*B~4{f8^cc)m8>aQRI;XIQJccOH_4*{ zaTnIRa^P3clybt9K)@DrsCL%43;_QyEF> zlUXH)TZ-Gm%HB?q;5YEE^4#L{y{-H>RmtC`#UJx|;v7$mrB(BAaFZ6V;YqrhUPnxK zY4KaVM#SRyk(t->vuT#_^QrCU<9``U+;JaW$FD*?Z--=6#jiq3KdsMGlQ?}ITb4cQ z7w1A)6O#v}tHfjSpfqk@w80CtB{4{H+Q=%%LtHSRl@juBX1onodYB^Ns_fzELA-Yk z>o_>i{0X%ih&5TD|p-jLqMi$S+ zUly2zOi`rvnFQ2sqB%1Q@?u$&OCc^USJ6flmC~^)(?%7_%{% z&~ju?X8JpF5^HkXk%|wW6U6SUp26x#DJ_X?O#Sm)pGJe)CPp-bJ*cuusd7c~HQ?l0#wr#t6G6o@gNnnZOr~FP%uT*+BV^B8GW=E;dO4Y( z*Q^4fjK?x5Qc1_1XvkG=H~mgn|7CtNP2H0Ko;LUE;L>zm!AHq#DC#x00e@Q& z_!_|1E&^W#_*zBaZw3C=BJhdY2&h>^KpglQMc}Ifk5j9Ziuw(R-hlTTP#Sm=N7yhg z8wj?~M=u(ZLatQ+{qqCzGfd-N8(YufupYX~1YApEn8`yPanI$t+twbia9S!X? zo*KkDqTU%O2)c5~>UgDqfZBEv5!UY(;GxHT1HLTqP>WCEy%In`nX3Si1q9Bdq-9WZ zg`7sb$&U%Mi##AnCJ0N!HGdkoxdC4ucn%()W}rkPzA(EmbvfX%2fHqHB8GjV*d@F! zAm-uHF(;EG-YW?N=alPnt^_SYACMh%vvOg#|?f?-`hD zK*w_B&3|?m^C7O6q~SaIf1G`ibEQg|D+?wboig!ouJm83#FR?q&0x}zr;l+J75$9+ zkT~vwblsnP(32QS(9`!PA0(DlNhAi>k?s1qXJFCv(f*dm`PRCQ?`H*)a|tQ%li z%Xn@7`5Fwkw4I}B--=R`S(DWd3cbD_=GYunH-QL+vi3drO-Xs1uj)}Zp20Qic36acAtJJNrLqh@|2^Lpw3gY<@kxDrfMU6^;Q4KyGTAbaF-_mDS zDNPHzi&3*78G{;1Y0M>%E9HwkB`tm@rjwL=_p+tNX%Zr}#IodH%)h&E9Gb-NqtvSh z6%{{@&%DTO|J3Y+*{n`cf}f&JGSh~IGmR&s)J{gZr*M>J$tbmwQ5u;Yb5*gdO39#G z&FQ%+*Q#ks&QrNh)ksEssBm5nCKFUkMtP)gl!ud1a*|ORn^)$l@>W$dVxB5*M$A>2 z)-7fQ;m7Bx%tYm6#HNMwYLd+Bj%1X(3P-8$M~Q#$QHZ_Uw(V(kgaiOm9_}m3#dA4( z@T)ZEG9c=q(&PTu4!$$_{Q~)8FH4vdL4gNC_Q|K=7nmmV)%P>8amoQ#Qp;{?M$T6g zAqZ-br(R4&FUnJst%&*c0(DpIB`yy+IO-_XWI~8ET~rc&kQ8#^Ps{8*CVzpt_4bN1 z4OfxIOye%!81p6_1N+!exJPiAV)Zk)qJkh(b&;xIet2GGm&gnP0~Qk&RuYTQ!GBt$ zN+!si3E!C_H;p$y)1Y%=aWA+HdmGR?$IQk85a%-~LS3-n5b9!Yg+mt^T7G<>MX)`w+S>Emg4lob)*)yV7*5-!xS(J%|n|iAg#K3>G@!N&Zkoh&RIdS@+oCmutzB z+Irc0iEyx~M<_pNHKMT-G4C!^@n2|moi6A)#6;y@jn|Ypu@)2H&1#DJvTsWh?TdH> zSwiM1_IMah)5OdZU7vNLx8sz;saPaY4KFXInWv^?T0uB}k7+KJgJrvmJ@dg4A9xDNy_v`7ViU*JMpOZ<%j_nyFQ7`S%_ z?p=Xqhz>0fo;MNS>8i89qaH|Dw zZs3B^lyq2rY+nHnPhUdo?w-6?-c>)darn4)je4S7bv(5c%+ilqjcjb^xtl9*ZeOc@ z)0ASn)KClthEh!$R1Wr^QeSMRz!%`=wcXfD^C(>Orm=@BWqC8Prg!jjqHcIm@-@Dj4Sdu(jexeLO!9~4rH#EcQ0y~gBx7^&BP^M<#|bE1c-F|Q(d zjj}?m93=Us&U*D&situ#SYX=%2`@P^j$qSmy{c?AH51mWmd#lTZlbUhXewS`ikwaa zncHX=xJB47l%^txVoceGuQm5>P;DBdmIaoaWr=={u(;4$2luUlWsxnD8Zh`t zqfOYk=F(Vz)P4F!b$`4mISkZ26000-Ep56k)-T^z6;00jDxMOxc(mC~qNZk8BHH{W zu_~JFg)=M_ZF4DCqGav@$titWphIrjpKLfd&pKgIZQB!km4;GF7TX5c!T0HifEZ%&+Me>k>e!KO$ zf>0lcG-T_y7G!-`P|yP({>SYsw(Yv&u^E@*v6yiz-mIOIw-pqBc-wXDgaAPDczAn3 zJLhk|t{_McB+{pTBox%hJhTG`WkK(~y5qWBv1yhB8+H`r+GOW-xdy}A^xYFyzmZwL zvmn=Rc3zh&#=hkGlU)V5Zr*iWu3^zt_Jz4V6;`wR?&~rPgnLXEKSX4ES>#Lpplrya5zBuFdovzE*%R3kZXlUXcl`W z`ZVIy=WguV)8NpG=O=5;XZuv^Tz`7RIi1 z)QH7}3bD9Y6veF=xVWl6+q67JEv>xv$5a!iwgi6{<{*J^0$iVHPeam$*G<#hw4A+P*8Z}{ixm*|DOYiHCh+i(8AQ(lqz2j$@U{cKa~ zoHYMe=TxTSH|K`xq(o3m6hSK854rj(W`mZh+&^I1OwXF3<3+7dOIN&@d|nA6d}4re!HwWTX{F zh&2K@N*NSjY{mUJXfiEqLV)~;G#{nY)MgX{WVu)ai7#U#Ph1hH2u&52lF}?ns{Lel z5Bdh|_kk;_{k^s3`H zf@<=+m}ys4{o5dgNxTkO3~la~@gjf8jTK~s-bGuHLkzdZVn$t4^-XI_7ytd8zQ`VJ z!XHl=q{s1oq~8z7Jm?2Bn+DR+4?!1`Bq$`qXL-px!$X#oK9*))*T;AJecbTIKE?`A zxR1rQ@&7^}-+g@_H?#*f(ciI)2aeFm9v-+-|63hg$;w*z>bV@&`ma>YPcn)IW7!ZTL>ED$pKs(vs5nf%X`ex<1BN{)!8XORh7>6cdY;W zJ5hfU{nu+vuw(t7??n9q|LrxhNig02JIex>37F)RWde6PW}8>F<}xuw>o?2aY+q|0 zjzD<2&_!D4jV#IgT|`f@qS!KGx9ad9x`DYRL%)z-7YsW0sHS&@o>;Fkt#0G8C?*BD z2?btAo(U_51UQz*Hc#F|64s)wc|KD=+@Kc7j=NNa9RSW7z}wVH*8bdCQy>U8-tP<^r;k?&8nWb}{ zOKAs81;YRYx1JEdifIoydS$M#5FuOAlw6ThLB0%>R&i}C!>Z!|NLpZaXXzSuH1RF2 zfc^3?ugUH`l|^hS%NJ8|F=WF{{ivQ_r3qO)rlE?F&;BLZ%BIGS=_!v^gj_rO4L(BV zU&r8+JwRZrCJlA@Z$m@DU*`7IQe@RN@5S`9b)00h3L-p6|Jy!0CsD5s3%Eq`0{6FD{5# zT-^2-7dMDzn@Z(mK>Vnje&gl?;!rugKSR<$!+N$^Q(n?o74-AZp?Bo8T6#yW+lIa4 z-w1WsdF-FeREqkS{lnEt$jz*&pj*~1vX5}kL(R1hEwmZ#CbT_^x`vPDJy}sdnwf}K zDArl0rCYXhTDdB6N$HHttZ1xcnX+Bnu5LHCyW7L<>GpDayZzj^-2UzWcc44SHSS<{ zi2JrX)P2XDqBc8A+>XvtcbU7~&39M0E8SJ@4tJ-!%iZmsQlG0m?p}AN+NE}@J!-Go zr}nFl)B$x+9a0~ghid3DiI3a^?m_pE`>}i2J?b8FkGr3`C)|_nXYMKYi2I4V+I`o3 z&t2oLb=SG;-3{(0_XBscyT#q=e&}v=-*@|~0cxNcq>LJ@hN@v|xEi5Gs!?jR8l#4& zx7AcNR*h5R)dV$BO;VFpC)HVXQC(Fx)m`;cy(_9ds;}y&-cmhq2cU!MsP?)0-EHo6 z_j7ZyhOYg~EzVY_kK5NRSH4O-r)KTj>YT7nTAx{`tS_vutgo#r);HEw>zdWpZfCc* zJJ=oVPIhOzi`~`kW_P!H*nRB2c0cNJ=dOR&$sjJ1@>ZliM`ZbW-qt%?G^S)d!fC^Huhk9i2b%b)E;IJw@28c?J@RP zdz?Mqo?wr(N7*Os&+Jq7=k{s)jQyp3&i=~&+CFbzurJz|?6dY4b_eIOeZ~I9zG`2y z+dA!>_RfC$Bm01T&^}~;Y=4q#AGMF!$L&w;6ZT>Ih`q<&YwxpX*|Y6A_C$MwyfBZAi)@pBk zquN;=txi^FtBcju>T7kgx?4T0o>nibk7a#nPT#5@NUT=xs`u0ywN|ZD>(vIeNqwL; zt1W7)`cQ3C+tm&=$K9yjS9`2Q&SGbYv(#DXyz9K@Y;@jtHaQ{xKrI}?sRvCJJX%z&UVMSBF~Aw<404P!%oz#o z!wJqrXOc778SRX5#yaDi@y=p*kvrHK;=Jt)bw)UC^>F8@@BiS3|8-XVxLNZSEg!p} zTHpV`gAXEd*Cx;fpQ9!_tkkJH!b=e*_gcX~R#oKDU&zxlRfZ$y6xQdZU?uc+sW>nD zbPhQmJI9<8&PnI2^M&)JbI$q9IpuuroOaGQdG37ouye%u#5wAG>a^3xo!9^L#-IP% zN&ojtFaQ3PS3BxIe&}p-wmUnVoz5<2ud~nD?|kI!cJ??^oWv9y#$z>WiXBf+oae&` zM{-@kGK`Ix|FUa~Sa&KdRERFeR!&rw;IxYMgs>jSWj^u^Dh1(BVOIf#sFtxw8dsew zM3*wSS!@nWdcn5@K9&eZB`f=3$|~pT=sPHz8cc{bTYKq1-At&-;V8nN3y^!5?jVru@Ty9Pwbq`EVJSvtIY3!=s?75Mr#(E zneKI@cNX(yoBbmM6`P$NorMju^t_7BKMQkImEdlE`ReST;aZ`|lwxH+JGnqxD zwsmpDyJRC^5&~q$ENvaAz01T-^s#T`nl%qu#S=hZA$kJQ&0?d{y>I9p4{xCsk4cY? zE@*KcbV`C2k4X2fGQ}9AD6+*1Sjo`{^=rc}L4{rd8Djfu+Sb+OADR>K7Bbc-=D{xp z+L90VG9Jr_&5d|pvV@Tc#e*Kfx9hFFbHt7?SL^9=33$JvcQ_(}3j3#fP{*hc9R_be zt=t$#V*}Hp1HyJhqqEQsZjX_oU%GdmDTc5P{{8EKVuLTYm^B=XP`?&z2SqHq`z>L|DcM{TQKHtXqb+oZi0h23E5Yq6c}5gS>r)cZf-@ zB1vW(_OWrCisvA3Z2K|M-vBMAgJD1P$?*EHK35PR!(IAelk)nioJ57_WgmS*M<7B! zCcDJ&X0gc`-dprugtt&fOwEW+32->W>;W+7hlv?pf2Q~vs3QB}2q?Qk^s5XreLZfc zbcs=Mn1#h9Y4$X+Z9pKQ`jsSzUnhdWeQ=9;*$hMwf zbw3T7dM({MN&j)gjzGqP2afP?)i>$hXT%-@7E=W%;}pF|;myQU@i{%8z>|Tg0@u!4 z#15xNKQ5T6CV%TxF;U5xdh}ytkSLfdMrC-jSnoqX1AD^?kMKDRKgjTAu}K-;JM<%CM25tcIm8vqBM#Q!_ z!p|{$JHwmBHe`5T(Yp=afTCz{JQ909Bf8PYC3qe^4lvD+V*sqn@V;h}EkMCIug@t! zhycdQpGKB2bTdM+$^;WFs)oHarIc{Rs#-0;!RIS3raUl%hdIQ1l!rGOS@4 z-WKM&2KknNcnuc;AiN%!5gh;oDp?u)aG&IW!M$#wh7@+Vm-5~QpO%QOX3hL#1u(=T zlsA;@+bSP>!+1gXFov&WI6iyC8&2n=Ez^Uv@1+%=tjI_)jF28y&;*F+%DH370AdfNhE|ENN|C^KzaT_jRLhR%V-l&|# za+-$X z#AEmAtd|iqg+cQeB#oU)?_7BCHS3bs02#(&8za#TLBAr}x(F`mAle*6!yMq#o@fdQ z?PYlr7&;rF;3tD26f>{gt*a#7jd(K|I17O=`Outs%_3qZ5ady2(=!7em|Bqy2ebkG z!##=_t=A~mN18c|HeI5Xf5R*PXROrdv@Gu(;->*$X!$~dF`VY7CL~43vvgD5SfaVk zVyxbb$@=un@|5(M(3m{-xbU6%7{0V`HW#j{6T}cvONX`v7|puT+jH7nL5J=#62Z&q{}>dWU}ady}x-5bdi!&m{op z-f{-@XAs96I|*wVo^=I5mA<0#Gy1+wngk>3$k$(%n7LK@uJd0!0U1PM)rp?2;V&YK5>&1e|xeKkz zx_->{dJ{|DPKH{Btn0kfjoYa$V+ilV@D2=b7CRd8`qJAT-k9G2EQuMiv>%T|kC9{p zo+A?74_}7AxF3n6d;OU3TDm#)u&!!fO*h3J(YGgdMZEUJe*?Pb;SWx;xoqdUFUN5^ zYfr@M%+MBQCKw z65W$h>8$7u_zJ$mrbzUCARuu_9=j9=&0T-&f-e9LW=zCe#SZ^U>h)KAN>WIK6oR1D z3_6D(Owyo`v61MQ2ySd}Go7T5v5-_S+82_;n*n{iOVn9G;WC?FJrc>Vi1!|Y&L9Xh zGCJa|q4zYrq>;7sd=3w31d@!1w~m-oz>r)JW4#jx;xiy(v5}GJC^p@naImy>XP=!g zryIjE&8H^Y(`8?vb_K@ul!(`ffyaY_4lvte@X&Z+nK-s=U+d^s*wk}k>B_)Q5QyD= z^Vk*aOo%v=p5=8XaF`*KU4eVJth^q?eQbJr`i{gQ1YwZ8ffnQ7-s{DngT$d%dF$Ya z#tmrT4oJMh0}WvV8TOH%N6?YIiP|qHbR<;@UZpkVgWBuEkbMXN2luh|`of!t?u8$h zLA-tp+yhUDk37lxduWz=48}oj~BKFucp@-2pG>%Y1sa z!xIt`z7Kd5e3Vr6tu}%FmgtA&reid(V7hHc=QFmLTSTVEec%~bk)p8XLxjrU7Up)f z>zyKYYq~JErfL(Np1p-pn#ERW?=-_Un?_Ca9rpX_=C!AExyUM(u`%5o+OKZUIHtVS z^lvcBo9Jrg*E1#MO|qe0>Uu|+!8*J*{e4~5WH;66b=D#ZhFqTZjx%fxyqt_EBI01aypQ(A?NL-XPU&Q9>j3HeMC+bWZW+yrDhl{ zpSoU8R(`TXksAms@oVMvB6^ab-2{_jy8+hw_fRVGdNXVy!lgt#%lHNSo(M&R2Fqzt!UCGJnu zC_$x85E#G%7&6j4(E=>N2t2jd=3QAQ$er0y=2RI&=d% zqyt3lMqF1@wUw?^x(kDnqoo}~I-Bpc(iLiVk}`rpxmkG~7}imcL2JB@M0GHIkx|X| z48e<(pn=Xrw`0a34XjaK7b4r5EvXCxmx%Po%4Yg6N+i*&!kAay79uYQQu0Mjw-R+;P*C|~r~QOW z-~r`*$dIqi=+>z2SBOwlb+P!b!c4@NUrLl@b)g2lljtwZ8C19CSt%hH+6ddturoyZ z)!jq?X;c3(UE#jZC8wau<(4uC?`$3$8_m7CsJd22O09Ipk&Sf zKks^nh&(Px>6}9JY~z%|^;R*;QF916KJZCujwv4tYtv-co5z@kC5qpAE~d(xPxQy8 zK^tAM%prt=GSW$?2wK3PgXY;bx@?&P2nq=kLHP{&$aHUmX@%@^0bwp;$UZ@(PDRU= zx0oS&Sp>EV_=L$RbOnw_7)FLRm_nD*zni&)gt-X336Z;iOioTCTyOc$h}|jJ8@n9> z7vp-v7-hReNj7~7_O?WCD@d6#c1JMiL-Wtab=kUG5u@->9mUWsK!-ho%qA1J+2lWt zq51)Xl0$VgLpGVyk7KBkDW}OLSvn>`T);32UxLm6rH>MBK1O*nh+bWg(royiE?#pL z5Xm8oShE;wC6WG^m`(qRK~I1a%9pf3^E$fTI}BQ0kYOPLwz9ig-ff7m6cGxzhT=IH z-f+qU7XuCXdGpwI?TsK}5j2!W5?IKPfcf60y-~z10L~14Lf1^3*4}7hxcx=FLq2>A zar21__;AFVOx!$)CzVcaXb?7qVRQXFd{{CMM(dlUtH_!mq!1?g_&!`I(Gip1L|3f3QhS%^mz`abbH8AFmx&!Y==-{2gDV6_pm@+O;(tT$@US+hqtCY^ zrMa<7$*3}Xnv^RtPeu$HW zLT1v_7asI$dyTu$@b;m%fOuyU*PFP2coAaS2c?85eho~Mv;f;(` z>b9_GSAwo_w1b2siq;H2BRlA?+3LzO`wfmHT zUm_XF=mb4qm>NIU%@SvTOHSA09d8cV!PA1gak_>EEboLAYaZKzA;IBu3Px%#6Zni( z@=w%wp0)w{A4H!dnv5mvbFkk{H?b+Csz*)E7D~ z@e0!x!a6eSn4d>LTi2MyQ9-4W7NiYr8Tk{0$f6H38Q{VXW3nOo2+&ZF_uA8Qm~m*Y zah3MAGP{p~fOP0R?cu^APCnt~mF-{I3{e3|z4)4!diC1=2)+WUyuZ9b{q3I755KSV50D-s=~cWY370ktCJ z5JR?*T5l<_D2RaV=N_UzC`7#rwYQhpO^8M6-AB*+Chw;>{Bhn7dXJ zxrWGqToLgD;@*>pg~=6Rn;FJ+2$=-r`Yutc1(iy!!?pJwLslUqAXo5@Bel1N*p z66lV#^zpk2xf<=QBO)J&h_4wBszp}oiCqpXsdfWBTzhamiSIU~5O1^CFb%5@2w#eD z3eyn(efpQckA;Jvhe32!*X!v6HitPYXXAG12xZl`E%W% z)?9=nzY8wwBZS(6;a5TAcQ~`nF^@fsD$n*~2Oppk0%i#&wg2baUS$N#L;(7If$dd+ zk2-mrByIsb9dIDagajwg_NoFo4ajsvph$QsBT$k#!}fCEp8~(lkAjDPz(~!ry+S|wFwvTusUQNKgP2yQ>PeilU6H_eU z4{<^nyP&*}Iexk$YfSxO-o+2ODJj@IVS7i3K5wo*2RXsl2o0$cL7y||D^vTIy3#Y}7?hlYk2B;;L8TJlQQP~J zAzw%-ID4g>Adn0lx4jb#J1b$KWauPOXUynd>e7kR2uXInvAt6a`&^JW@>a=+!)f6x5)tz69=3NEVw?zKVAw%g4z6n@-meG#Q{X{94+x?m5XXsN=)Le9lT=dQX0h(J zcOP&^1t%lb-xQla{z{im91--5b%pq-tL<%Jb3QJ}jWWn}HjRseKPpI>BFFfUK?e~O z$RN2LL5gieA0V2XVp0UTy#nzc0Uv%s#Qli4{if>k5NwE=Yw{EBV8~wcz2_m=*dt{~ zdz!`8*f1f4u-$?TTI1~|YM1GYjB4)m%ccx+FVQ<#W+>QLX2XCHklW3c=XL42+YnZi zP%lMxvCsB~^9yb@C4LPl-WKNOSF>3RVIvu~nMj|GN74U*dGgn~Gz^b0Zb(dH81lZL zQpJorZEq|?HXTKs^sJR)q<5Od5MvUNYl!q~ zIhp?VOo`uM=6W}^;PaL@m0_!IQZUY4zP7ySjIuH{-B#P1LF9_mblyy&@&y%09?x0c zEFzZ+l7lZ2i0;j--{|rWE=^4j1|vN00c{<(ylzaoSfV6_ZA)#hJJE}jxucCP-K+;a z3lRtOC(=el=t95I5gE^IMSQJO(96vNuEKnx4N!pS{Dp z{H<>f<$(VB(LbBHg!G5C|1BbC0h#>T`z^0OkuwE(;|Rq{xYP2^l5VF< z6jS|oxQ4<7}I=hatz4Hti&oX^6WNWOiws(Qpae@uAxJcAkK|yN8X*eK{(YAMqVPhEP z3nwqrKiV{SL6@#M3g~37t+%{y7&cOnDZOT1dI7o}!wb;z#Y_JlJCY9U=3xj)4&mXp z*OADfMEZlH6a8;Xq|*L*fIKk#w(WIh$Pmdmn2uIkUKb(<3o@k=wf%!i@Cq{XB4)eZ1!WYLmipb#DIY05XNsQYENW%-FwvKE z;_WByD~Tr!N(!41_7TI*`FVsKI#FK&b)CF!y5ntQ&=&|Qkk`$0 zyzRuE1y&e!dd@Hk<#iJrZzmC_fq-%^cRM_Xd<`lp5Z@ukT@3vkp%mZkrsotqpixAv ziO&&g-ZqO(bG$ta{|w<^#w#QKUiwd(A-~s;K0g)r*sOq5L51&H-UA5y6p@4Fx?tcu zh=AiPC7?#ceF&&yM1{l%+{3^f1&*zH1n?*3;a9N6ACW8r&akuPt>83sSdghy^p96` z#rqBwpm|>mpNY0vRx`yx1Sy!n!z>8}Mef4zQCC>ry9_*FHov0Fw)hBff+4hq=>71A zl}6OH#O)(4tTmA9h};V#tG%9{J*M6tuqy2aj^hQ5hMKkoi*pFuCCG5tyie3lpk&zO zS>7fhb^wtaHvjE?K-_l0rL;E~9!ZmmfAtz6+J_QN%EV!VjIIrT&@-Qi_&Xlon%^Rf z4$<>p2w)*MI12zQB9I5b@FUL$Aj-}20I&jc;d1!C1J};m@<;uMm5}`u{F%UagPQ@j zYv6W)%Ugw=;SOSsod7Ij4jlpTZeRzvqI=aIKye`2!Oe!-7A`N{U30Qv7aIE>xRhLc z12+fm6}XgGBrXStOK>SqxCochi3@NkcsL)pU&EzT;VZatxaZ(jgZm|1ZuY-`%gy6i zxVOSR1Gg63({QJ;%AW%mPv8`QVFW${@UyoGodh(PzzG0@2z&~lD}mzx+7UPgKvtTg z0M4*GKLK!%z!3nO2^USd$<$6p)bh+aWLn zfW#gQK=^k9KsF$Q0PJL{fdIA>7yv-F5B)>nEda7Z=m$Xd1bqQ~#>jmD$o{l9fKSpA zK=lG7`^26AjxkaX0J5j-9s=C}$mXysfGdpC1%R+#odF0V)CqvFTO9!i)6^jZ+5-?C zs2u=daM}U@cY(WD*X)2zxe7p7k#7J9(|84du(y{1^x;$luzzzWK64;&q zw35&^0CNd^2w)n4tpFs)EdYiRvl&1S0v`al%;Glz*iYbn0NV*{1h9+11^{~rtPg>8 z08SCJ7QiP2*4T+G?+~H)fD+E_T>!!bt_E;|L90SwB>-W1RscB7pnL$r7cB=M9Mm!Z z!kR4wAl%lH5LgUAA}<0UdN~VWE#14yj1~aZo-NA*(3Ze_0PP6O3xT-+Iui2^08#dt z1Hce78-QrD%>p1AYcm0ey4VZ=qLnrsfT)&D3xTNs5~4Xa1(2v8Oa>t85|aRoVb&7? zj3O`rz-R*FLtq?$am0)TASw-G0L&p~G=P}|Mgb6=f{_43=VJtbJO&L1usA_z7@&m& zh5`_slea@)2!N#w8Vo?RgA9O8#0&x;8b<>Gh)U4_0DBqKAHXgGZvogtpdWyP1o{Fv zNuUpa6E^3c-hf0Ov=@Lc7}gWOSpq#mpgVvw#B>92kw8}f7YK9-fzANV6VnMmTP}zl z0bC=dLkP47aFv*L0J=Dwf7$}-%-Gkg0JsW3F06k8K(vCd01(~d%K$`!_)-X51R%=6 z7XXL~@Oc13nBms|MiKZ5z(@k;Lf}gPy#ADkegS9!8H2L`4l>di0CG?1Gypjo{~Una z9XbU-t{Z&@KrZr}1Tc}QP5_ue;8Ot82^;oXzMfL)a4EF$#TOqpvyvG=O2-0jwly8vxOu{}6zvwr>S+kwIHR%w_WbaW*PwLmZ<>b9>^2`1KBH+ z!=OnaW@3n$06=blj0bRy`HTb5mZ`=9Xh&cSfDSIl*l0isZ=krDokDU|LTf%_-$ZS=p6*^=&Sm_F&giba*~AG16; ziupru%l#ElC-J`rangMmJRRMaK$>)43~q?OfccdE-+@5kCZfO1@^4cACTQ!g1NZqr z2kciMU?%t_=3lzcfwiOiY?ddgMZW;0(*F!dm+sRTkaT|zf@4qp3=~NJPeGD&e}cJ{ z`2WI$Dq0dh7NA1(N0?X{@I%a^bbo+pmG1Wg_bCu3{ZE4a={|wkf$sML_i+#={cW&E zp!*m&6S}Pfw-sg@`deaUq}u|ks3QG0$COG$v%qZ%TBE-S$dT@&m^|rvAT+v-1NV`@ zeK>Ic14H=pWfKQW`16=?!@z|l{JHeQ5`HJDY`_w}XllR`zFhQ%CH#vFhb8>QbZ^Im zOSc}@W4bVezl?63EN?ko7{ZsMa~Q&3L4U2le=B$lIf$=`jR*s3fXwMu58P^?Zu)aU z)pT<})pW5-mkL!4RAgYpR{XHhE4nkV(JOw~=oK{**yt6#kP0Abrib}KQOYO>9&0xd zWdr>Pm}e6u2$-ckOgzle%CRBr4<4c)_6JYUg?YA5>B2mlxG>LloPL;RJ4+Yl+0M|- z3fxQ(HT@Zwa_QoB#(BDt`vO3NiiuF5T6Vb$YNa1Lk!y6p2Z)RDFIqHdS?2lfy1oN- zHk0^WI`jmyrpYaIk&zs zAKjrA0Uzc*9eM#DTW>1#*FE|EY|dz1%DjBRe!^r7(Ag!H%~_G=-NiRE?xx+lfve1I z19WA3(z~YR0R3)e!$;E|#XZODp_a+nVpq+(XQ1xySc}d2!McWh&X}`<^MpuRA8Us%f&4L;Y#`4aE_m4j5r{NcdubudWm^$h`w9*9K0$m`{}%?L-cQ~ z^h1?0iY4rSDpP)_ZeXw5X<84}wJSh);e=LG?Z$B%y3TlLkuTz+Dfc8G1G0hKY*9>; z1Dk)fY~04-V;zuo@Kt6=E2+eRw@)c@WL~fo3bWNOLm2;f3?kz=?pfpBCt4rRzF^ae zuH(gd4^Z%MQt-HyS2!RMrZ`v-;y_gJ5~>m=^=*}+?l2?i8!E+Dy1q=*h^4|fu>TAT z4k@5eLQ9F3-@>!VGaW760yhJd!hvgM+=ii4+&-u3#0B7^aM$96rMkQT17pgx!-uDb zAC8o)erjjq+~T~n8q&unKxF#_0}9y>UkPJ|>G(aF!Rt+qm-`aRfmU0|B&H%UxSmxi z!0;$ctZGKgv!isysQ+~kLB%8HmqT?$QxA#`q`So7!6|nYa|5L?LT8UdkLAsVh|A)q5C&OtvcSHwU(!j||s2x0i;- zlixnHqfF9+Cb)sej%&H1zR^Z)S$~Js?l%F|erbfp)j~YP%#!I$vb@tf^V2+57j4d_ z1!QSrSu<;d&Ip=#r>FfU<~n%zkCO~(5>{|p#foP=ng*lR*X7xD7xKiTjfL~XLvJZ` z{?tg_IGc6OLE*I>^k2ESHls)Ca{Qq?Y^fmwA5rUap7pcr_efbX?Ng7&=-u24`z?C;-&eGF))O7(KFcb5!Gn4W;C6JmOEuD;}QIj1tRmvw|iK-piI`)bUAhjP5ngy=lu7i$1YM?b!IaLW0`qk^p+_)}*PaN~xq@+rulEc{-CtGk z^}j7`&>wajbm`B}7RO6YS)2gHE3$K<@d|!dIaJ7mj$3Wa;#?81jMh(EU~@H$#mnAL zqYfFMmpGo&mK6gBmKag&1prAL>JwHhz@?k4Nmyv^g6Rp^6)6_CTKP+T$_&HX-oZK! zCdI~WTT^zzJsIIpVM1dQ^HgXc5`NcH-qSY{O?KGSq1(}sLRc7dx;Y7ltuat>|hr;v*6NyC_ z6G^`rdVCddCHx9u6!0YcJ`!dBPV3UHw)+KJFQFRvw6Ce)!E!LU)N)} zu=1_f>#D}g*RB7(-pBpI`OhjH$MS5j6;QFlS%1<5(DLJ7@6AXns)kSUKNH0Zbi^clQ)ZVRX&M($2t&67d5?!SL9hUkO)^aFPvHj&KGIRt}lpuyPz;uczd2>sRHvX*O3Dx^SYM zu|f9;>R#47wNVcwfnmO^WwPJbUp5|Od6l7qjg6>_5e#N5tyWsFfPJ@WG})xvV#!#& zNq4hilPv81;&Ct(5Ig(bx9*sEbu+p%rTgx~P(8j`SH-|g-=go({zi!dM~J41z5f`8 zS&h^*<;|uoNO1{|uj$H2n6*{kt|xIoRpythL~1K;UfinhzWF3PZ!6wfA}y9QukO&d zni3y!MF=L_2R_u3&^39Ve5h}=?p{Kn#%72dxUhR)Y*+z)3>rr-Wlu)G=2##aaC@6= zye9&8mz`UhLJN?`6V?>dce`$FT`+sM>xR};Q(}ki!$QI}q!&7?=}!HbWiMH4?%b_k za9AmkmrApJcSXI7^o0A*;_?os^-l|~ZT>HD-vJ&~(S^PDZnAgo-IPs8 zLMm*Q00{&VNa!VO=)GG}iWKP`MZttB3TQy!Al(Wo2#9(Sq$`A`pr}~rARS^0C?NlP z=I$l|@%!}q|L6JTF?XlWoH=vm%sFSyoc`8P#qL!`QrLHnnD8IL67cI7cAfy>o$IVw z|2xN3l~Rs48rvZZF=rle3|3k+h24=?86Iqh&DAOrpjWD*;HEd$V!2Y900HvUv#p2`kZ zNybAG5`%brk}2tg<7HO`P)g)7e7TZo{|Uz^S8*YT3N&{zbv)@vQIhECla5-BBxcHz zX#GjNWnSK$#Im09bo`{Faxg+I@%)l-mv0%YQuHZDf|6v`Jmpv%P_ZHelfwph%AlRZ z6y$Jv;bh6_Yt?Y4a2Mm;70o}+I)sAUI`=WkpIhfXa#_yivT{edD^kjN$0%n7cc3pN znO2;4RE|s<;L-V98SVCuBL+h_ciu77KU^ubKviFnnbYR9X z>>0lzAU6+NVmYT>&aT>s9y}xx9w-;0<1Gi_u-gQg=`n zOq%2wumnQ7@avs8IvHMpJm4rD;3&~Uou>&1))L(m^xQ?q@D@o7&tN>2wbeGjQ=S85 z5x_Hc5=#;*A^<~XPco;Z@M!oMT#pMuhI@AvFlLX9g_VN|JlL87AFD!-ZILeEsN z=B^rM@K27~3OJZ%KRdojxdg%`{n|0xZc#B%FkZ>97>2YBpJ-Tbf;{c{4FqxUFOE*i zm$da4$9SenS-;{KaGi2~MeHH^;#WuI@RAkc5T?35r_kRVv;SQ~-6Km@Q`9eNSm=mi zQh8sY{VJxQ~?G{(187q zWy9cDarUTc28!2$d(3+@c^3yB9|a$iYDeOTLke*0WjXHAIBW4QTREc7Y4SIzy`9Z1A1 zEcwGxkN1l2|FAe!aRX!>8`bYO9Q^|vmf(^OMr!3KO=udu5TH3fSgdWctLx61Jp!~q z)$#IKY?HBf=F!YW4sDn`&>!nB=W;QEDYHGzXm!nLTN)fcxy)`UxwfkCxtZKM{< zZSRlNDmgXGm)oa0K>I_TK4Bt@>#5*RH6|<oND`)nP*5=)KftE*VNxl{{xWn59>ZK?$N*jaz&4@zhuhYsX&5h6gC@mSE z!YFN8wRaV7xP@RW3g**un(d{F@@TArg7S%Z`bBv(R{8g&i{|RmT2+M`cx5Vj_;WP8 z0KfV@Rf@4@scVcj7j<8ZkqtUyWrL})vcaygS~}9E#%f9a)3B`c@E&u0tky|U7hRyB zc&#JyJQ}YJR!>}@{qb6~0|Gj`cRsc2r_q}5+ zaqLpJ=AwFKG^+Ei5BJqZehAtA8HC7LR@;2{0KX}#Rabyl@P3{x(Yl>Sd;G3U^od9N z-gu3b6rj^PF49}&w5R=tYin|fWTgJd@rgDh93k51kfaR?t^v{q{RWF z^gXpIuYHiClnB!!yMAMdvTGD@3^UX`v24j3f zk~N%67EHwP?5Fo=-$W1xRH#pKWP>?wGYJPsL=T*VO`tKoKFKkHQ==z4PTeH}7gNA^ zzqAfB6-BeAg7){FV#zur(!DSR2Nu*bbE+eS2a3(wI?Vc0%Tbf5$p7LcdT=U^;1kzz z)=X|I>^Vmbx{g3H&fC1&utQ-3&9<>%!7g=<{s0Id_PfT^3Q*7OpgmbyygKI?eN|t3mqkOjIb3k8NHla} zg&wJXwu3rG+T+!8$LVSVtp(@%h{MNm-t~!)hBVY_CFEU^i`YNY)2{f$d|1S}S7>`f ztq+ey9`5RAX)(%Lx-UyB6T>b}Y`kaNzyw1uDe>&M%~eP941 z+iBZdMg;d}79!M}mx_7=fmUP!UOK^EdnI@VPb5&^qy0n?PHPN0|Kb%D8nrM$W z7EA&L#naWMT1DF0RCCaiO|>}3+Jdd}!0(GqQNJmmi%qpU=t22r|Fs8Wn`yly8k9og z1mZf|41kq0fVZr<7KIFEb1k8)l>x|wbcng^DRzjt zK;Tps__~^!zckkd@DBHAOKqg$_~J4;8$_=5T6y}sy%tK&*4pPzu0w$w-FssaooNli zkIli^Mmz5xvCLk!ttPdDmD*~%93L_$BCUGj+gTu!drZT2T79g|r`u@>IJmytPRj~u z$D0e@fq<-0 zCoR&s{-+`d5%uV#H7NHFRu66M1mJ9;%AK|9J~SAoWI_z2MpNrPTF{4Gv<`td2`1hJJ+yZe_4`0t+zYr?!<^eqdrU!z-yhLhC=}U8i&u8i zPfLtQD(H-DN{|UYSpfkl*-vYUCvv1dgvMLma>N)$dL_>&e7I~Gf=`3!&wL* z<-e|c%F5MBqXYNnYGd&^n5(^o&(jmM1$dx4YNGa`s;s2_leLP?R)HT*R;PjMC4e4_ zD^Q+Bas!!~XL4GuFD+S}9O!{qqD}A|a2QR4S%tS(;k!MP6-r;MCDEf(wE0S=d2I@M zs2rf*p2bY8q>j_HipolJ>@=;tf{yQgPK(Ex2Mf{*7d*^H9Y9;EcbQ`VF7CJr=RL1^ zbfn{SWeDtgTd(iP@wZH+6R#t<*1*j}w zgshM9ri19<4b$nGC)h$C7MClomFBn8wPOnE{b;7P5FPFM0%q+1je9}c7cWPiFHaPx z8&}=fq64*}oHYd0IN?Pt6Qw_V5wBlZy&5cg<*XM3<3St?6xS*7DnyuDOuv37r!?E4Cwx1w=EmM2i$ z8L$Vzf0R@T`!EQquBP18cnf`cGxk6ShLLSuti6XSM=sHZ{I_Ymy+lr9%u>xGO|iN^ zrx6gibBoqf${Av}X^qtHKc{ZnGrc-dZxR&LYA zMO)IEbdX=a6iMMa-l9g^H7T%393fzMxLxZH;n7#ywTVg%^MM_pbX?sFpJ?5a?#Xyy zzmkVbX`T3jkLzCc3#EOkMY{98VaXMOxa81HplJjd%X*SGAjLHP^`D;R5J$PKV^IL5FxTJav&+QXDo z@#bwuzA82wqITO_!yHt}!7Dx9HHDZ&SsaCf#;}$E6REc64Bmp>RvE8j6jD)R*69bBhHm|5RyK}sph zDz`RNE?6{~ta;f?kAA0RI@WJyt6ZA@o%UF%LqGHC;Y^@FoGE`Zg?z6ybeyv?b^2cW zUcJ7V(tgmkl{)>4KQoS%oH=g`*^eOedcYnvwmqy>a2{2B#>Pjj!*)#W4S5~~0I)y} zUZAac3H#69KirV(xYS?Q@n_WPh?Wj1tfk*-b&5q)CG}gUv7q7O4tN44S@Ei4zy#R` zVY`IxY!sw~@O24XP`uS)xC3dc&UzIV=n1Qxu)DJ&#A zA#om~r6(v3S=~pqs2m--6$ckLP#nJf6!vk!+4;%FWzWcxp)EbmI2fV9=yZf991jiR zF{U_V50}|FGc30F-6dH!cv#p7xbcCBpg%`TPgopuCc;tyg(FGGB>Lc}7E>Rif_W8E zjW}qSef<@%A1j3zPk2jDXdDv5-T1(ethmnbxI{t5F)gLN)pPC&gTbnsLqRP)Ay~qI z5RZ&w3@P3M7=i%?SRnhCA9vXexBv=nLAl4Ym>g){REDxL#siq8mb^pAj@qoAKuqKBD2%V~=wvK= zT!9TXJB7f(ll|IwT;3n7;RVSd08nyxp+H0+qg(OFAsL`U;CrKrb*8dItTSa8m1w%S zbKD)=PK>;}5AdB4VS~k^>_a5?p|tD+RXf30%hM5(C;)#R9yEs-AOoJ~r4+EqQ_8Jl zZ2-cNzDYxZp6E~;agjuzFpRcKv1&Df7akCn2PR>~m2p9&v$9opM?l$%jWkiiXj$17 z>cz(Epxr05GCADlkYXgVkO@6Gw$0w!6OK+o-I2p<5#B^v0>KzPtjj@-P zF9yM*a!Qb}87MC?4_=n!k)bcX7GxzJ2bg&oCwCb50psbBIF6Rs=frUpR!@mK8iBr( z8v%OCMuJ+hO~0@*(@!V0($RWiDAp8mgbu{}RCrN!AeJP?Lhe&iY|-$PmY9W=f;@rz z?1GI)gPIL=L4fvDvDvU9(C=oI${ksrbe!OhAZ!;hU|ldry&+WboiSDa{Csy zZ>S)~5^H1cMp~XEhaY$m0;MPz%gN-SyjtVg+RwJ?sCKw=k+@3XJkEA154-7e( z(ciQmxlyGbuU*VBmPR%f6Uybu=m(M_+|d|tjxxku3UkhydaF&QoRUaIVpVX3pbq{9 zgYIk)vx<5KdSH;w+IL{0+tHc<2M%BipvoYT#FGs2!JRn#c+qPo}ZT=pdr9*K+|8W#242C+be!JuKwq5b)}a2ATuq zeTc-$mQqt6#hQ9Q(D=3l_9#QD>Lo&h9Qn&zvuRC*TrVCboFGbgai`=Q46i`w}~E#NNK zENHjajsez#vK|1o#tfRv(<5Ogwe<`(OIsghY3rjbZGDu~)>Heln!CC#b@HX$5yd)r zOsM3({5p9VkSckZLa&_FqH}ng%|z!l!BoN zwR12EGpaCo31Zp=9K)XL-74Sm@~sm&83X)fEQmL@u+R@WZr54@SULm;51~7IhN%6Zz42n6exnXgRNn-yQodzT6EMR`@-GAL#bBk*^644 zhAY|bf=`WXG2;t3WMC1eXucF*z)F#39I(xC4Ko{GLXIRffi>bA@F0)V2U0}C`x8j- zaVFN!Ue+=pX~fM4IA*n?@-IVQQb_6*90Lmp&zxj{nq$TS(3sR_+PVkYa$c#)UyG z0U8U-VGhV{!Tuio{PntaG_bxz3BMhaOa+)ZtJHZx0l`9pk1;_&d@IhU8_WH3JN@ye z=7~JM3#WgG9$i`9)BH1pf11^9Yi(5Z*Ij0gB2uJv-rK5Z=@WjiEY~mmU}XY?A5Oc7 zWo1o8yO;>M2aIOgP@!E^g770TKs1vwmHvUEP7EK@xGyYy;od#`~kSgmU0m~&8mDxM;B^Jqt zLU0WWK31h5g`;SRQ?Pz*f-d4v|6*OF`V=ecr6``e<8=K*Kj`9O*0S3S{NpV6urxzk zxyKm$$NXI(Q`h6CtQk+<=lcfaU4tYXB^^#t9c|TdiUe;_*Ay!^{-Ukot{s-mb8nCP zdn;kc!?1KgglaUd#t9|IMg+neF(j`muAjM1WFaYz_s9A^0>77BylRZm`(8 z43iyigp0+n%%Ll;dNeCoR8#8Fj$knxnePjcWj+nTR9&YVA>#F7kS`Bqkeho#MN>sx zvyQ^TL_&oF@8Q6l4AjnD=lgNaAG6H=WBq&7B}}xhXW>o(K*<+yPcum8qm&Q2cQaG8zHLJS_9>F2S#?+ zYAI2&EoTl1Am>8`lyFee;X-JD&lF#VVd5D`nGqrd93eY#m5+;iG_Tu@|66+O{?5Q_ z9y;TJMU33t(H)QA-*$OX7&q{^8}bUMo%_WRxbEY(&9ow*3G^F%%IzwvZdKhf_IDrX0Q@%R5N2W1NOD zb2d)HPaU)qHUT-lf}o(h7C8|=Ssup*14aGK13WnqFy4=!$?6)#GT~NJ)c4_z9$@m% zimxc+FHe(o=?Qi5n&Sv*#3?I>IMAEJWE?3BxjR$PN8YL}kox<>MKG7F=->q0Wb<_t z?Qq9KN=yb~PzN^Kl6g?r?iT(Sx0;h;?@-Im7eOSot7T`IHBcuHljOoC8dOUS!Uwd3 zc@)F4qKE)BO+g`umw?gn5H)axGLSUDEg>rdxX>u4Kn5~pp>!)-eIJsj8C=6BP-93G zks0?P6kJr{C4}S%WZG$j0?emNi}w`e3$tpBxT>mKU!bz_;w5OU*Tsu)MLoX3+?9Z^ za?O0WteD5&pWOl)wQFW296eas@?<&jZ5Wd%yO$M>cDUXf;L4?5NunK6*CvU|_#8>X zmQbJU<;6wbb_&XiVbIL>tRPA&rSB>W&|_}FSG-tJe2AjWlEnyoK1vq%;}e!5_T!%a zu@sRKmZ8d(>|Hf^E3SjHA*i%HNUbDt?=l!#dq9nrXJly)mSKtR57Ws?BGYm6B1)H{ zypf_ZHLom&bN@C}7M;|a7bzrFv|>HLL#aaA2T8TUYpJ3IM_x`94Qp8Hg%xbjoTvHB zR2A9a5;}`-M~VbG7GMvgC)2RMO{EvpL>l+LIJF>6 zgsRhiAthZ@2%L)gVtAb8sbjj3mj^J;bef+o%JHqCbkQdJp1Kb22fmXzwqaYsLUR2NCIe-S+1inOM>kXAdzBe_}~+g1i8 zW{4Q{6*b@rN~Q>>p&26DSEny#Q-;vQc?MpLE1ULZh}yE|NNeOM#1>g4V00i;c>KW5 z$`I)|%Hi-b-W}k2Q=#D_MU4GZTzW}=N<>oHIDq|$8baQylen<7h8UJGdzu#-6p#_i zBJ%lZUcM}-vQ5&&X_Q)15Lz@pttombK8`F8T%R=i04vCN1C>@*Z4g^z>sed8p>(zQ z9ve*O6)!f-JZxZ`-*rgA58TGXHmP_m+&j!ak!G19D|iEjaZha|@h*U!mGVI@#D{jJ zXh>br)YlDvQ5=S>a-Y-Qy5co;_97Zq4||gzP8;iq{*D!k0MbZ0+8FrLzP6`k3t%f2Rh>mxyM84JDtQSU5~mcuiXVsj;WK%3pQY%UIoL^ncZYuPXbDK@t1SKVc-IjjvD z&rxM?yh^a5(tS}0h>EwOl6_HdA>xj+qTIfyI7G!-QMe4?9vEZ&K7fk>_GDBHsfjz< zisOp}vax8ymA2xx`r}F?&amQ+qaLUA^BjI^{8RDH*Z3!Iw7i|U9kpyUzL8j$$@5lI zEsz+5EYJx7kG3;{z^=pwY3g;`An!ERPQa)}wKoEDpHIELA|v(lMP3#L%EN;#&9;Bh z9ccdPqGB}Pw1{?iMK8wRirL^Am5$V^u^5E~yQQ&+QD2?M_>@B3y9pubUq}<|9r>`v z!x5q@&1!;af?ZM*QPy#w1eQ6Q;sTE!2P-!f4U|RHzp3b=o>@d&nu_|ICbhS&W}=aL zeGzqPCZq|PKQe(nZie10ren=OJr+|~b9s7b)m*msRCB>TYd&g@v_iVrT-24;d633&uq0dnT$5U0Pb{R3E#!&krxv0SLe*P} zEPO_^6t7DIAeDJV6_c+*g~q< zMkL5Xo!rVW#HG}+jd%c;5#Mej28C>$C#T-d6mI=IN@^=s@LYV>Ry>YXU#p$i%BI1; zw-bYW(^s8dZZEPT9NFqLPn`4?5$o2b;KGt)3SDY1+|6zQye#Sky#q6(de~fQ4bDZ@ zEgdeRxQmKR?f}HKKmvvX8ef$C(>C07i#m4@EtOlexC6M2KWIk>F*w4>ZECVjNC>AO zyK@RP>3DaW1quX+SR0aO1;ZqZ@S(w1q_|DUdmz_hcG7C|osP22-#W@R<2s2adGK>P zi3Z_(-B@zE@ZW%{G~5V2-AOzg&X;+;xu_=rHO0f_!5`GIvzQJ8%Ojmd20me3L<=hy z)<1ILK_YiNat-Vv-t;dKZ#Pkf?pPuq(+PwvU!$>IMUb+TrgjxiDa%adKG90Sx6S=P zoy5cQydD>?Yuxq3F(Jiv01==T9Dz{&Jeu}^Xs=|OhaV7iP>fJ4l^Q;TjrSFL;2}}B zU52|VL&(9CVj+kmD)60a9lGER5cJ1w8|QJjmhez{CCQA%S@`IyTYTQ}hr~2c3U@aV z$18j3Bcg`Ava2g?epp16VdfB9U_C{$Sjk*ZQEje`^z*}_%AIBF(i7d}x-+|p)P!Y= zeMHI{>dXEh20Cl;JhX%d*lRulkx4%FctkYtwZ9lkpuwY(R*ZR6RF?;EJJ#OnM={4s z=&MHsn^wkj7hNUA@OKG>)iS}G*j+B=RozA6y)&HbE?D9f);PnVumwEz zke(uny9DZQmz2zcC&o6vr>Ln6r_Xz0o>$TNo}xRi-B!IYH$&*lUSb>iJNGeBK5Es% zt=Lce9Iw?q*HAj}nCO*oXrZ(t*L|3^&mRQ1KUqladyDasPV~m;_t350A{LcK_Yqwr z-Xx)}A`p)2Biisf+S5lQ^7nEdNfyKVitdhmuYzNbq@Y1q0CW3_6t1(F6WQELM9`JK zqAM3`+E1*hcYQ%4Yainq!fCd`1-=U`IMktIR~Gm#uvjSaqd$nGqYLmJh4>ovo1#BX zA;7e!2Z+?b3}`xDp_Kzf|CSlhVXN-&0noz8yT~y0GXPraF7mGn?{KDZ$pVMp=>D`n zh?ag>NRJK#6}`TY#2`_bM^s~wXdK%WnuTl|s|`yoGujL7v^qC;&$n zn1G7hgIPm>#_!OIA)g_h4G%*7G_vJr<`Hp3+rmLANTwmZ_#Os^%wu)wADF7 z*8R7|^`hd|;=^W-(Se!hWp&D55ECwE1D#qhLez@=`&#MZ2+@J>zcm;s+Nx^{XvRp3 zL-8MMdb8VxtWiagZhAOP1koF##N(wv3QB-|nca(v4errGUf=SgdmQdGOdc)P#jXb_ zh8r1Nr0FD$g#a@a#`Bu*I7Z~&kTj&sL>Fn;PRq59KV)8!xKgLnb~A zdpXO*PmC9FKGCv_VrX9HIS745L@Tu^`5Ez9-K|oFoC`6LPr{5d2n(3mNuDKN#xVrH z!63*xvRsKzxSXCN64TFa0)NMHE?k+-^0N2}KVXXW@(yel;NNjK142c-L*dIp6Hp45 z6<*5$h0mhzazy2*Lh0)OMhezD8&=Ljip!PKn&!E}om9x&j|P{09?dcJ*N;1B*7X#e~_twc*)!~_S%ClKa| zWSTQkT)w*rZpFoMkkKiwv?NWocX+1h{2>x7ccpc za+y>(aOF1WJ3gN-Ch#WNX@*E{kT0>41-_Qr;~e8Buo9+fezZJ}p9l!FDIMsbbw6U7 zGeF=QQQ-{nI1>oz7-{58@Krz4;+diw;>;T}g{p9(yj2$dBKC|-N_i36(q6OGi((Pm zmY&TMe=1)3aTb>U4SIOCc-dWI$rk^_4(q?#X-2#x9>nz<8ZrmmTs?Yyj(8RJ(9P$H zmI2BJn)R~qsGksh@Ukd&2&%F^0@n|U9D=IeV73eND-dH435)a6EILuJDCgL!|920Sfzn~9vb&-g6_y|JqV)3ha7;S-39HM1Qz=amlrX}K0eBzgi_(nxl zac@wGRbg>e*X7Da1x4zsJKLitm-^IKHgK4WmV#HWL3@^pCeXr#E)%bzopsBAIQjJR zGBGe>Q@A4lnjAa4g|HcPIha~1q-+rpWo>LO1&a6=WhCE>0^J2&Nq{wc0PTK7lvO^Z z^RI|HQZcBqx&w9;Qgw-A6m%|d{mM24TH9cqn!GAJ@`%Bkk&ucazTM6k&LS0=XY#9} zPM336x58x3t0aObGKb>{Z3<0hAWK?!-%>kCy(S<5y@9ZHZMk_1@6pR!u@g!-yBLh1 z>YNF-EEN2j6!}@J<%8EiNs*5=P4IrNDjlHBr^&E5`Pp zMt1#i_mSsK@jToYVnXxDwE~jMMXw7zY{lMfZ1)EPun>2kD<&v}K73ugmUH-j-j8g~ z>_FI-S*<<*g=2Pk_;;Owy+1L;GG`8A1FUhL;D_LRQh^37)C6hh2 z15N;ymxgW_C+v5!VQGCkbP|jil|);R<1g9E-;rIe3CvMRhg-snReW`YsA$RJt$CEP zcuDJc_8tcvma~VU11=6{b`Ew>jNS#yA4ius53UYFOYOCJKidZa0*kC%PmtT$(WAhQ z4IMBz8J_>LtAV({fCg!uxVM0nSK%mIb~SnVo4QXhO4F5Rgy`{qGk5>}GJL^Wy8V`T z9~!?^dv^Ah-};=hDb`Mb&CY4{n32V_t~-%Nq$V$Uq5T4ok$4 zb*tR-P>g9`m7bL+{Y!BGvi{BRk?$q)0cQrGFkn6 zttjm$tL~9{Jc;+jXwa)?-V>E8XQ2~8zzDbGf8fH|*V7tq1IWpLc<1E4XPJlI6Mdi< zGwZ%DR?7`fV#uE#h)zl^>iD5}2WhuH6aflu@v7^^X$9AF&2t}tI4XlJGx$my#Z|>q zyxp<7+q>ptpQszA4^nyuU0uCRkk(H=NXIwfD4kC?HbI+TNCP&Dq4<2aS!DA@RAvi! z&;4etE#eIo_8mvIVSlQ9PJ$!32psUm!kbJ4J^%(zV1N{UCxa65Zird)?Kqu35mO@M ziHA22#QQz7(4|jAJhx|j3IhK&wf_`qr5fhQPsJw^Ve0G>tsE91qXlF1GPHb`rR0&| z*}Y3hPmmG$us)e$KAexj&Z&IR0*SY|rqFY{MHyv-xnj3ytpb3*?iI`UX3^XOkX1cP zXAX$YanB+8eRBNjKt^Bv*6~h(cH7>*fsk7 ztT=*(zBwnpLTJ@_;Quu`avm~^Yi5TFkS{|V`ou-(Q~#i%2_iPGLV zfH{3@a}0nuY5?X%8W+Ln3JBN3`gCwh_UvAnsGTn_CNT zbinwo{v;m4r`6BmWwdL zDfqm4Q;g-%Ejd4Vx5QM`Tl!D&920|AZbQ#&hnXIw-h%EjLDAbG?;u5Aj!%TDe-B_4 zsCqFPE(aQ_NXrRC0?H@;hn#$e6_Tfb6ESke+bpj0ix+8u)~1dS`t4 zXnH0-3pD)%3Xc;yJ0O7PUOyUgVHU+)7CMXKgs!hf_Vv169-pJSem_1n4gD#6)*5;x zD>9Y}4ZRkAS9R+7D0R)L??GsLkSujBNbinNi(vgzAX`WXYRsd}A^MKQk_dJ;A{`1) z^c;FURBuElL-qPtg=Jm3iO)AK{gqZ48`G=cS#SY`1)~-gy0J6B6BOtaJQ;yd$g^6q z8Wd)?F@phSf_+zk>wqC4SieB#cxh9ZUMcWFSP)gBU&Hj@(8UYk`XH=_-DULhG_I81 zTHZ&*og;t-k~{$C>r(o7z1H;+YJO&=9tG5(aQgC zSeYM`(?b>Y`j@mbNpG(%I%JkEua8!7f|yxRucvN1M0+agi7H@oxgxr|ftn;^5c_FW zvc49u>7Js`MdWWOda8Q(kXf#h9s{6IgH-Gzg_M`7_XjEbBULZWq%gdyUQwAzb@8d= zqk9I!|G0t)!1n;YOdR1q!SGSWPkc#R`MVX){io7`s`@od$LusL>}|9wO&_duryA+{ z0O+}wrRxqQ4VkdADJzx>u`|u2R)mi53X=$)_ZRS*FU1zOnv3Q zEb>qdJ=L#2wlkMdtUvaPzkT{+JBt{hKQ@}`U047Mo`R*Wp*8jO%x3PcsW)NOZfGsN zGcy;xYw69PEPbbz9$TM}r!bEjmWaj8Cov$mt1DKzf};os|B5Bs09H1r1!H5w2VCMV ziSR14OG<6My079$YE>IZSxC9H_427d&GV_bxz{PS^Omkto(T{<;Sb{XxAW*=ZA`#m zO7z-GoA=ex+el95#0Wjc+*B6?5X$XI_4VqIVSZR&Z|1Ms0!UHSet`I@mHFov>_8$7FfzD_2kcN6pf;`PL+s*u$oBcoF`zxTpUL~kWLw%!CI4?`@iv0Iw z>Fx1(GfRIYpexvZLJy;Om=71VtS#G-j63hN^cCW z4(W}V=mo-|Tgln7TTQd|K2qNWJ5R~q-1PTmbG9DsI|W!N>Ar5B&(`DI7>PF|F@(tz zG~_G>%?I(7l~{vGYK)asNG~+jS60lItpA<$v(31_O@GZjo9OIiWI_|HUySheCVJh} z4U45ggC8N+FP1ayAMhGWIVcCbVlgA+gGB?D57X>ws!Lh$w@vjQ{W@@!aRfT>{mt}s zoO@z(fC=qgY_3=H&$ncg|0^oBXrYhr_s}WkM!l@9Muxpcdg&Q5Iju^ejOS`SRT*Bx~j7V$d49ra7ochH*IaIKsx zeU3-cvevq$f0D=6yEf+!&R@X4J;qjZg6M_{vZH?81#zwN1%ioyB$-7 z$K~pm5pdUu<&oG?_wbocK4_c>yH2?DkmZ$Ne%#n9?@yL`>NpSbR4CDh{~x@=y%s%G6QJ2s&K^!<>)JyoyS;sO1%4TT&rh)5 zk&rsWrsYiW#B!zacC%}4XTW5V-d4D;qcNQq$vzWVNF;nSi-=|Rf zy68h*ML?SSAlTG_r-xp-Pp?-Z@wdA6uyD2~vtD{A%GMy+z5+BAaAGEkPvCUmetqu0 z8b(l8IgHH@=%2PJfKoC}2Dh|? zvipE9?n;CE=%q6N8$2LwIZWhdCqm^8@*iyw$n1ly=M(6+u|D&uOkcf8jO+uR_73!3 zTD=V`2v1Lg=m~6EPxsYh{vB1>+E*V9vz?m#^s#r*2-?(7|LWfnoXwBxk1#wE`s?%R zEL|h}mIT)W>CWtP8WV6B|AKNuL1T%R?GOy}El&p)vP{8KJg!A_slVRDF%`vOj#}`z z?x6<;=%HM%G~XRJKyRr|T|>JD=pU6@f#qPG814LVdsi%?mj;5}LTgZKpS{#rUPNKa7SG_MTOVF9zktTO~W*uNX|jG=l>h%t5y)sHH7 zLvZzQ{aE^pmwX6YEUzgcS(BohJ5p%#2y08iCj2mO6%9w~)%ZJnBo0u8L?iXbA}ymm zkVXkMJNqznZKu#tdJK>xWfWMtuGDT62Gf^j%Sm(ei4N?;6tk^LPg^>p!F4R+XD({Rw)4ol>6!ivy|1lln9G$amtd zKMANww_`6_QStQsSb4fda#^bJlpHF4$I}x}>C!9NQ#khBq(7h1*Pz7er}YU|!OjNy z06A&^?oyIB&4{D7#_8<;OjcB3yq@B3V9I%sV7O7 zdUo$&=+`nR^#y%&+*&S@YlkG?ho3B{2Icmm=8s?aOU;#D#1VWp1?A~&QS(E2vgQx+ z?yT87ou}(;WpZT}rgpU%HCwOD2MV1aVd_3de-3fy=jdg9aSy4B=2IWir@(mVBI#1t zCk+dh&(}lD4)gV^QvB#$p!YF0Vzq_26=)C0y#O^}{Ty7NcM0V92pYOruf$QvS{eSY zbZH_j17#NJj}@i7yGXBhR|(nPyNls_waH?=0(>M6Tx=0tf5Nu*cVIu7`_J~{|22cT zc?m;hig{s~K2CudLcdq_Lm_L{NkcD%*|E3QQOno#ZV+3)`5F$d5D&I~LqCb*Qq?#0 zYEX#wcoVVPC~&!6JpwXAXoK^l$Pg48^a_Wp*30!_74WXI6@kCe16)&7H@`;aF<99H z`Jxp&nNBR%E0#M9#W*uYC2#SuvYg{e`V6rjUR}Jv*kNa_k9PPEDRTE`jWatmVKxls zkHafv9g=&=4#9PgqT1MxrhUcAJ8M%5d~QPby<AG$Oh|EqYz(2lQ? z<1kyktxpS7mYZL!*8hM%KXd;&EY85G0DcUu*#k*PwGZ@j%1Sf#Lw&!)e?fTdyh-oK>dv9TaA=sfNl)O&)tmILzR1d9*>I(R1D)Nw1`>LCsFVAs7HTBWh|PK| z>qTGKjJbqbVdG{!L{SFNo-H`n7Sio4SgC8wVOw=~pz^Uf>r+rj$L5#Ny%6r6+|`fo z(eE?cPxw?#6$YS3SZm!3Omttdh07a6`!xa!Wgcb&ad@@_Wyi0!2JDN z{Y6#-Jomj`$&T;)NA+F2X3g=(K|dYVEe0NO75edn-dvrqo6=6|w@O*p1NH$RP-)eJ zKBOETtk|Q+lz>rr%KA~~OBCkpQ~E7MUhA`a&rc*eqc;!Y3REuX-S-k*ID^%1!7!z$ zRJ$K_7>VEBN8#u6^7ah4CVb_LUX2Ex(}N^8uh%s8j-!`wZ1UQYx; zdip%@FN5Zv*ZVn_`I$RZXI#KIu75|JFX)X~@iG4b79)4F;U#?_%Sqn8tRH5FrIWAd zXG%5m@(AIZBd9J`oGZqAC7;G!)l<~DyUpcS^#~@Gvwqh5mKb;ys`QI)nB9NETKA>; z23O5QN-|Ga=U??|_kN?M#MWK%=L)~Tdm5A@l09AalkZ2tpS~Y!*7_KMX+?ah%tNbx z)62PUp5=uOs|veM0kt07v=`gz`~1!QnbL4GqGcXKif=p~_E&b!-_E}yqwJX3oA~Q@ z|EbZfAMJn?T#t4h;L&lb;6kDb^%T!N+j2+neSskMD~o(R3-z0TOX%?qP}^J zQJ*ed0}7O-kn4IZa0OQ(`PH`oR>*=rCu;7pW`pbcdy0{dL1Jqcus{F(cRgQyW4F2E z51n}0E<229&Fi!D{OL(0sBcqn#_3P#}gP5sq`|GZL{-qMFEJ1F!|{mHBh zTnLiOobAQgK(mVN%iSezIHcJ2?!IHy@9+n)>NoDDoqx(zPyKG|Y`!}0wq6eCzTq|w z;e~VEMv}5|Zc}5Zk}>xK<8h3jjAA5}#IZ>0ROzkZ`^v!wxPzr(T8uBUj_+GM0soLB zy{#CglKA2&HVL;}J>RyV-F4c|k%X+og! zaH_PP!(?&4p#88U%RVbQ8Cf&}`0*DGqlRQMBx!HpG|JMjOL`#PEL5E|K{J|a9dIPK zd3RDrVPs&LlPZjsN*uKjhPJ7K)1j63{380VHA&q1oD z8xc`2ekmzdf-f(uYHVGt&J;wyeF1B9OI7T4#(5WPGcgNoA@AO zL+v;g7TCRc&}YS4Kd0emp!Jho*M?d@vC+ElvNqts#~<`0B-n@oNi832wD4`qUHMw$ z&S0Yn@4i7Hh{v4BZuAc^nyY^vqW40KMn#d>tXpwp=TPGX$sUAL&L%8Ir^}ER^dwSM zaT%>M4!!@MjzQiz{^XVZAHbe>T*fs82k$~Q4Q}DhOpM0M=@3#tu(N@FE^WLWU7RV66IfHvW%B9$XrrC+37Ujl zB?w*^f?|y90A(PxPcY&jw;h;Z{Fdq?0{$1Hd_;h&XJ*nz1VFeX5tvcNSevkZkHn+0 z)^pC^SfSGVqBGwTc&MzwgyEU8Mp^8GOUfDpv3)AECCP|Yuk4|YiC~x-xQ%iQ%Lr{#?a088@<#xv}ixpgueHV!Lq2vRB#wtclWcZmsxN@9fq*B+a zMs1&i(Og_Yf!7iU|2kyCFy-T_#?#1kDbq-zZfR)1_j^SeS~*CcrWp^T>BMxTyh|<9 zjV4wr$@F2m!KdBx=?06|(a$#UhrOznahI3p<5-rs=I-zbx_4AF%K6+p2ZEQHP{m*; z&2p60sv9Zj_QTbUGVE6ws?PaTtqPC_HhImWE~+ z<>cKh)jJKuMsdAMOEV1C%>yF6?*$BY%?dcQLnrFhFtD4^D>V#0h0E?eRTEnq>ZoZ{ z09Qe_zt)>}uQ14D!QO95}z`N_nny%I{>LRjIT^ZTBu8bUB z7m){PWnH5?iU-v*4x>M3>LCkmwAD8_LYchcHcK%|4Tzm?H1!2;O<9Dj!L$PclDBj}stLIIP~8VI%t(#wd7Wd(tcHNpc` zIIgi>2CGF>y4uSa6Sqy}p~>OlYFj$9bjfOMpdR+Y+{XZe>B#HC!-sGyG#(I1{l*z!+C zWwGWUGZ7(-im!EJjL=N^T*U-hQbL%3%0~DDpVY85mSwpLhM>w+)kaFoM543S4rRI%3>Hfn-jG zpzXU$K!?Q1lsMAxi0(G$52_+^sO?DON%V8)NYGC~l}8ydH3DH;WVaC44LDjRMMdUB zuCM_1_~=!bz2mnTrKV5Ns8L1*pCQrmQN|M(WZBVj3+Xl*G~~LuVKg(b8))ko!xIAw zICW7!ik0%+MRBDuCe1S?z&@raKy zuqiEw39IW-&#Vc?%1En`HEartl$HENQm2W=xraY?*jWxK{EIRGixP{GFIljKhVM!R z-**aN&1L}Bf@`N@kqiG{_GIA#CiufR=^-Y94o)>5Qqn2)StIVjbYEG#*#QsB(5_-B zvsXo_=w-PouKlE_Sbef=x+mC+yS8wp&Xxxj%(+B}^pR_2hexJHwd`(M`YbkVHw8~K z%D3c>C!;DSzZiqFGEW;{ox>kY+H+hHI)c0YOdaqi2%7Ccw9OL?%SK#3@wHE#rx__# znxGEU*eIJH_kyYqYnRCn-n2)V>-7}1Z);U}ECM1U9X$-Ve${mjT^R#h> zkrFA7*6>Ls)4XNiHPG&APruJFD%IJ`r*7R_#Y)0Y-awkMVjm-cgE$Z!_JL@3N4XV!-^AtgNU>zihqe1anKfX&ls zMxIeEWEDwi50X-BZxZdzGsYsR=`15N4hcI3uO946m2vQNmJ(+5AIK*iSvy6k@OuW%`1`g!hDJ+ z2pXo-QUYYAnWg6&4OQhix^IE;aL6PJc)-Lo+k_LeWdTSTYvaP);mv~sS;n9wy1cxL zu}#Gv3ydSmbLQcNI6zhR6~*4oMHxa~hqYC)fddo*h(G&G`@$`M4Q)Oz84Op zHFPeb1gTKG=f9x(uYy3%G4ozEo>PKu`n<|{3vO>W%fD`XqA1ho!W+g{fWy`|jmc`Y z$=q4FUHTO-EKg;EC0P=9Si?XpZ4HcOK*WlSX5?#Z^S+U?h+H7()^VS=YC=j(?*7?AC zY%@pb<@JE#5xUHuAISR=`0*oVkB06FFQX=ka8J9{OHXC8}CZ6(Dz|!Fq z+bw@SZY{<3n?Go^cG(|9(wURAXtUAa|F(iuYP1F2c!&F%Nz6Lp6Clh*FrXCxST8+U*Ofyizcjo)Y7HgCOa zsEYEB?pnabiZ-*?mvZ_p`mYt!= zpBpXf&G*MyOYkLs&}wVCKWMcz$sa@oH%^l{U?hZ;wEM~5h?hJJzP@|vsF57b7uuy; zZ$I?2DB&1H6E!I7*u9g-9>dO2gEky9tn2Xd`uj0DasvATTz?%0M_EY6j$SB>hJzeoev0QNs;WJR9Yn#A3`MRQv#C zoigIgb3cOJ`QMxP=Dcj;+IfRtCF_3yllhzZ`~~Ard#iJJlm-XQaH$!*&d=FMdq|E2 zCoN+Smk8u3cxMQ*j;)Y&*l?_Zg$*CeY~I%{(ic~Z3?C*(BL-+6fzPr{)HB|m624}W zrT2};0>WeJ-sfL1J6|<+2jXCv@SE|Q5(s85NTuUX=y6p2nlZNgG!($04vLqvIML#l z87LVC7&<-=+KO*ADpw92d){r6<@1vWJ0U*D*YB(`MVL5=_@MVZ&IAAoOU)! z3CQt6XoTe^J5mvBmvpCq17Db81Nh5)sd*A5wn0qx1iUMF%e02}?^isLg+jKFvY|Fr zwbLu_8xc9dct%SNhR^UTNM#poc09A%EEqOBcGnS{t>kfkL_e=O#;c87m5t+7?g86m zD0A#i@6RaW3^Jr}g_%c`z0I#Bu?Q*mPy2AM7z1tN`ia|ZU^Q8njdW!=cLFCm02nSR zazL}7TUI;>=&}xkY#wO3;X4CZtKnq2r3OcO<%(5-67`;}} zEcZ_LMvwAFkA}+|$aioeL>DY?#a>%GEH@Und4G9!JA)Bj7xdCPtHuWLQ7X5v^3fZ96gCZi1qu=+dPF!3Jkt) zZTG(Q-sl0|6f0@(Ec`auzZKd73PR5K`!`zL!_b}sLtJ>20>EFb%C{$qBbF!};Vq(G z{vRmL_CmY^0$F*Lv(FmF!{UE#DwyGj#Pdjj>}rA67r(WkdIMSqv(!Qj3A8x^0_|ux zP+shRvBxABN#9}wvZITd6U!aHxx2VL51a=&+wfdQadx@pxAK~|vT`x>s;D|n&&hRj z`VD`zn6W$3bJIEbH-9pw2inEuSV-z9Z~X8v-q7Lbaynni`9`|QFk0dUKe{j9He&Dh zKBokzl_}7$Nn9Ow1T}F(?QY-3z+{@spTq(jKn{DJ_bw7?mD6}P#027FQBLe!z!8XZ zRBCer3W$IDCSM}WylH64_vYN2kozfr(*9e}IR9zB^rul(Rc_7Q?tHY=O%?kwWOWJ{ z5{*fK>z0|JID?enOZ)8TVQ%hLoAbpN%r>g?F;(>IIVP>~&=GxTUx2e2B?LMvCim>! zt8bsjs#mY`SfBJ-efwtis@}6!ufElL*X)hh-qkW5>s7saW}VvUGzfE7RDt`&HD>*&kT}JfjIdb%fvF;8dh7KD#vge?Y z6dLHP@sHcNbKdFuEN6w{_R2JJmZPsKIa|{7M$RnS-^f|Ve8B7cHo%-#**RPd=sdc2 ze`?mu+10$!%n4hDrd6GtUwo9 zI^X`s!!ti_jVtg83%b1taJd4+TCWgagx2*^7R%##eFauHNi@bZp= zUf>EBG{r7j8JQ{Mu*saY($XSJMN@Gs%OUJvj-*tUe#;UwP0jN6toJ?Zo_&u;v(Nvn z<9_$vYwdCEwVt*1;hv_?73Syr$Lltq=5J*2&PnxHxXpQqL9E(b`04+;0Aj^ig*U{` za|-)94QaY4Y$*&EzdW}vRZQGcXf@LT{I84q*v&(cPOB^Ch9Er!sfyIe=W<<;?n1sl z(!EF*Abkwwz^A$2t}P(mG#ky`<2mop@J&0xy$q0546B+d8+Y($>nLnB(Q5wyyt# zwmNvx)?t;l7GogAbcLw1MJ=5hJNv&hwhfJSC&u!#G7yco7y8(rWguS%@4?K7^xP(~ z>(Vl>yqG&N1|B@8JO6+5dn0(|jrd>2ysK)=cXbiP?-u%4G~c zljpPojq$qiKrSs0g!7-ZtskQ;Qe(N?pvtVSMPr{uAbLTtxI<2N)#goCSDwU#Dqgox zL_jf@>xz_&!@b>$xucL?fpiqoqmeE|Iv5{%sJ{{TOhoxmq;mOiGzQKMoOzs&x6RHi1b=CcqG!P z2NiQGk$wXyI;hYge+u#g4=(0bAUzA|QRu&e;2{(c;}A4NR)#xRgggz5J2(gp5e$`Q zMpo@%tneJ9+p$s}Qnp$HVCASidR|5y8=%{;(sk&+`mRc3$RLE9-HI4n~GFCsq>#E&5DOZ(4+oDNx;=@L!_2q%EyUZ4(=>}u4(XykL~ zfKCWWIiI>dJt`AJG3;e$JC+lBE-f6An%Cu zmDW3WQ?0yP;(Z+N+#jdYfmH~{@MDNqc9ymBUWv8Vke7m$WPqEJVb2l_i3OW@_kTiL z-0cd`69Oo=)t-|Zt5)&0;GpuIBtTcwqd zH>MdKu)>f9;UttZK0SMW=55gET2Rgh;1*1PJEpqFk>`n0eoH%u89Y=IKQ9q0Wl3Q$ zUY-64?aV}j4DbEU}T5+_qM)6A-!*Vc@s6N<`S(a9$3y|-yEam)lIHz>p znvf^IiRsvH%9ZK91v*C4@1u-Y5-b3jMe)pzLhn>3Ex(!URgN4fcyw?W>{!Qr@UHXFXFv=%HIaLY&y!zm10i0>&6;g{{XyXA9(p> z;C!#tE=^;sG!C~$TaSRglkJcjdj^%f3e;GW)YweC^Q3s4eh2y#Pm~MfwvMkFnA}!n zU_kWz{1ptWuc++2CF1%U%I=}Ox~po;>TU2c!umAcvup7F8@#Lmi1(9(qL%e2^zJN- zeUTqq5sK~7`du$|P2JEl1LVBklwaKY%FD{$_$?CaZi$s;;8d_OW+2uz;+Hp;z3~Sn z*1gw=2OlX67(zOCPyZq=c|Q);&+9MLn+knqPe%Qms`|r`|7*Wu?ii%kA|>xb2K(cY zS5Z!0%0>Oewwns0hjmAOH1d1<7U?^`xfZ14ZTt)=9f9%Um76fszx2sW!e*q+DE>_! zQM|d(Cx5D#baSC^ezur@b74%~2falrO4}dAe5o06q1;89J_9O8blY{E#dUX8 zp6Cw)J*%+CQ7>DeK#TmkM~Ki@?C(B6maQ0rf+k8)kQBg){-RihhAa&*yLr=*fDf^IuiPa5nNh zQwliHbAdFVYWi&wJtLfXjg@7VRoNu~J3Q!T2g5fb$o2BjVvg*;4JKaJJ5k0OifNfZ(f}U;J?mka{z;TGtfLO;{ToBF{@xl=Y)}2- z_*gWsD67sLg?HXIu74dJQLvZWI~X)`%k+<rhP_SVkq5vtczsYY zcM|GmfoBcU@0L3x`r`*y+Tj6>Ez_Tml#cXENK>On@?UF7PevmYLAVQP6VijhFcc|0 zat91RKZ1OmfV$U^_CtCZ(q&Q}uen9oURG_lJ(0~srqP^Tp>5BN9+m}M`XVJ*%rN&wG%yYMdrr(6;&dy@X&o8f zR-@SBs0_U_S_Nrt3(9yfl;=KxN4H&4=#hcZ@3Qn=O3wnMQ z)Zo3Ys(%?2ZkKqQYVh6;UKu3aJE{^-UoP>kuEF~dczMHUd@^sV#JjZy?^EFI(1YNW z=et~5t8F!SUj{F`IMnYa&G-5mynn44vy52|NMpVQ?<`cjNAH7I#w_K2Q$#pZ8uRWN z{dO6hISkyE47~cHZU9XL4=I)hrE%=7(Ut~!X&hY`c%=i8C-Hm@<|$?7S_6>>MFVM- zCbeH`D;sJqcO=>(;VHM(IoMns){qDGy3`mCrh9&jBxk4C4PJ-dbY)HSn@gB3@ZE<<;!hF=(R7p6jamm3d|HYLs|+vF-q` zBoev%MvJDOl<)e+O7nGV@UF!b1EB$KOI~<6R=^bF)jAf@1(Os^uJNBMB1&yURp zvI{8zm9HYD_GEgZI|}8qI?7?(X@y7PGa40?{%uSKt7S$F<#(WbDpI+;5&2ChpH@{q z0{J}3+p5Y5@w|q`XC?Lf_K6iF!cYh_>9g~;3X0{j*FevJa~JAa)TsV(iJr^<26_gZ z`>W`wzYN@inN{?=U|{)wuZp2~dqtHqyv`j_iQhCz^)#R+TJ|fo?7I&v3(d&WEfYOoRV&z^QR}2np&y4j zUKQC77>sg88|~cC^=O>%_p3LBrd_Cil%r8M@_x9|@Xyp#3?@M%fNv!JCzF4}WEfb&4mh{``=xyaQvkza`PA>`>;(sMW7Svc8}eGz3wR-OB)G~-pf zJ8$K(?|05W3ECbk|0__*`%G=MROMxWwxz1>VyWRhdZs)05{VV{D3sGJ<~c}@M9TF; z+E-@h`9+L|+$E0r{u6|xbYgtyMC>;+Z*)7-1;}$Ow+VULE-vqg1()dvBwc0gvu$r6_db8VvjACyVI?J{(e8I4D|6kD)PmR-Unt@RMd%#j&c(3 z^WbG3PJapBO0S*K(SFeLbD#$Ai{Pal=I4{f{9X;-m%+;#o%qXRPNT^3n2Q)ckCoGV zgNmLd-cx<#Db4>;Zv&N$0X-vwov7z^qPksDp39E_ zJ)5ZAsE0^&fPq}UJ1Y&aUUa~~&SIlfPaU{Yo(DD$^elcV%g*E~?6} zSjZ3rr=>a&*CG+~J+(PA3-`T;PRMCRB$Q8O*fP;U~~6XR6`N()EqsW-T`)2cvLROL;6X) zV{7p40k1+#$jV`?QDU_9&x86s$ zl|$<8nJ4x?Qs~qDDnL}yZ(HVF`6!UVGGs|iuS9#NBK-%_RY()0D$?0VtMxGH+i@sQ zZ?W($quze^SHuKWITiWpHGBnqmZh#e2VcEIo`_+&l;?%|KQQoQt3BznC3^1Y-}5UP ziWl~3l+i`kKajFXTF}x|A!GwQ7zCu?=_%r!cZK!t2N(<)hV=Oqf8t3Dj34$Vx`3Y5 z=<0o)C(Z_hc_@`v_OtjCk^|fk*V~Fd>D>P$4;)4+kPGg^@>2dJ5D>CB=j_a&{Iv_N zagi^goE+sHSXMH(oc|8qN#%0>`*?d$;Vh!>pFGx#fF0H(D{9AGeyTCEAx=mu=SA%^%$msxbbKS~$YN`qEq@3uX^YAM8 z`T2*`7MHCDy<|i>v|y^rCrAVNP-5nezXIkS+!9jRPwp!5_QE^!aC!rH{*lY$swyWpkH~<_czfuW74HMTIzOgjc(rr zD=SS}v5Yk}dNS*Z8m#Yul{S%AZof2&Zh#vTsXaWj-H|kmHmR+QBA2s3PnxORRy&Md zWeaDca(tPR8rvc@cCpkL59EKjRFSvz=8m?YPPnl)bS?|EJWCEJ(%5KVw@CxLucNU_ zTbH0M3a@h8mm|-I;zxLA&v5HFH1?>}*st*p-JL$fy!ZI*0%6zjqUi~k{!5V`hVm1R z7p=%2btv-3Aph%S8DcyY>1O0*---~ZigH4ezh9bOt#qm<1F~zW*o*cCd;#^eoiab^ z^rcI$L@Z*!P*j^Ws^2{>ja9VYjk#??{e%Cr4yKnJXwu0}ntJ9Yl5)FGFT06jyPH>7%^ z@A^1RfQ%DmvLt7Mfn=Q?1q9qN<)@|$^p@-Jv_2`6xOqjz8{^nR%ZVB2BmNFP>i=X^ z)Ke**FJl0F=C|XWzFI<${B3X+$Cpu0k~ALtlTs?FVdU>aJ+Ia-1T47SCsEFmY<~e6 z_8a+N--0qSmh{vb&<51^&Z={3@Xo8p{8Y78YM0~Yvrsm+%y&5kjq{eR|It71yq9!f z<>x98GlGjiD{o6R?G0JODSI1eS=gwcn)W*<0vz$O{5RrVX!x_zKGIwPQ(Hb|z}?!* zI-Wgf{=N;XGTtlBbIQ1w0aGY^^+Rne-S$fWk+EkoYJ5k zlKALZ8h)tGpQnyo6Np1&orVp1(epQQ~Y%v<$8}Wm$R%{1hzXa!xNo zIfc8|u0+tx#>=bAvoCl33-6>0R8&lp%Ih#HDklb+zF012{=Vfr3uP*N;+wxJjOqB- z59gnn0rwxGIhrfW=^ZGi_{rRI`5VZS$k90ej(5W5E8E5pzCz{d)D1?u>n>c5D* zd{}pZmL@{a<#IbDW>?Dv$nOR*qv=k>sJpp}R@P^?RdsrwM9U(^fkFP)H0^8x4#G9j zN$7wHnSk{f({Xyvs$#nQ_aP;bWcr23lLOcbDaj3&b30F9a_{9iI|* z313GYPnJ*3VLbBmT#KR46(-@g1qxlo2hZYfAid#>LC+OVI85G~dE(6T3gg9hpF{n5 zzIc-Ac@JnNM`iUVKactkP8D08M?EV9sy{ZX@BRYnyETgmFQA^6lhGoce$8SZ z)$`I({Rvt9=`W(*Y8Ds2h*#5;>Qr%N#$+EmWV{{}BY9mP%PA;Wiz)YkPmPi-XFsRDBMMl zTrTg7{B8N{TC#lDYyC4zw#?P$_CVA*jKy@-<~o;T;jKobgmu1#53MMh@h_s>p#C4m zhi3Zl>I}^-J}ujd2xYV~*P@)PA(yw5%a@~kf>i!(ydRBEBg)DCGyTnYKOCR;(C%2N z{9AaRrQ<)hqJmOpcoOf_@dYR!BbEOe@1(89$PJ14`z6eB(7NoBm;QncDb95`lf#kD zL`sWrEk4wAKjdjFTux)8^1Y{Li_72M*^WHn7hc2|@9b_}hc+m1i6^rzcbt)amm!t) z-7i)SFcid~-{H$L|Eq#{79A*A2f1!l3ZzlWvzY!K^lXC0O7+yl%zZGdOvr}ubuh3k zT2RHXO3Ks9(DN?n*#vzoIxo@FCeiaB(6brZwy(XS#;EdoiGhvk>9`AIOU+on31tI_ z0gocpH{hLM#!v8_wk2sTa6R6u`M-g(^k9;#??8q-yAtm-v*VD?C^sPA5AXnN)U&D? zDe;fPJDG?>kx~bI5YvN&JfEuzFwpVHxARRW6FiMVS}Hz~EWBSv83}K7`Sxm`U_;I{b%w|9G3y|`u`R&GRAa5ci0Up~%a!}TFOOWBS zAuC(ZIU-w4J659o66k0JT9Hz;V;52i?e9fOTYDTn!>Runn=%Kl1u2c} zY@{Ru=OU$<@L$Gy2S+wRuB-^>uk^egGmgwy6L`n*a@0uoJy{UnFQBGU67byuH*Bj;f@1K($ zwL2~>Uz&i9j{8oO6W{o5Sby5P?I55te=Sm)#f?a5JAPZmFsWPCaTDrEde22lGYZiv zrQG2?=wLMRuOJ0W?lq(|k?QuQc7u86r9ge|;B&L3I#3?rDHsiH0p}MZKUO^Sl|m?< z{!`)ldKL6Xp?>Rm7%sMFYx~_>Un~5nYkLtDji}J@p-tyJnUqE;Z{l69w~(ip9n;%* zZ^Vc9l4pFNyob40_vO2;^Vi1tm-gj9s>}6?&u(izEx!AYZxjx%EBb*Rdrs`xsvAau z?Tevr7FHIW*mqPdNkZF7Vn=hu#cvi)t+%zrF(TbI?9i|^J09|RG3?DkKk>`aiXs{h z6pkv{ex#a_=>)E4#cp5>6*m->{zTAI+;pJemQ-JloyZRKzzuxE(;Fp%UT+oLdP`4Y z-}N0oh)mx!)nP5v$53(JTZL&Q&+%MG*Dcd_BQ-LT;brc>6%G+I-zdhzMt!dHj0)m~ zzZWLg$3|#|i5&!i6$MzE(Y9FmcA>wR{&wN8B8C)3STEnubk_?lamw3;(M8QLb&bQM(AmY7rSN{X_ID%_KymK#6|xu6dNW_UhT)OZEI$b7`EYBYAjmb zEi~50q30xyX=|bB8fqA7GeqOj%AiqeHf(HbZuK{`HLp*a&xk*V2I3F{2(ZDv3L#J< zeM;8Bz3&!!*4w6u*~Mn!29BO2t}$8ccn^Qd46h@5mrt2tX1Nzxyn$g93-0hE4@p$8mgWN$y6iT3sm10&;7HozUan= z=4h5>>yaO6Q6MgTuP|sx(6T-}qj|NzaWw|)K_nbA@T1T)BZ#gmw!c>xTW=Ufs2iFU zI*`K1(L6UD>d+|0-!om)*4(oGG%zRFLoe{Kd5)!Ofj3!{#w#;Qkk7!zc3O#U_=f9E z5li1MOs@|#tbE|QMri4(9|lv))4%`yLa|E2UE8;*|Pk z6vh?~U*u0013xI7S_ZTot>m`ZL5u9~8`b*9yEaa_lJ3EF5ib=8;)bfBv8_ zuwGZ=M8l#$SZvSoyjfOSIXGFf&Tm<>F~+Q%K*QhT#lUTh)7G@vYsK|LloR^5`DakI z9*0(tSczlnnx1&}obndG@Goq!ud0R_I;MfY>ube^Id^Kd|9w8h9JRo)0>^gD$g&+( zSC5>QRWAFmP^u3TFVrI6an(4sT{Db4$x6fS~)0Q zw`pzj#<-2<>7zL{i7d_V)X)tUi39(JGQjE6Jxvcas0`2Zoukc^v;W4HOrTr~+lXCG zu!_2?na7AT|5F%U55?hGK@`L;6b<(4SUY7KxFN=0lif_~YI_ER23s6j2D*$Ei~av8 zEUPztOEo>;PM~~zsI;bRq~ez&l|o5_hOxN8nmk#TFKHgQ+0R6cx7RO>p}Opi3|N3SWxuKw&un8hb!Z+xI>v& zbo@9-e8bVgPz@6Ac=1wqWmrA*l?o-Jg#l?eFF0YYI6trS6*CWkJxF)PGgS{lib-R| z0$V##Y|Sf4y`hY{k{u4a3t7g@R!=!qMJ{+w)P2X$2-bFLj~mg?$`YB;vx1arlng;=k}2P=b1 zw(eMVU+SCfo(Ou9R5eBd$LDqRLC+3C$4a!&PUefAL-EtY>kk5tZ(7i3u>~Cy#(w0TCayV%R90;022PLe znNi}J#%l4`gD@Z4g`LG7*q#a;U|MUWA=g(A`Sd88>=g$q)9PI>(ZeJ%LdRBZoY*tU zE0GGvA%`f%`WSl4jP%e5EK)W}%d`$D=u;2d1Osl`o)$+@X!&cGWNX!ah;n!-@M1rK zv^y?z5DweAOzk=j46qi(w&{2=&gXj3ekiPm3Z3ISwh0M`6<4iRTRdH-^lc2*Z(0{^ zYz|?w&LFMlsIjIx7_o~3?j~o7^SdeSB`v_8B!`|2T?nkNCL2WQP-SJwH7yN_3dRLT zQ;XG&X~+>}upfLw9xYjL7$fJ5mh9yu=gd7nHExF-=#;e#CYHEo9i|w22-CWt14GC^Ji%XXw~t4eJKL;hlSKR<}b@ z=9gehV;pcp4`ECFaLb0QuE$~6V)SEso{BRAg%(=wd0Vo|3l3A}*GGUCK@ypOJHUdr z_W4a|<&`~@nMKReF{?y1pkZCZu|!i3MeP}@nyF%SR3i*cD;AgbP$oCHnq!mIH@(oc z9nU#GABt-aQih33<|#%`O@kyr!)dV&D~#Wu>8Y3{AHdHs0Aw^rwG&hSf|%J;87Xe* zsq`%2&$7e%B{udl0%C~1C|XB@MMIweY^sB$#DIb?iQ;%=W&@xWkY*ghn8q-A>V^0j znEW)QL2N84gNkvat1cji;W(Zddx^NNh;XYL=|EU|1m)vGq9Rc$DI*%7S}`%rGLsOZ zU`1ca&l9C4?DeT7WoSbTM5=3vPr66L=3SIuBz80?lf<5qq7+@#$Nx+{(PA$^lj5b4 zGO4Jlp>M$?z?g*Czd#JAR~Ga#oY*Fi3b{~K(}}*8zcnvjE-6FA<@L(BMbfIOXWK9X zMgk=zhBhb@8_38-mg}N zs8ZFV0O%$5EH%(w$GI#|n7BVJ%%Nh>V*KjwFN&ajs+ZEQ0dO)hvFxTDLsz@%<@xW3 zo_&H;-^#0I5w79IVQfjbF z-SG%f0@X&Up9roc^VIeB$7V|fKm3bxA24quJSW~h&hVczC zp`Ws{!PImhO&X`BTBc!NmEV*x-P=!@4?!TKqbItr=~m>L-^}}jWv8Yvw!!jXtUMEz z(FZ_M!>jYH8Sj<-mDvp;9EVs19B~6o)G)8fugz)?9iYr;0RHh4UAM`#if}5g&99@{ zq2e5>b!|6vapIx?1^~i#U4C=M`{x15f(Do)xOIjH;O*luTi4@H3Z;v*YM|1$1WD5a zKnf450q|$sAodJY?0N&g)?gZ@2Sf=2;d(dbQ`Oi2fEl>D>w7?7h8YDn<)@^LjqqDr zTRzvkY2C&$kc3wO@Pdv3M_ionoAY+oYYG7@H_>zlrWiBQ;G}&^yfH|bQVIem)NE*D z&q!c|<8KRhure2(C&4*#8e!OiDEW@~+F+%z=)f!*_+1Ipf?iIXTf{39uzfELR*Hlr z66jQb{@B!G*S%GII2cL|z94KT6g`Rz&;KqY8E2udxc@k1=#XT?`nAn#@M8|J7nnO7 zKP|+v!JV^{?`6|3B?(NX0efx0LO7v$n>cK!a%?F`Ozbz^M?}41oy(B$03JNsU8; znuZ%pNQ>LJi`04G8R zaD6zR0TVNTyB?cnXq#Gq4Sb|rj-_=ddJ@6lx_;z7nw6IjhVXoNj*jJOnilAfrNge* zqa@ZKu(k?}0M-A~e242isR2+B>I4ABhmDK1pOHNPtnV*Ik5jfnp;}maI4VZsz%=-e zL`LXTTmKDB4ji}<@iR5GXfvR~r z2IV+rV!Qi@WkeH1!tp{M5KIR+cYm9o7UIWyCQsh9ZcVs8!b`AzeM@uOhBbJdjn`%A zTg&?OXKZSPT7(t~Ai64`c>wk9zAUy)f{HRVOSd3qu)>K2m`#tIUp(Plb zB-BE<#I|Vw?EXP)SC!Eviul3ZQvrre_(SfiqEW?wU~+&gVQ5`|8Y}kjGmENnM2UQR zgzU%xgw&|opRz_Eq>c%X#!PV5EZu%BYlL-;fDgAMF{h#P>wH^5=I*?-9^^m9qgoAE0%Yu2xOBVSCj z{-(Co>o=@vTN7`*tm&ZMUH+EelAYwIHDzf7))tyOQDL+IS_9+F{4CL9oYGGmttw{ck-oU;x_DK zo8P>){PJ$9R}q4-q2Ca%i!~dz&-`az>^ojrR)htII`V-Cfo}tZGjA}J6G}L32%qQ( zsaPJ+di=gvXDLJSABeA6%HS^l%9lfePg;rwwNIf!P1PJ27wGp7MGspUp8vPdY_R-C zG}+34x{var#a1SC-CB27MJ1jjdN|lA9oht5xD_M%inxM){$=68BQE>$!NdB0p|1C= zO&k1Kt!tV$wybY!j*w}?E`3q#a+GBa*m)0z*uu(L9dqh}KTH%ntP!H-IKC=^ z#c;PQE4naa@)6a;oK3jnz>b0Wy zp#dz0FLQC-0%AUVD1u|n8{5`z@K2+l6++Z7<2ETv{EC+seNE)2D03SS13@ST5ZEBE zT8}R2)OG@#0S_L*!yq&gHN3Rkw%9vG=~;9v--;~+02@lF807$GLr6?OB|WfKdhD~C0BmJ?bUyhQ_ZL=n4jQXTU10o`G)R+v}=|U@yEd#D)B;>tNOq5M#s{ zz_rEo!k(q9Xb53|fKABWt59&!4RtfK?jN3|G(buby9XGD8il!W{Tu71XSG>u7ue6l z20GZJ1V0gXlNd8w2}%Ibh-?DtS`_$o{hP&Avw;q68wL-j0a_e^4m(wdU(4i%>!PA%D@(CIEbnT_s;!(M(rYkforzJGZ61_UF!!K zH9VIHu`@*RfL2w<-X+eYMgV$TToB<$_gq8>67z@RnR&|C21Mg^z*0;V-Qq^zj=Bxv zttp5wj-3x57m5X57*0q4sHmIp7TV`4vr4%1K)-=+r|};>__26qzG5_(Kqj!Vb_|~d zu~PHSx*6j9`7lD07ASoiaLZyN4sRf;tKr(jxU25Sj@oj(*u=e^0sH__)&h9ncZ=&5 zV2n^f9wI71WYe{SAMA!AyI}$FQ|hHV2@Z=1|%& zWkKPg?&6rmh-@T~axA3^`9+vFGJX!R;?P$DZr)6Ll9>M$wGWCq?pr*Xf2A;QdMQjV5IzbPUWEHV|_prRhB-o^Db`6jk_G z0gg1Gb_4~U7WpN>q_~uU_4aiH_e1D%_m`>k4K_8z7!Wvu-G!El-Mw|j)Qua~wlw>I z6XKzfO8g5O~4IP5VI zQB%VJ76T^3kwDnzS#jR7bR`_ifFp<7Dx6r|drtH@4t_mdL_`3GaNmJN1Mhj>kSCTY zLr@D<4EgHu*JpDMt%l9@Y4Twu1Zh|nWjjMRww!?j5#!|&?z;&pJ;24FC5C-y+-vW)G&m+X{ zrOII?Ttwp9%S>?9N%!a8%VN&)fDX_t9446!3m-4AIn+%o+f4gR9C8yHlGu3SRY5P)s4s;v}7&fv}eIXNH^4g z*jfb_U#6f?ux-9B8c&4V19Tc7PzJ21BADRm|0kB5sHihxv>ja5(D{Y$>$rcen;4eY|6`%>Xf(U~CB~z*}@^KQwNyp*P;T63h?pdxZ5;K-72RA@m z)5`!OF@R__{jYVa#7~wh3;TtueF~>RBjHL9{wp9E9lO5~?-E>b!^Hczn1fEm6-M}` z7W)Ilc@hlK zk4{pC^~E;~5Oc%$ad8K`VgJ2OpNdh42fE;P5CKPcqtKoRWuXuEZ86|va=U>j0$fDG znqbC;{|}Lztc*Sho~#2=58y%40dwA|J9urp7Rv73^d)Tl+&}9MLCM z*B#p2j2|i8+_uK}0AC$%Uc0FUum4Jm*RGH7{-GFi3gX&@Q{bl~aEl8$M3SQbs4BGn oO?6sHO$Z0lH%_2zapCnJvE~$IS?`YDk8Om+xf3;gqUMbIe?U#kcK`qY diff --git a/srml/aura/Cargo.toml b/srml/aura/Cargo.toml index 2c8ea28eb8..6d9e8dd35e 100644 --- a/srml/aura/Cargo.toml +++ b/srml/aura/Cargo.toml @@ -20,7 +20,7 @@ srml-staking = { path = "../staking", default-features = false } [dev-dependencies] lazy_static = "1.0" -parking_lot = "0.6" +parking_lot = "0.7.1" [features] default = ["std"] -- GitLab From a456f8f116f4999a5c0d6aac12a52d3a22abdc82 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 8 Jan 2019 12:30:45 +0100 Subject: [PATCH 034/349] Expose all authorship APIs (#1366) --- core/basic-authorship/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/basic-authorship/src/lib.rs b/core/basic-authorship/src/lib.rs index 44caadea3c..0d7e310750 100644 --- a/core/basic-authorship/src/lib.rs +++ b/core/basic-authorship/src/lib.rs @@ -31,4 +31,4 @@ extern crate log; mod basic_authorship; -pub use basic_authorship::ProposerFactory; +pub use basic_authorship::{ProposerFactory, BlockBuilder, AuthoringApi, Proposer}; -- GitLab From 5dd23c2c51daaeffd757b50c007382d18dfeb63f Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Tue, 8 Jan 2019 15:13:13 +0300 Subject: [PATCH 035/349] State cache and other performance optimizations (#1345) * State caching * Better code caching * Execution optimizaton * More optimizations * Updated wasmi * Caching test * Style * Style * Reverted some minor changes * Style and typos * Style and typos * Removed panics on missing memory --- Cargo.lock | 16 + core/client/db/Cargo.toml | 1 + core/client/db/src/lib.rs | 88 ++-- core/client/db/src/storage_cache.rs | 416 ++++++++++++++++++ core/client/src/backend.rs | 8 +- core/client/src/call_executor.rs | 67 +-- core/client/src/client.rs | 14 +- core/client/src/in_mem.rs | 6 +- core/client/src/lib.rs | 2 +- core/client/src/light/backend.rs | 7 +- core/client/src/light/call_executor.rs | 14 +- core/client/src/light/fetcher.rs | 12 +- core/executor/src/lib.rs | 5 - core/executor/src/native_executor.rs | 123 +++--- core/executor/src/wasm_executor.rs | 123 +++--- core/network/src/on_demand.rs | 17 +- core/rpc/src/lib.rs | 1 - core/rpc/src/state/mod.rs | 3 +- core/state-machine/src/backend.rs | 9 +- core/state-machine/src/ext.rs | 5 + core/state-machine/src/lib.rs | 28 +- core/state-machine/src/overlayed_changes.rs | 2 +- core/state-machine/src/testing.rs | 17 +- .../substrate_test_runtime.compact.wasm | Bin 42281 -> 41771 bytes node/executor/src/lib.rs | 78 ++-- .../release/node_runtime.compact.wasm | Bin 809938 -> 808984 bytes 26 files changed, 796 insertions(+), 266 deletions(-) create mode 100644 core/client/db/src/storage_cache.rs diff --git a/Cargo.lock b/Cargo.lock index 53489b81a2..678f3e4154 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1570,6 +1570,11 @@ dependencies = [ "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "linked-hash-map" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "linked-hash-map" version = "0.5.1" @@ -1600,6 +1605,14 @@ dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lru-cache" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "make-cmd" version = "0.1.0" @@ -3417,6 +3430,7 @@ dependencies = [ "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4846,10 +4860,12 @@ dependencies = [ "checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" "checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" +"checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" +"checksum lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4d06ff7ff06f729ce5f4e227876cb88d10bc59cd4ae1e09fbb2bde15c850dc21" "checksum make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a8ca8afbe8af1785e09636acb5a41e08a765f5f0340568716c18a8700ba3c0d3" "checksum mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" "checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index a228a8e9ca..77dd4d9bf8 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -8,6 +8,7 @@ parking_lot = "0.7.1" log = "0.4" kvdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +lru-cache = "0.1" hash-db = { git = "https://github.com/paritytech/trie" } substrate-primitives = { path = "../../primitives" } sr-primitives = { path = "../../sr-primitives" } diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index 371f0a4013..f663cc0834 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -29,6 +29,7 @@ extern crate kvdb_rocksdb; extern crate kvdb; extern crate hash_db; extern crate parking_lot; +extern crate lru_cache; extern crate substrate_state_machine as state_machine; extern crate substrate_primitives as primitives; extern crate sr_primitives as runtime_primitives; @@ -52,6 +53,7 @@ extern crate kvdb_memorydb; pub mod light; mod cache; +mod storage_cache; mod utils; use std::sync::Arc; @@ -75,10 +77,12 @@ use state_machine::{CodeExecutor, DBValue, ExecutionStrategy}; use utils::{Meta, db_err, meta_keys, open_database, read_db, block_id_to_lookup_key, read_meta}; use client::LeafSet; use state_db::StateDb; +use storage_cache::{CachingState, SharedCache, new_shared_cache}; pub use state_db::PruningMode; const CANONICALIZATION_DELAY: u64 = 256; const MIN_BLOCKS_TO_KEEP_CHANGES_TRIES_FOR: u64 = 32768; +const STATE_CACHE_SIZE_BYTES: usize = 16 * 1024 * 1024; /// DB-backed patricia trie state, transaction type is an overlay of changes to commit. pub type DbState = state_machine::TrieBackend>, Blake2Hasher>; @@ -270,8 +274,9 @@ impl client::blockchain::Backend for BlockchainDb { /// Database transaction pub struct BlockImportOperation { - old_state: DbState, - updates: MemoryDB, + old_state: CachingState, + db_updates: MemoryDB, + storage_updates: Vec<(Vec, Option>)>, changes_trie_updates: MemoryDB, pending_block: Option>, aux_ops: Vec<(Vec, Option>)>, @@ -292,7 +297,7 @@ impl client::backend::BlockImportOperation for BlockImportOperation where Block: BlockT, { - type State = DbState; + type State = CachingState; fn state(&self) -> Result, client::error::Error> { Ok(Some(&self.old_state)) @@ -319,8 +324,8 @@ where Block: BlockT, // currently authorities are not cached on full nodes } - fn update_storage(&mut self, update: MemoryDB) -> Result<(), client::error::Error> { - self.updates = update; + fn update_db_storage(&mut self, update: MemoryDB) -> Result<(), client::error::Error> { + self.db_updates = update; Ok(()) } @@ -349,7 +354,7 @@ where Block: BlockT, let (root, update) = self.old_state.storage_root(top.into_iter().map(|(k, v)| (k, Some(v)))); transaction.consolidate(update); - self.updates = transaction; + self.db_updates = transaction; Ok(root) } @@ -364,6 +369,11 @@ where Block: BlockT, self.aux_ops = ops.into_iter().collect(); Ok(()) } + + fn update_storage(&mut self, update: Vec<(Vec, Option>)>) -> Result<(), client::error::Error> { + self.storage_updates = update; + Ok(()) + } } struct StorageDb { @@ -503,6 +513,7 @@ pub struct Backend { changes_tries_storage: DbChangesTrieStorage, blockchain: BlockchainDb, canonicalization_delay: u64, + shared_cache: SharedCache, } impl Backend { @@ -550,6 +561,7 @@ impl Backend { changes_tries_storage, blockchain, canonicalization_delay, + shared_cache: new_shared_cache(STATE_CACHE_SIZE_BYTES), }) } @@ -669,7 +681,7 @@ impl client::backend::AuxStore for Backend where Block: BlockT client::backend::Backend for Backend where Block: BlockT { type BlockImportOperation = BlockImportOperation; type Blockchain = BlockchainDb; - type State = DbState; + type State = CachingState; type ChangesTrieStorage = DbChangesTrieStorage; fn begin_operation(&self, block: BlockId) -> Result { @@ -677,7 +689,8 @@ impl client::backend::Backend for Backend whe Ok(BlockImportOperation { pending_block: None, old_state: state, - updates: MemoryDB::default(), + db_updates: MemoryDB::default(), + storage_updates: Default::default(), changes_trie_updates: MemoryDB::default(), aux_ops: Vec::new(), }) @@ -697,6 +710,9 @@ impl client::backend::Backend for Backend whe // blocks are keyed by number + hash. let lookup_key = ::utils::number_and_hash_to_lookup_key(number, hash); + let mut enacted = Vec::default(); + let mut retracted = Vec::default(); + if pending_block.leaf_state.is_best() { let meta = self.blockchain.meta.read(); @@ -710,10 +726,11 @@ impl client::backend::Backend for Backend whe // uncanonicalize: check safety violations and ensure the numbers no longer // point to these block hashes in the key mapping. - for retracted in tree_route.retracted() { - if retracted.hash == meta.finalized_hash { + for r in tree_route.retracted() { + retracted.push(r.hash.clone()); + if r.hash == meta.finalized_hash { warn!("Potential safety failure: reverting finalized block {:?}", - (&retracted.number, &retracted.hash)); + (&r.number, &r.hash)); return Err(::client::error::ErrorKind::NotInFinalizedChain.into()); } @@ -721,17 +738,18 @@ impl client::backend::Backend for Backend whe ::utils::remove_number_to_key_mapping( &mut transaction, columns::KEY_LOOKUP, - retracted.number + r.number ); } // canonicalize: set the number lookup to map to this block's hash. - for enacted in tree_route.enacted() { + for e in tree_route.enacted() { + enacted.push(e.hash.clone()); ::utils::insert_number_to_key_mapping( &mut transaction, columns::KEY_LOOKUP, - enacted.number, - enacted.hash + e.number, + e.hash ); } } @@ -766,7 +784,7 @@ impl client::backend::Backend for Backend whe } let mut changeset: state_db::ChangeSet = state_db::ChangeSet::default(); - for (key, (val, rc)) in operation.updates.drain() { + for (key, (val, rc)) in operation.db_updates.drain() { if rc > 0 { changeset.inserted.push((key, val.to_vec())); } else if rc < 0 { @@ -792,8 +810,8 @@ impl client::backend::Backend for Backend whe self.force_delayed_canonicalize(&mut transaction, hash, *pending_block.header.number())? } - debug!(target: "db", "DB Commit {:?} ({}), best = {}", hash, number, - pending_block.leaf_state.is_best()); + let is_best = pending_block.leaf_state.is_best(); + debug!(target: "db", "DB Commit {:?} ({}), best = {}", hash, number, is_best); { let mut leaves = self.blockchain.leaves.write(); @@ -817,6 +835,16 @@ impl client::backend::Backend for Backend whe pending_block.leaf_state.is_best(), finalized, ); + + // sync canonical state cache + operation.old_state.sync_cache( + &enacted, + &retracted, + operation.storage_updates, + Some(hash), + Some(number), + || is_best + ); } Ok(()) } @@ -898,7 +926,8 @@ impl client::backend::Backend for Backend whe BlockId::Hash(h) if h == Default::default() => { let genesis_storage = DbGenesisStorage::new(); let root = genesis_storage.0.clone(); - return Ok(DbState::new(Arc::new(genesis_storage), root)); + let state = DbState::new(Arc::new(genesis_storage), root); + return Ok(CachingState::new(state, self.shared_cache.clone(), None)); }, _ => {} } @@ -906,12 +935,21 @@ impl client::backend::Backend for Backend whe match self.blockchain.header(block) { Ok(Some(ref hdr)) if !self.storage.state_db.is_pruned(hdr.number().as_()) => { let root = H256::from_slice(hdr.state_root().as_ref()); - Ok(DbState::new(self.storage.clone(), root)) + let state = DbState::new(self.storage.clone(), root); + Ok(CachingState::new(state, self.shared_cache.clone(), Some(hdr.hash()))) }, Err(e) => Err(e), _ => Err(client::error::ErrorKind::UnknownBlock(format!("{:?}", block)).into()), } } + + fn destroy_state(&self, mut state: Self::State) -> Result<(), client::error::Error> { + if let Some(hash) = state.parent_hash.clone() { + let is_best = || self.blockchain.meta.read().best_hash == hash; + state.sync_cache(&[], &[], vec![], None, None, is_best); + } + Ok(()) + } } impl client::backend::LocalBackend for Backend @@ -1092,7 +1130,7 @@ mod tests { ]; let (root, overlay) = op.old_state.storage_root(storage.iter().cloned()); - op.update_storage(overlay).unwrap(); + op.update_db_storage(overlay).unwrap(); header.state_root = root.into(); op.set_block_data( @@ -1138,7 +1176,7 @@ mod tests { op.reset_storage(storage.iter().cloned().collect(), Default::default()).unwrap(); - key = op.updates.insert(b"hello"); + key = op.db_updates.insert(b"hello"); op.set_block_data( header, Some(vec![]), @@ -1171,8 +1209,8 @@ mod tests { ).0.into(); let hash = header.hash(); - op.updates.insert(b"hello"); - op.updates.remove(&key); + op.db_updates.insert(b"hello"); + op.db_updates.remove(&key); op.set_block_data( header, Some(vec![]), @@ -1204,7 +1242,7 @@ mod tests { .map(|(x, y)| (x, Some(y))) ).0.into(); - op.updates.remove(&key); + op.db_updates.remove(&key); op.set_block_data( header, Some(vec![]), diff --git a/core/client/db/src/storage_cache.rs b/core/client/db/src/storage_cache.rs new file mode 100644 index 0000000000..27d5cec088 --- /dev/null +++ b/core/client/db/src/storage_cache.rs @@ -0,0 +1,416 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Global cache state. + +use std::collections::{VecDeque, HashSet, HashMap}; +use std::sync::Arc; +use parking_lot::{Mutex, RwLock, RwLockUpgradableReadGuard}; +use lru_cache::LruCache; +use hash_db::Hasher; +use runtime_primitives::traits::{Block, Header}; +use state_machine::{backend::Backend as StateBackend, TrieBackend}; + +const STATE_CACHE_BLOCKS: usize = 12; + +type StorageKey = Vec; +type StorageValue = Vec; + +/// Shared canonical state cache. +pub struct Cache { + /// Storage cache. `None` indicates that key is known to be missing. + storage: LruCache>, + /// Storage hashes cache. `None` indicates that key is known to be missing. + hashes: LruCache>, + /// Information on the modifications in recently committed blocks; specifically which keys + /// changed in which block. Ordered by block number. + modifications: VecDeque>, +} + +pub type SharedCache = Arc>>; + +/// Create new shared cache instance with given max memory usage. +pub fn new_shared_cache(shared_cache_size: usize) -> SharedCache { + let cache_items = shared_cache_size / 100; // Estimated average item size. TODO: more accurate tracking + Arc::new(Mutex::new(Cache { + storage: LruCache::new(cache_items), + hashes: LruCache::new(cache_items), + modifications: VecDeque::new(), + })) +} + +#[derive(Debug)] +/// Accumulates a list of storage changed in a block. +struct BlockChanges { + /// Block number. + number: B::Number, + /// Block hash. + hash: B::Hash, + /// Parent block hash. + parent: B::Hash, + /// A set of modified storage keys. + storage: HashSet, + /// Block is part of the canonical chain. + is_canon: bool, +} + +/// Cached values specific to a state. +struct LocalCache { + /// Storage cache. `None` indicates that key is known to be missing. + storage: HashMap>, + /// Storage hashes cache. `None` indicates that key is known to be missing. + hashes: HashMap>, +} + +/// State abstraction. +/// Manages shared global state cache which reflects the canonical +/// state as it is on the disk. +/// A instance of `CachingState` may be created as canonical or not. +/// For canonical instances local cache is accumulated and applied +/// in `sync_cache` along with the change overlay. +/// For non-canonical clones local cache and changes are dropped. +pub struct CachingState, B: Block> { + /// Backing state. + state: S, + /// Shared canonical state cache. + shared_cache: SharedCache, + /// Local cache of values for this state. + local_cache: RwLock>, + /// Hash of the block on top of which this instance was created or + /// `None` if cache is disabled + pub parent_hash: Option, +} + +impl, B: Block> CachingState { + /// Create a new instance wrapping generic State and shared cache. + pub fn new(state: S, shared_cache: SharedCache, parent_hash: Option) -> CachingState { + CachingState { + state, + shared_cache, + local_cache: RwLock::new(LocalCache { + storage: Default::default(), + hashes: Default::default(), + }), + parent_hash: parent_hash, + } + } + + /// Propagate local cache into the shared cache and synchonize + /// the shared cache with the best block state. + /// This function updates the shared cache by removing entries + /// that are invalidated by chain reorganization. `sync_cache` + /// should be called after the block has been committed and the + /// blockchain route has been calculated. + pub fn sync_cache bool> ( + &mut self, + enacted: &[B::Hash], + retracted: &[B::Hash], + changes: Vec<(StorageKey, Option)>, + commit_hash: Option, + commit_number: Option<::Number>, + is_best: F, + ) { + let mut cache = self.shared_cache.lock(); + let is_best = is_best(); + trace!("Syncing cache, id = (#{:?}, {:?}), parent={:?}, best={}", commit_number, commit_hash, self.parent_hash, is_best); + let cache = &mut *cache; + + // Purge changes from re-enacted and retracted blocks. + // Filter out commiting block if any. + let mut clear = false; + for block in enacted.iter().filter(|h| commit_hash.as_ref().map_or(true, |p| *h != p)) { + clear = clear || { + if let Some(ref mut m) = cache.modifications.iter_mut().find(|m| &m.hash == block) { + trace!("Reverting enacted block {:?}", block); + m.is_canon = true; + for a in &m.storage { + trace!("Reverting enacted key {:?}", a); + cache.storage.remove(a); + } + false + } else { + true + } + }; + } + + for block in retracted { + clear = clear || { + if let Some(ref mut m) = cache.modifications.iter_mut().find(|m| &m.hash == block) { + trace!("Retracting block {:?}", block); + m.is_canon = false; + for a in &m.storage { + trace!("Retracted key {:?}", a); + cache.storage.remove(a); + } + false + } else { + true + } + }; + } + if clear { + // We don't know anything about the block; clear everything + trace!("Wiping cache"); + cache.storage.clear(); + cache.modifications.clear(); + } + + // Propagate cache only if committing on top of the latest canonical state + // blocks are ordered by number and only one block with a given number is marked as canonical + // (contributed to canonical state cache) + if let Some(_) = self.parent_hash { + let mut local_cache = self.local_cache.write(); + if is_best { + trace!("Committing {} local, {} hashes, {} modified entries", local_cache.storage.len(), local_cache.hashes.len(), changes.len()); + for (k, v) in local_cache.storage.drain() { + cache.storage.insert(k, v); + } + for (k, v) in local_cache.hashes.drain() { + cache.hashes.insert(k, v); + } + } + } + + if let ( + Some(ref number), Some(ref hash), Some(ref parent)) + = (commit_number, commit_hash, self.parent_hash) + { + if cache.modifications.len() == STATE_CACHE_BLOCKS { + cache.modifications.pop_back(); + } + let mut modifications = HashSet::new(); + for (k, v) in changes.into_iter() { + modifications.insert(k.clone()); + if is_best { + cache.hashes.remove(&k); + cache.storage.insert(k, v); + } + } + // Save modified storage. These are ordered by the block number. + let block_changes = BlockChanges { + storage: modifications, + number: *number, + hash: hash.clone(), + is_canon: is_best, + parent: parent.clone(), + }; + let insert_at = cache.modifications.iter() + .enumerate() + .find(|&(_, m)| m.number < *number) + .map(|(i, _)| i); + trace!("Inserting modifications at {:?}", insert_at); + if let Some(insert_at) = insert_at { + cache.modifications.insert(insert_at, block_changes); + } else { + cache.modifications.push_back(block_changes); + } + } + } + + /// Check if the key can be returned from cache by matching current block parent hash against canonical + /// state and filtering out entries modified in later blocks. + fn is_allowed( + key: &[u8], + parent_hash: &Option, + modifications: + &VecDeque> + ) -> bool + { + let mut parent = match *parent_hash { + None => { + trace!("Cache lookup skipped for {:?}: no parent hash", key); + return false; + } + Some(ref parent) => parent, + }; + if modifications.is_empty() { + trace!("Cache lookup allowed for {:?}", key); + return true; + } + // Ignore all storage modified in later blocks + // Modifications contains block ordered by the number + // We search for our parent in that list first and then for + // all its parent until we hit the canonical block, + // checking against all the intermediate modifications. + for m in modifications { + if &m.hash == parent { + if m.is_canon { + return true; + } + parent = &m.parent; + } + if m.storage.contains(key) { + trace!("Cache lookup skipped for {:?}: modified in a later block", key); + return false; + } + } + trace!("Cache lookup skipped for {:?}: parent hash is unknown", key); + false + } +} + +impl, B:Block> StateBackend for CachingState { + type Error = S::Error; + type Transaction = S::Transaction; + type TrieBackendStorage = S::TrieBackendStorage; + + fn storage(&self, key: &[u8]) -> Result>, Self::Error> { + let local_cache = self.local_cache.upgradable_read(); + if let Some(entry) = local_cache.storage.get(key).cloned() { + trace!("Found in local cache: {:?}", key); + return Ok(entry) + } + let mut cache = self.shared_cache.lock(); + if Self::is_allowed(key, &self.parent_hash, &cache.modifications) { + if let Some(entry) = cache.storage.get_mut(key).map(|a| a.clone()) { + trace!("Found in shared cache: {:?}", key); + return Ok(entry) + } + } + trace!("Cache miss: {:?}", key); + let value = self.state.storage(key)?; + RwLockUpgradableReadGuard::upgrade(local_cache).storage.insert(key.to_vec(), value.clone()); + Ok(value) + } + + fn storage_hash(&self, key: &[u8]) -> Result, Self::Error> { + let local_cache = self.local_cache.upgradable_read(); + if let Some(entry) = local_cache.hashes.get(key).cloned() { + trace!("Found hash in local cache: {:?}", key); + return Ok(entry) + } + let mut cache = self.shared_cache.lock(); + if Self::is_allowed(key, &self.parent_hash, &cache.modifications) { + if let Some(entry) = cache.hashes.get_mut(key).map(|a| a.clone()) { + trace!("Found hash in shared cache: {:?}", key); + return Ok(entry) + } + } + trace!("Cache hash miss: {:?}", key); + let hash = self.state.storage_hash(key)?; + RwLockUpgradableReadGuard::upgrade(local_cache).hashes.insert(key.to_vec(), hash.clone()); + Ok(hash) + } + + fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result>, Self::Error> { + self.state.child_storage(storage_key, key) + } + + fn exists_storage(&self, key: &[u8]) -> Result { + Ok(self.storage(key)?.is_some()) + } + + fn exists_child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result { + self.state.exists_child_storage(storage_key, key) + } + + fn for_keys_with_prefix(&self, prefix: &[u8], f: F) { + self.state.for_keys_with_prefix(prefix, f) + } + + fn for_keys_in_child_storage(&self, storage_key: &[u8], f: F) { + self.state.for_keys_in_child_storage(storage_key, f) + } + + fn storage_root(&self, delta: I) -> (H::Out, Self::Transaction) + where + I: IntoIterator, Option>)>, + H::Out: Ord + { + self.state.storage_root(delta) + } + + fn child_storage_root(&self, storage_key: &[u8], delta: I) -> (Vec, bool, Self::Transaction) + where + I: IntoIterator, Option>)>, + H::Out: Ord + { + self.state.child_storage_root(storage_key, delta) + } + + fn pairs(&self) -> Vec<(Vec, Vec)> { + self.state.pairs() + } + + fn try_into_trie_backend(self) -> Option> { + self.state.try_into_trie_backend() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use runtime_primitives::testing::{H256, Block as RawBlock, ExtrinsicWrapper}; + use state_machine::backend::InMemory; + use primitives::Blake2Hasher; + + type Block = RawBlock>; + #[test] + fn smoke() { + //init_log(); + let root_parent = H256::random(); + let key = H256::random()[..].to_vec(); + let h0 = H256::random(); + let h1a = H256::random(); + let h1b = H256::random(); + let h2a = H256::random(); + let h2b = H256::random(); + let h3a = H256::random(); + let h3b = H256::random(); + + let shared = new_shared_cache::(256*1024); + + // blocks [ 3a(c) 2a(c) 2b 1b 1a(c) 0 ] + // state [ 5 5 4 3 2 2 ] + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(root_parent.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![2]))], Some(h0.clone()), Some(0), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h0.clone())); + s.sync_cache(&[], &[], vec![], Some(h1a.clone()), Some(1), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h0.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![3]))], Some(h1b.clone()), Some(1), || false); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1b.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![4]))], Some(h2b.clone()), Some(2), || false); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1a.clone())); + s.sync_cache(&[], &[], vec![(key.clone(), Some(vec![5]))], Some(h2a.clone()), Some(2), || true); + + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2a.clone())); + s.sync_cache(&[], &[], vec![], Some(h3a.clone()), Some(3), || true); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h3a.clone())); + assert_eq!(s.storage(&key).unwrap().unwrap(), vec![5]); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1a.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2b.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h1b.clone())); + assert!(s.storage(&key).unwrap().is_none()); + + // reorg to 3b + // blocks [ 3b(c) 3a 2a 2b(c) 1b 1a 0 ] + let mut s = CachingState::new(InMemory::::default(), shared.clone(), Some(h2b.clone())); + s.sync_cache(&[h1b.clone(), h2b.clone(), h3b.clone()], &[h1a.clone(), h2a.clone(), h3a.clone()], vec![], Some(h3b.clone()), Some(3), || true); + let s = CachingState::new(InMemory::::default(), shared.clone(), Some(h3a.clone())); + assert!(s.storage(&key).unwrap().is_none()); + } +} diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 1f370f0e1b..88e97c7ec4 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -68,9 +68,11 @@ pub trait BlockImportOperation where /// has been used to check justification of this block). fn update_authorities(&mut self, authorities: Vec>); /// Inject storage data into the database. - fn update_storage(&mut self, update: >::Transaction) -> error::Result<()>; + fn update_db_storage(&mut self, update: >::Transaction) -> error::Result<()>; /// Inject storage data into the database replacing any existing data. fn reset_storage(&mut self, top: StorageMap, children: ChildrenStorageMap) -> error::Result; + /// Set top level storage changes. + fn update_storage(&mut self, update: Vec<(Vec, Option>)>) -> error::Result<()>; /// Inject changes trie data into the database. fn update_changes_trie(&mut self, update: MemoryDB) -> error::Result<()>; /// Update auxiliary keys. Values are `None` if should be deleted. @@ -127,6 +129,10 @@ pub trait Backend: AuxStore + Send + Sync where fn changes_trie_storage(&self) -> Option<&Self::ChangesTrieStorage>; /// Returns state backend with post-state of given block. fn state_at(&self, block: BlockId) -> error::Result; + /// Destroy state and save any useful data, such as cache. + fn destroy_state(&self, _state: Self::State) -> error::Result<()> { + Ok(()) + } /// Attempts to revert the chain by `n` blocks. Returns the number of blocks that were /// successfully reverted. fn revert(&self, n: NumberFor) -> error::Result>; diff --git a/core/client/src/call_executor.rs b/core/client/src/call_executor.rs index 8cbb40dfa2..62104d4aa0 100644 --- a/core/client/src/call_executor.rs +++ b/core/client/src/call_executor.rs @@ -24,22 +24,11 @@ use state_machine::{self, OverlayedChanges, Ext, use executor::{RuntimeVersion, RuntimeInfo, NativeVersion}; use hash_db::Hasher; use trie::MemoryDB; -use codec::Decode; use primitives::{H256, Blake2Hasher}; -use primitives::storage::well_known_keys; use backend; use error; -/// Information regarding the result of a call. -#[derive(Debug, Clone)] -pub struct CallResult { - /// The data that was returned from the call. - pub return_data: Vec, - /// The changes made to the state by the call. - pub changes: OverlayedChanges, -} - /// Method call executor. pub trait CallExecutor where @@ -58,7 +47,7 @@ where id: &BlockId, method: &str, call_data: &[u8], - ) -> Result; + ) -> Result, error::Error>; /// Execute a contextual call on top of state in a block of a given hash. /// @@ -163,16 +152,22 @@ where id: &BlockId, method: &str, call_data: &[u8], - ) -> error::Result { + ) -> error::Result> { let mut changes = OverlayedChanges::default(); - let (return_data, _, _) = self.call_at_state( - &self.backend.state_at(*id)?, + let state = self.backend.state_at(*id)?; + let return_data = state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), &mut changes, + &self.executor, method, call_data, native_when_possible(), - )?; - Ok(CallResult { return_data, changes }) + false, + ) + .map(|(result, _, _)| result)?; + self.backend.destroy_state(state)?; + Ok(return_data) } fn contextual_call< @@ -192,28 +187,40 @@ where //TODO: Find a better way to prevent double block initialization if method != "Core_initialise_block" && initialised_block.map(|id| id != *at).unwrap_or(true) { let header = prepare_environment_block()?; - self.call_at_state(&state, changes, "Core_initialise_block", &header.encode(), manager.clone())?; + state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), + changes, + &self.executor, + "Core_initialise_block", + &header.encode(), + manager.clone(), + false, + )?; *initialised_block = Some(*at); } - self.call_at_state(&state, changes, method, call_data, manager).map(|cr| cr.0) + let result = state_machine::execute_using_consensus_failure_handler( + &state, + self.backend.changes_trie_storage(), + changes, + &self.executor, + method, + call_data, + manager, + false, + ) + .map(|(result, _, _)| result)?; + + self.backend.destroy_state(state)?; + Ok(result) } fn runtime_version(&self, id: &BlockId) -> error::Result { let mut overlay = OverlayedChanges::default(); let state = self.backend.state_at(*id)?; - use state_machine::Backend; - let code = state.storage(well_known_keys::CODE) - .map_err(|e| error::ErrorKind::Execution(Box::new(e)))? - .ok_or(error::ErrorKind::VersionInvalid)? - .to_vec(); - let heap_pages = state.storage(well_known_keys::HEAP_PAGES) - .map_err(|e| error::ErrorKind::Execution(Box::new(e)))? - .and_then(|v| u64::decode(&mut &v[..])) - .unwrap_or(1024) as usize; - let mut ext = Ext::new(&mut overlay, &state, self.backend.changes_trie_storage()); - self.executor.runtime_version(&mut ext, heap_pages, &code) + self.executor.runtime_version(&mut ext) .ok_or(error::ErrorKind::VersionInvalid.into()) } diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 79a112e616..f02e25f78c 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -230,7 +230,6 @@ impl Client where let (genesis_storage, children_genesis_storage) = build_genesis_storage.build_storage()?; let mut op = backend.begin_operation(BlockId::Hash(Default::default()))?; let state_root = op.reset_storage(genesis_storage, children_genesis_storage)?; - let genesis_block = genesis::construct_genesis_block::(state_root.into()); info!("Initialising Genesis block/state (state: {}, header-hash: {})", genesis_block.header().state_root(), genesis_block.header().hash()); op.set_block_data( @@ -284,8 +283,8 @@ impl Client where match self.backend.blockchain().cache().and_then(|cache| cache.authorities_at(*id)) { Some(cached_value) => Ok(cached_value), None => self.executor.call(id, "Core_authorities", &[]) - .and_then(|r| Vec::>::decode(&mut &r.return_data[..]) - .ok_or(error::ErrorKind::InvalidAuthoritiesSet.into())) + .and_then(|r| Vec::>::decode(&mut &r[..]) + .ok_or_else(|| error::ErrorKind::InvalidAuthoritiesSet.into())) } } @@ -602,7 +601,7 @@ impl Client where ); let (_, storage_update, changes_update) = r?; overlay.commit_prospective(); - (Some(storage_update), Some(changes_update), Some(overlay.into_committed())) + (Some(storage_update), Some(changes_update), Some(overlay.into_committed().collect())) }, None => (None, None, None) }; @@ -633,7 +632,10 @@ impl Client where transaction.update_authorities(authorities); } if let Some(storage_update) = storage_update { - transaction.update_storage(storage_update)?; + transaction.update_db_storage(storage_update)?; + } + if let Some(storage_changes) = storage_changes.clone() { + transaction.update_storage(storage_changes)?; } if let Some(Some(changes_update)) = changes_update { transaction.update_changes_trie(changes_update)?; @@ -646,7 +648,7 @@ impl Client where if let Some(storage_changes) = storage_changes { // TODO [ToDr] How to handle re-orgs? Should we re-emit all storage changes? self.storage_notifications.lock() - .trigger(&hash, storage_changes); + .trigger(&hash, storage_changes.into_iter()); } if finalized { diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 896f9821de..606f03d870 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -448,7 +448,7 @@ where self.pending_authorities = Some(authorities); } - fn update_storage(&mut self, update: as StateBackend>::Transaction) -> error::Result<()> { + fn update_db_storage(&mut self, update: as StateBackend>::Transaction) -> error::Result<()> { self.new_state = Some(self.old_state.update(update)); Ok(()) } @@ -491,6 +491,10 @@ where self.aux = Some(ops.into_iter().collect()); Ok(()) } + + fn update_storage(&mut self, _update: Vec<(Vec, Option>)>) -> error::Result<()> { + Ok(()) + } } /// In-memory backend. Keeps all states and blocks in memory. Useful for testing. diff --git a/core/client/src/lib.rs b/core/client/src/lib.rs index fb07c130b2..3bb65df9d1 100644 --- a/core/client/src/lib.rs +++ b/core/client/src/lib.rs @@ -102,7 +102,7 @@ mod notifications; #[cfg(feature = "std")] pub use blockchain::Info as ChainInfo; #[cfg(feature = "std")] -pub use call_executor::{CallResult, CallExecutor, LocalCallExecutor}; +pub use call_executor::{CallExecutor, LocalCallExecutor}; #[cfg(feature = "std")] pub use client::{ new_with_backend, diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 79a636bfbc..6beaf1271b 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -188,7 +188,7 @@ where self.authorities = Some(authorities); } - fn update_storage(&mut self, _update: >::Transaction) -> ClientResult<()> { + fn update_db_storage(&mut self, _update: >::Transaction) -> ClientResult<()> { // we're not storing anything locally => ignore changes Ok(()) } @@ -210,6 +210,11 @@ where self.aux_ops = ops.into_iter().collect(); Ok(()) } + + fn update_storage(&mut self, _update: Vec<(Vec, Option>)>) -> ClientResult<()> { + // we're not storing anything locally => ignore changes + Ok(()) + } } impl StateBackend for OnDemandState diff --git a/core/client/src/light/call_executor.rs b/core/client/src/light/call_executor.rs index d30e459215..84d7545d6f 100644 --- a/core/client/src/light/call_executor.rs +++ b/core/client/src/light/call_executor.rs @@ -31,7 +31,7 @@ use state_machine::{self, Backend as StateBackend, CodeExecutor, OverlayedChange use hash_db::Hasher; use blockchain::Backend as ChainBackend; -use call_executor::{CallExecutor, CallResult}; +use call_executor::CallExecutor; use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; use light::fetcher::{Fetcher, RemoteCallRequest}; use executor::{RuntimeVersion, NativeVersion}; @@ -74,7 +74,7 @@ where { type Error = ClientError; - fn call(&self, id: &BlockId, method: &str, call_data: &[u8]) -> ClientResult { + fn call(&self, id: &BlockId, method: &str, call_data: &[u8]) -> ClientResult> { let block_hash = self.blockchain.expect_block_hash_from_id(id)?; let block_header = self.blockchain.expect_header(id.clone())?; @@ -105,12 +105,12 @@ where return Err(ClientErrorKind::NotAvailableOnLightClient.into()); } - self.call(at, method, call_data).map(|cr| cr.return_data) + self.call(at, method, call_data) } fn runtime_version(&self, id: &BlockId) -> ClientResult { let call_result = self.call(id, "version", &[])?; - RuntimeVersion::decode(&mut call_result.return_data.as_slice()) + RuntimeVersion::decode(&mut call_result.as_slice()) .ok_or_else(|| ClientErrorKind::VersionInvalid.into()) } @@ -189,7 +189,7 @@ pub fn check_execution_proof( executor: &E, request: &RemoteCallRequest
    , remote_proof: Vec> -) -> ClientResult +) -> ClientResult> where Header: HeaderT, E: CodeExecutor, @@ -226,7 +226,7 @@ pub fn check_execution_proof( &request.call_data, )?; - Ok(CallResult { return_data: local_result, changes }) + Ok(local_result) } #[cfg(test)] @@ -273,7 +273,7 @@ mod tests { retry_count: None, }, remote_execution_proof).unwrap(); - (remote_result, local_result.return_data) + (remote_result, local_result) } // prepare remote client diff --git a/core/client/src/light/fetcher.rs b/core/client/src/light/fetcher.rs index 1171e15f49..5f9aed2fe1 100644 --- a/core/client/src/light/fetcher.rs +++ b/core/client/src/light/fetcher.rs @@ -28,7 +28,6 @@ use runtime_primitives::traits::{As, Block as BlockT, Header as HeaderT, NumberF use state_machine::{CodeExecutor, ChangesTrieRootsStorage, ChangesTrieAnchorBlockId, TrieBackend, read_proof_check, key_changes_proof_check, create_proof_check_backend_storage}; -use call_executor::CallResult; use cht; use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; use light::blockchain::{Blockchain, Storage as BlockchainStorage}; @@ -118,7 +117,7 @@ pub trait Fetcher: Send + Sync { /// Remote storage read future. type RemoteReadResult: IntoFuture>, Error=ClientError>; /// Remote call result future. - type RemoteCallResult: IntoFuture; + type RemoteCallResult: IntoFuture, Error=ClientError>; /// Remote changes result future. type RemoteChangesResult: IntoFuture, u32)>, Error=ClientError>; @@ -156,7 +155,7 @@ pub trait FetchChecker: Send + Sync { &self, request: &RemoteCallRequest, remote_proof: Vec> - ) -> ClientResult; + ) -> ClientResult>; /// Check remote changes query proof. fn check_changes_proof( &self, @@ -344,7 +343,7 @@ impl FetchChecker for LightDataChecker, remote_proof: Vec> - ) -> ClientResult { + ) -> ClientResult> { check_execution_proof::<_, _, H>(&self.executor, request, remote_proof) } @@ -392,7 +391,6 @@ pub mod tests { use futures::future::{ok, err, FutureResult}; use parking_lot::Mutex; use keyring::Keyring; - use call_executor::CallResult; use client::tests::prepare_client_with_key_changes; use executor::{self, NativeExecutionDispatch}; use error::Error as ClientError; @@ -410,12 +408,12 @@ pub mod tests { use state_machine::Backend; use super::*; - pub type OkCallFetcher = Mutex; + pub type OkCallFetcher = Mutex>; impl Fetcher for OkCallFetcher { type RemoteHeaderResult = FutureResult; type RemoteReadResult = FutureResult>, ClientError>; - type RemoteCallResult = FutureResult; + type RemoteCallResult = FutureResult, ClientError>; type RemoteChangesResult = FutureResult, u32)>, ClientError>; fn remote_header(&self, _request: RemoteHeaderRequest
    ) -> Self::RemoteHeaderResult { diff --git a/core/executor/src/lib.rs b/core/executor/src/lib.rs index 5f05b33f53..ae2b383ae7 100644 --- a/core/executor/src/lib.rs +++ b/core/executor/src/lib.rs @@ -44,9 +44,6 @@ extern crate parking_lot; #[macro_use] extern crate log; -#[macro_use] -extern crate lazy_static; - #[macro_use] extern crate error_chain; @@ -84,7 +81,5 @@ pub trait RuntimeInfo { fn runtime_version> ( &self, ext: &mut E, - heap_pages: usize, - code: &[u8] ) -> Option; } diff --git a/core/executor/src/native_executor.rs b/core/executor/src/native_executor.rs index 15cc8abac3..09606bc904 100644 --- a/core/executor/src/native_executor.rs +++ b/core/executor/src/native_executor.rs @@ -14,38 +14,34 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . +use std::borrow::BorrowMut; +use std::cell::{RefMut, RefCell}; use error::{Error, ErrorKind, Result}; use state_machine::{CodeExecutor, Externalities}; use wasm_executor::WasmExecutor; -use wasmi::Module as WasmModule; +use wasmi::{Module as WasmModule, ModuleRef as WasmModuleInstanceRef}; use runtime_version::{NativeVersion, RuntimeVersion}; use std::collections::HashMap; use codec::Decode; -use primitives::hashing::blake2_256; -use parking_lot::{Mutex, MutexGuard}; use RuntimeInfo; use primitives::Blake2Hasher; +use primitives::storage::well_known_keys; + +/// Default num of pages for the heap +const DEFAULT_HEAP_PAGES :u64 = 1024; // For the internal Runtime Cache: // Is it compatible enough to run this natively or do we need to fall back on the WasmModule enum RuntimePreproc { InvalidCode, - ValidCode(WasmModule, Option), + ValidCode(WasmModuleInstanceRef, Option), } type CacheType = HashMap<[u8; 32], RuntimePreproc>; -lazy_static! { - static ref RUNTIMES_CACHE: Mutex = Mutex::new(HashMap::new()); -} - -// helper function to generate low-over-head caching_keys -// it is asserted that part of the audit process that any potential on-chain code change -// will have done is to ensure that the two-x hash is different to that of any other -// :code value from the same chain -fn gen_cache_key(code: &[u8]) -> [u8; 32] { - blake2_256(code) +thread_local! { + static RUNTIMES_CACHE: RefCell = RefCell::new(HashMap::new()); } /// fetch a runtime version from the cache or if there is no cached version yet, create @@ -53,27 +49,48 @@ fn gen_cache_key(code: &[u8]) -> [u8; 32] { /// can be used by comparing returned RuntimeVersion to `ref_version` fn fetch_cached_runtime_version<'a, E: Externalities>( wasm_executor: &WasmExecutor, - cache: &'a mut MutexGuard, + cache: &'a mut RefMut, ext: &mut E, - heap_pages: usize, - code: &[u8] -) -> Result<(&'a WasmModule, &'a Option)> { - let maybe_runtime_preproc = cache.entry(gen_cache_key(code)) - .or_insert_with(|| match WasmModule::from_buffer(code) { - Ok(module) => { - let version = wasm_executor.call_in_wasm_module(ext, heap_pages, &module, "Core_version", &[]) - .ok() - .and_then(|v| RuntimeVersion::decode(&mut v.as_slice())); - RuntimePreproc::ValidCode(module, version) - } - Err(e) => { - trace!(target: "executor", "Invalid code presented to executor ({:?})", e); - RuntimePreproc::InvalidCode +) -> Result<(&'a WasmModuleInstanceRef, &'a Option)> { + + let code_hash = match ext.storage_hash(well_known_keys::CODE) { + Some(code_hash) => code_hash, + None => return Err(ErrorKind::InvalidCode(vec![]).into()), + }; + let maybe_runtime_preproc = cache.borrow_mut().entry(code_hash.into()) + .or_insert_with(|| { + let code = match ext.storage(well_known_keys::CODE) { + Some(code) => code, + None => return RuntimePreproc::InvalidCode, + }; + let heap_pages = match ext.storage(well_known_keys::HEAP_PAGES) { + Some(pages) => u64::decode(&mut &pages[..]).unwrap_or(DEFAULT_HEAP_PAGES), + None => DEFAULT_HEAP_PAGES, + }; + match WasmModule::from_buffer(code) + .map_err(|_| ErrorKind::InvalidCode(vec![]).into()) + .and_then(|module| wasm_executor.prepare_module(ext, heap_pages as usize, &module)) + { + Ok(module) => { + let version = wasm_executor.call_in_wasm_module(ext, &module, "Core_version", &[]) + .ok() + .and_then(|v| RuntimeVersion::decode(&mut v.as_slice())); + RuntimePreproc::ValidCode(module, version) + } + Err(e) => { + trace!(target: "executor", "Invalid code presented to executor ({:?})", e); + RuntimePreproc::InvalidCode + } } }); match maybe_runtime_preproc { - RuntimePreproc::InvalidCode => Err(ErrorKind::InvalidCode(code.into()).into()), - RuntimePreproc::ValidCode(m, v) => Ok((m, v)), + RuntimePreproc::InvalidCode => { + let code = ext.storage(well_known_keys::CODE).unwrap_or(vec![]); + Err(ErrorKind::InvalidCode(code).into()) + }, + RuntimePreproc::ValidCode(m, v) => { + Ok((m, v)) + } } } @@ -154,10 +171,10 @@ impl RuntimeInfo for NativeExecutor { fn runtime_version>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], ) -> Option { - fetch_cached_runtime_version(&self.fallback, &mut RUNTIMES_CACHE.lock(), ext, heap_pages, code).ok()?.1.clone() + RUNTIMES_CACHE.with(|c| + fetch_cached_runtime_version(&self.fallback, &mut c.borrow_mut(), ext).ok()?.1.clone() + ) } } @@ -167,30 +184,30 @@ impl CodeExecutor for NativeExecutor>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], method: &str, data: &[u8], use_native: bool, ) -> (Result>, bool) { - let mut c = RUNTIMES_CACHE.lock(); - let (module, onchain_version) = match fetch_cached_runtime_version(&self.fallback, &mut c, ext, heap_pages, code) { - Ok((module, onchain_version)) => (module, onchain_version), - Err(_) => return (Err(ErrorKind::InvalidCode(code.into()).into()), false), - }; - match (use_native, onchain_version.as_ref().map_or(false, |v| v.can_call_with(&self.native_version.runtime_version))) { - (_, false) => { - trace!(target: "executor", "Request for native execution failed (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); - (self.fallback.call_in_wasm_module(ext, heap_pages, module, method, data), false) - } - (false, _) => { - (self.fallback.call_in_wasm_module(ext, heap_pages, module, method, data), false) + RUNTIMES_CACHE.with(|c| { + let mut c = c.borrow_mut(); + let (module, onchain_version) = match fetch_cached_runtime_version(&self.fallback, &mut c, ext) { + Ok((module, onchain_version)) => (module, onchain_version), + Err(e) => return (Err(e), false), + }; + match (use_native, onchain_version.as_ref().map_or(false, |v| v.can_call_with(&self.native_version.runtime_version))) { + (_, false) => { + trace!(target: "executor", "Request for native execution failed (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); + (self.fallback.call_in_wasm_module(ext, module, method, data), false) + } + (false, _) => { + (self.fallback.call_in_wasm_module(ext, module, method, data), false) + } + _ => { + trace!(target: "executor", "Request for native execution succeeded (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); + (D::dispatch(ext, method, data), true) + } } - _ => { - trace!(target: "executor", "Request for native execution succeeded (native: {}, chain: {})", self.native_version.runtime_version, onchain_version.as_ref().map_or_else(||"".into(), |v| format!("{}", v))); - (D::dispatch(ext, method, data), true) - } - } + }) } } diff --git a/core/executor/src/wasm_executor.rs b/core/executor/src/wasm_executor.rs index 40357946f0..60e2c84b1e 100644 --- a/core/executor/src/wasm_executor.rs +++ b/core/executor/src/wasm_executor.rs @@ -19,10 +19,10 @@ use std::collections::HashMap; use wasmi::{ - Module, ModuleInstance, MemoryInstance, MemoryRef, TableRef, ImportsBuilder + Module, ModuleInstance, MemoryInstance, MemoryRef, TableRef, ImportsBuilder, ModuleRef, }; use wasmi::RuntimeValue::{I32, I64}; -use wasmi::memory_units::{Pages, Bytes}; +use wasmi::memory_units::Pages; use state_machine::Externalities; use error::{Error, ErrorKind, Result}; use wasm_utils::UserError; @@ -39,19 +39,17 @@ struct Heap { } impl Heap { - /// Construct new `Heap` struct with a given number of pages. + /// Construct new `Heap` struct. /// /// Returns `Err` if the heap couldn't allocate required /// number of pages. /// /// This could mean that wasm binary specifies memory /// limit and we are trying to allocate beyond that limit. - fn new(memory: &MemoryRef, pages: usize) -> Result { - let prev_page_count = memory.initial(); - memory.grow(Pages(pages)).map_err(|_| Error::from(ErrorKind::Runtime))?; - Ok(Heap { - end: Bytes::from(prev_page_count).0 as u32, - }) + fn new(memory: &MemoryRef) -> Self { + Heap { + end: memory.used_size().0 as u32, + } } fn allocate(&mut self, size: u32) -> u32 { @@ -83,10 +81,10 @@ struct FunctionExecutor<'e, E: Externalities + 'e> { } impl<'e, E: Externalities> FunctionExecutor<'e, E> { - fn new(m: MemoryRef, heap_pages: usize, t: Option, e: &'e mut E) -> Result { + fn new(m: MemoryRef, t: Option, e: &'e mut E) -> Result { Ok(FunctionExecutor { sandbox_store: sandbox::Store::new(), - heap: Heap::new(&m, heap_pages)?, + heap: Heap::new(&m), memory: m, table: t, ext: e, @@ -638,51 +636,43 @@ impl WasmExecutor { method: &str, data: &[u8], ) -> Result> { - let module = ::wasmi::Module::from_buffer(code).expect("all modules compiled with rustc are valid wasm code; qed"); - self.call_in_wasm_module(ext, heap_pages, &module, method, data) + let module = ::wasmi::Module::from_buffer(code)?; + let module = self.prepare_module(ext, heap_pages, &module)?; + self.call_in_wasm_module(ext, &module, method, data) + } + + fn get_mem_instance(module: &ModuleRef) -> Result { + Ok(module + .export_by_name("memory") + .ok_or_else(|| Error::from(ErrorKind::InvalidMemoryReference))? + .as_memory() + .ok_or_else(|| Error::from(ErrorKind::InvalidMemoryReference))? + .clone()) } /// Call a given method in the given wasm-module runtime. pub fn call_in_wasm_module>( &self, ext: &mut E, - heap_pages: usize, - module: &Module, + module_instance: &ModuleRef, method: &str, data: &[u8], ) -> Result> { - // start module instantiation. Don't run 'start' function yet. - let intermediate_instance = ModuleInstance::new( - module, - &ImportsBuilder::new() - .with_resolver("env", FunctionExecutor::::resolver()) - )?; - // extract a reference to a linear memory, optional reference to a table // and then initialize FunctionExecutor. - let memory = intermediate_instance - .not_started_instance() - .export_by_name("memory") - // TODO: with code coming from the blockchain it isn't strictly been compiled with rustc anymore. - // these assumptions are probably not true anymore - .expect("all modules compiled with rustc should have an export named 'memory'; qed") - .as_memory() - .expect("in module generated by rustc export named 'memory' should be a memory; qed") - .clone(); - let table: Option = intermediate_instance - .not_started_instance() + let memory = Self::get_mem_instance(module_instance)?; + let table: Option = module_instance .export_by_name("__indirect_function_table") .and_then(|e| e.as_table().cloned()); - let mut fec = FunctionExecutor::new(memory.clone(), heap_pages, table, ext)?; - - // finish instantiation by running 'start' function (if any). - let instance = intermediate_instance.run_start(&mut fec)?; + let low = memory.lowest_used(); + let used_mem = memory.used_size(); + let mut fec = FunctionExecutor::new(memory.clone(), table, ext)?; let size = data.len() as u32; let offset = fec.heap.allocate(size); memory.set(offset, &data)?; - let result = instance.invoke_export( + let result = module_instance.invoke_export( method, &[ I32(offset as i32), @@ -690,22 +680,57 @@ impl WasmExecutor { ], &mut fec ); - let returned = match result { - Ok(x) => x, + let result = match result { + Ok(Some(I64(r))) => { + let offset = r as u32; + let length = (r >> 32) as u32 as usize; + memory.get(offset, length) + .map_err(|_| ErrorKind::Runtime.into()) + }, + Ok(_) => Err(ErrorKind::InvalidReturn.into()), Err(e) => { - trace!(target: "wasm-executor", "Failed to execute code with {} pages", heap_pages); - return Err(e.into()) + trace!(target: "wasm-executor", "Failed to execute code with {} pages", memory.current_size().0); + Err(e.into()) }, }; - if let Some(I64(r)) = returned { - let offset = r as u32; - let length = (r >> 32) as u32 as usize; - memory.get(offset, length) - .map_err(|_| ErrorKind::Runtime.into()) - } else { - Err(ErrorKind::InvalidReturn.into()) + // cleanup module instance for next use + let new_low = memory.lowest_used(); + if new_low < low { + memory.zero(new_low as usize, (low - new_low) as usize)?; + memory.reset_lowest_used(low); } + memory.with_direct_access_mut(|buf| buf.resize(used_mem.0, 0)); + result + } + + /// Prepare module instance + pub fn prepare_module>( + &self, + ext: &mut E, + heap_pages: usize, + module: &Module, + ) -> Result + { + // start module instantiation. Don't run 'start' function yet. + let intermediate_instance = ModuleInstance::new( + module, + &ImportsBuilder::new() + .with_resolver("env", FunctionExecutor::::resolver()) + )?; + + // extract a reference to a linear memory, optional reference to a table + // and then initialize FunctionExecutor. + let memory = Self::get_mem_instance(intermediate_instance.not_started_instance())?; + memory.grow(Pages(heap_pages)).map_err(|_| Error::from(ErrorKind::Runtime))?; + let table: Option = intermediate_instance + .not_started_instance() + .export_by_name("__indirect_function_table") + .and_then(|e| e.as_table().cloned()); + let mut fec = FunctionExecutor::new(memory.clone(), table, ext)?; + + // finish instantiation by running 'start' function (if any). + Ok(intermediate_instance.run_start(&mut fec)?) } } diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index 0c5140f2fe..db56eaf592 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -24,7 +24,7 @@ use futures::sync::oneshot::{channel, Receiver, Sender}; use linked_hash_map::LinkedHashMap; use linked_hash_map::Entry; use parking_lot::Mutex; -use client::{self, error::{Error as ClientError, ErrorKind as ClientErrorKind}}; +use client::{error::{Error as ClientError, ErrorKind as ClientErrorKind}}; use client::light::fetcher::{Fetcher, FetchChecker, RemoteHeaderRequest, RemoteCallRequest, RemoteReadRequest, RemoteChangesRequest, ChangesProof}; use io::SyncIo; @@ -107,7 +107,7 @@ struct Request { enum RequestData { RemoteHeader(RemoteHeaderRequest, Sender>), RemoteRead(RemoteReadRequest, Sender>, ClientError>>), - RemoteCall(RemoteCallRequest, Sender>), + RemoteCall(RemoteCallRequest, Sender, ClientError>>), RemoteChanges(RemoteChangesRequest, Sender, u32)>, ClientError>>), } @@ -312,7 +312,7 @@ impl Fetcher for OnDemand where { type RemoteHeaderResult = RemoteResponse; type RemoteReadResult = RemoteResponse>>; - type RemoteCallResult = RemoteResponse; + type RemoteCallResult = RemoteResponse>; type RemoteChangesResult = RemoteResponse, u32)>>; fn remote_header(&self, request: RemoteHeaderRequest) -> Self::RemoteHeaderResult { @@ -529,7 +529,7 @@ pub mod tests { use futures::Future; use parking_lot::RwLock; use runtime_primitives::traits::NumberFor; - use client::{self, error::{ErrorKind as ClientErrorKind, Result as ClientResult}}; + use client::{error::{ErrorKind as ClientErrorKind, Result as ClientResult}}; use client::light::fetcher::{Fetcher, FetchChecker, RemoteHeaderRequest, RemoteCallRequest, RemoteReadRequest, RemoteChangesRequest, ChangesProof}; use config::Roles; @@ -567,12 +567,9 @@ pub mod tests { } } - fn check_execution_proof(&self, _: &RemoteCallRequest
    , _: Vec>) -> ClientResult { + fn check_execution_proof(&self, _: &RemoteCallRequest
    , _: Vec>) -> ClientResult> { match self.ok { - true => Ok(client::CallResult { - return_data: vec![42], - changes: Default::default(), - }), + true => Ok(vec![42]), false => Err(ClientErrorKind::Backend("Test error".into()).into()), } } @@ -796,7 +793,7 @@ pub mod tests { }); let thread = ::std::thread::spawn(move || { let result = response.wait().unwrap(); - assert_eq!(result.return_data, vec![42]); + assert_eq!(result, vec![42]); }); receive_call_response(&*on_demand, &mut network, 0, 0); diff --git a/core/rpc/src/lib.rs b/core/rpc/src/lib.rs index e96078ff6e..2e7d4b1fa8 100644 --- a/core/rpc/src/lib.rs +++ b/core/rpc/src/lib.rs @@ -37,7 +37,6 @@ extern crate error_chain; extern crate jsonrpc_macros; #[macro_use] extern crate log; -#[macro_use] extern crate serde_derive; #[cfg(test)] diff --git a/core/rpc/src/state/mod.rs b/core/rpc/src/state/mod.rs index d044962f0a..19f4046aa8 100644 --- a/core/rpc/src/state/mod.rs +++ b/core/rpc/src/state/mod.rs @@ -144,8 +144,7 @@ impl StateApi for State where .call( &BlockId::Hash(block), &method, &data.0 - )? - .return_data; + )?; Ok(Bytes(return_data)) } diff --git a/core/state-machine/src/backend.rs b/core/state-machine/src/backend.rs index f9949deae9..ea1d19859e 100644 --- a/core/state-machine/src/backend.rs +++ b/core/state-machine/src/backend.rs @@ -40,10 +40,15 @@ pub trait Backend { /// Type of trie backend storage. type TrieBackendStorage: TrieBackendStorage; - /// Get keyed storage associated with specific address, or None if there is nothing associated. + /// Get keyed storage or None if there is nothing associated. fn storage(&self, key: &[u8]) -> Result>, Self::Error>; - /// Get keyed child storage associated with specific address, or None if there is nothing associated. + /// Get keyed storage value hash or None if there is nothing associated. + fn storage_hash(&self, key: &[u8]) -> Result, Self::Error> { + self.storage(key).map(|v| v.map(|v| H::hash(&v))) + } + + /// Get keyed child storage or None if there is nothing associated. fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Result>, Self::Error>; /// true if a key exists in storage. diff --git a/core/state-machine/src/ext.rs b/core/state-machine/src/ext.rs index 1bcb3fb732..6274eef720 100644 --- a/core/state-machine/src/ext.rs +++ b/core/state-machine/src/ext.rs @@ -184,6 +184,11 @@ where self.backend.storage(key).expect(EXT_NOT_ALLOWED_TO_FAIL)) } + fn storage_hash(&self, key: &[u8]) -> Option { + self.overlay.storage(key).map(|x| x.map(|x| H::hash(x))).unwrap_or_else(|| + self.backend.storage_hash(key).expect(EXT_NOT_ALLOWED_TO_FAIL)) + } + fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Option> { self.overlay.child_storage(storage_key, key).map(|x| x.map(|x| x.to_vec())).unwrap_or_else(|| self.backend.child_storage(storage_key, key).expect(EXT_NOT_ALLOWED_TO_FAIL)) diff --git a/core/state-machine/src/lib.rs b/core/state-machine/src/lib.rs index 5f9757bd55..bc0189d398 100644 --- a/core/state-machine/src/lib.rs +++ b/core/state-machine/src/lib.rs @@ -65,9 +65,6 @@ pub use proving_backend::{create_proof_check_backend, create_proof_check_backend pub use trie_backend_essence::{TrieBackendStorage, Storage}; pub use trie_backend::TrieBackend; -/// Default num of pages for the heap -const DEFAULT_HEAP_PAGES :u64 = 1024; - /// State Machine Error bound. /// /// This should reflect WASM error type bound for future compatibility. @@ -98,10 +95,15 @@ impl fmt::Display for ExecutionError { /// Externalities: pinned to specific active address. pub trait Externalities { - /// Read storage of current contract being called. + /// Read runtime storage. fn storage(&self, key: &[u8]) -> Option>; - /// Read child storage of current contract being called. + /// Get storage value hash. This may be optimized for large values. + fn storage_hash(&self, key: &[u8]) -> Option { + self.storage(key).map(|v| H::hash(&v)) + } + + /// Read child runtime storage. fn child_storage(&self, storage_key: &[u8], key: &[u8]) -> Option>; /// Set storage entry `key` of current contract being called (effective immediately). @@ -171,8 +173,6 @@ pub trait CodeExecutor: Sized + Send + Sync { fn call>( &self, ext: &mut E, - heap_pages: usize, - code: &[u8], method: &str, data: &[u8], use_native: bool @@ -297,14 +297,6 @@ where { let strategy: ExecutionStrategy = (&manager).into(); - // make a copy. - let code = try_read_overlay_value(overlay, backend, well_known_keys::CODE)? - .ok_or_else(|| Box::new(ExecutionError::CodeEntryDoesNotExist) as Box)? - .to_vec(); - - let heap_pages = try_read_overlay_value(overlay, backend, well_known_keys::HEAP_PAGES)? - .and_then(|v| u64::decode(&mut &v[..])).unwrap_or(DEFAULT_HEAP_PAGES) as usize; - // read changes trie configuration. The reason why we're doing it here instead of the // `OverlayedChanges` constructor is that we need proofs for this read as a part of // proof-of-execution on light clients. And the proof is recorded by the backend which @@ -328,8 +320,6 @@ where let mut externalities = ext::Ext::new(overlay, backend, changes_trie_storage); let retval = exec.call( &mut externalities, - heap_pages, - &code, method, call_data, // attempt to run native first, if we're not directed to run wasm only @@ -357,8 +347,6 @@ where let mut externalities = ext::Ext::new(overlay, backend, changes_trie_storage); let retval = exec.call( &mut externalities, - heap_pages, - &code, method, call_data, false, @@ -614,8 +602,6 @@ mod tests { fn call>( &self, ext: &mut E, - _heap_pages: usize, - _code: &[u8], _method: &str, _data: &[u8], use_native: bool diff --git a/core/state-machine/src/overlayed_changes.rs b/core/state-machine/src/overlayed_changes.rs index 29ff7262da..3a208ad3e2 100644 --- a/core/state-machine/src/overlayed_changes.rs +++ b/core/state-machine/src/overlayed_changes.rs @@ -44,7 +44,7 @@ pub struct OverlayedValue { /// Current value. None if value has been deleted. pub value: Option>, /// The set of extinsic indices where the values has been changed. - /// Is filled only if runtime ahs announced changes trie support. + /// Is filled only if runtime has announced changes trie support. pub extrinsics: Option>, } diff --git a/core/state-machine/src/testing.rs b/core/state-machine/src/testing.rs index 876a190a96..b9f14f18e5 100644 --- a/core/state-machine/src/testing.rs +++ b/core/state-machine/src/testing.rs @@ -23,7 +23,8 @@ use heapsize::HeapSizeOf; use trie::trie_root; use backend::InMemory; use changes_trie::{compute_changes_trie_root, InMemoryStorage as ChangesTrieInMemoryStorage, AnchorBlockId}; -use primitives::storage::well_known_keys::CHANGES_TRIE_CONFIG; +use primitives::storage::well_known_keys::{CHANGES_TRIE_CONFIG, CODE, HEAP_PAGES}; +use codec::Encode; use super::{Externalities, OverlayedChanges}; /// Simple HashMap-based Externalities impl. @@ -31,11 +32,17 @@ pub struct TestExternalities where H::Out: HeapSizeOf { inner: HashMap, Vec>, changes_trie_storage: ChangesTrieInMemoryStorage, changes: OverlayedChanges, + code: Vec, } impl TestExternalities where H::Out: HeapSizeOf { /// Create a new instance of `TestExternalities` pub fn new(inner: HashMap, Vec>) -> Self { + Self::new_with_code(&[], inner) + } + + /// Create a new instance of `TestExternalities` + pub fn new_with_code(code: &[u8], inner: HashMap, Vec>) -> Self { let mut overlay = OverlayedChanges::default(); super::set_changes_trie_config( &mut overlay, @@ -47,6 +54,7 @@ impl TestExternalities where H::Out: HeapSizeOf { inner, changes_trie_storage: ChangesTrieInMemoryStorage::new(), changes: overlay, + code: code.to_vec(), } } @@ -94,13 +102,18 @@ impl From< HashMap, Vec> > for TestExternalities where inner: hashmap, changes_trie_storage: ChangesTrieInMemoryStorage::new(), changes: Default::default(), + code: Default::default(), } } } impl Externalities for TestExternalities where H::Out: Ord + HeapSizeOf { fn storage(&self, key: &[u8]) -> Option> { - self.inner.get(key).map(|x| x.to_vec()) + match key { + CODE => Some(self.code.clone()), + HEAP_PAGES => Some(8u64.encode()), + _ => self.inner.get(key).map(|x| x.to_vec()), + } } fn child_storage(&self, _storage_key: &[u8], _key: &[u8]) -> Option> { diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 81ebc41cba2fd76b0f351690a23482ac162df581..56ba7e35f138a83916bd8f93c578ab046b606de7 100644 GIT binary patch delta 7135 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 b_QHuxEiqWNs;06AjYngd-dMahp6dR8z=}Co delta 7787 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::new(map![ + let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -134,16 +134,16 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, BLOATY_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let v = executor().call(&mut t, 8, BLOATY_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); + let v = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); let r = ApplyResult::decode(&mut &v[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn bad_extrinsic_with_native_equivalent_code_gives_error() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -155,16 +155,16 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let v = executor().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); + let v = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0.unwrap(); let r = ApplyResult::decode(&mut &v[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn successful_execution_with_native_equivalent_code_gives_ok() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(COMPACT_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -176,9 +176,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let r = executor().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; + let r = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; assert!(r.is_ok()); runtime_io::with_externalities(&mut t, || { @@ -189,7 +189,7 @@ mod tests { #[test] fn successful_execution_with_foreign_code_gives_ok() { - let mut t = TestExternalities::::new(map![ + let mut t = TestExternalities::::new_with_code(BLOATY_CODE, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -201,9 +201,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let r = executor().call(&mut t, 8, BLOATY_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; + let r = executor().call(&mut t, "Core_initialise_block", &vec![].and(&from_block_number(1u64)), true).0; assert!(r.is_ok()); - let r = executor().call(&mut t, 8, BLOATY_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; + let r = executor().call(&mut t, "BlockBuilder_apply_extrinsic", &vec![].and(&xt()), true).0; assert!(r.is_ok()); runtime_io::with_externalities(&mut t, || { @@ -212,10 +212,10 @@ mod tests { }); } - fn new_test_ext(support_changes_trie: bool) -> TestExternalities { + fn new_test_ext(code: &[u8], support_changes_trie: bool) -> TestExternalities { use keyring::Keyring::*; let three = [3u8; 32].into(); - TestExternalities::new(GenesisConfig { + TestExternalities::new_with_code(code, GenesisConfig { consensus: Some(Default::default()), system: Some(SystemConfig { changes_trie_config: if support_changes_trie { Some(ChangesTrieConfiguration { @@ -387,9 +387,9 @@ mod tests { #[test] fn full_native_block_import_works() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); - executor().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0, true).0.unwrap(); + executor().call(&mut t, "Core_execute_block", &block1(false).0, true).0.unwrap(); runtime_io::with_externalities(&mut t, || { assert_eq!(Balances::total_balance(&alice()), 41); @@ -431,7 +431,7 @@ mod tests { ]); }); - executor().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block2().0, true).0.unwrap(); + executor().call(&mut t, "Core_execute_block", &block2().0, true).0.unwrap(); runtime_io::with_externalities(&mut t, || { assert_eq!(Balances::total_balance(&alice()), 30); @@ -505,7 +505,7 @@ mod tests { #[test] fn full_wasm_block_import_works() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0).unwrap(); @@ -646,7 +646,7 @@ mod tests { #[test] fn deploying_wasm_contract_should_work() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); let code_ctor_transfer = wabt::wat2wasm(&code_ctor(&code_transfer)).unwrap(); @@ -682,7 +682,7 @@ mod tests { ] ); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &b.0).unwrap(); + WasmExecutor::new().call(&mut t, 8, COMPACT_CODE,"Core_execute_block", &b.0).unwrap(); runtime_io::with_externalities(&mut t, || { // Verify that the contract constructor worked well and code of TRANSFER contract is actually deployed. @@ -692,7 +692,7 @@ mod tests { #[test] fn wasm_big_block_import_fails() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); assert!( WasmExecutor::new().call( @@ -707,12 +707,10 @@ mod tests { #[test] fn native_big_block_import_succeeds() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); Executor::new().call( &mut t, - 8, - COMPACT_CODE, "Core_execute_block", &block1big().0, true @@ -721,13 +719,11 @@ mod tests { #[test] fn native_big_block_import_fails_on_fallback() { - let mut t = new_test_ext(false); + let mut t = new_test_ext(COMPACT_CODE, false); assert!( Executor::new().call( &mut t, - 8, - COMPACT_CODE, "Core_execute_block", &block1big().0, false @@ -737,7 +733,8 @@ mod tests { #[test] fn panic_execution_gives_error() { - let mut t = TestExternalities::::new(map![ + let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.wasm"); + let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![69u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![70u8; 16], @@ -749,17 +746,17 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.wasm"); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "Core_initialise_block", &vec![].and(&from_block_number(1u64))); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); assert!(r.is_ok()); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); let r = ApplyResult::decode(&mut &r[..]).unwrap(); assert_eq!(r, Err(ApplyError::CantPay)); } #[test] fn successful_execution_gives_ok() { - let mut t = TestExternalities::::new(map![ + let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm"); + let mut t = TestExternalities::::new_with_code(foreign_code, map![ twox_128(&>::key_for(alice())).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![111u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], twox_128(>::key()).to_vec() => vec![0u8; 16], @@ -771,10 +768,9 @@ mod tests { twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); - let foreign_code = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm"); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "Core_initialise_block", &vec![].and(&from_block_number(1u64))); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_initialise_block", &vec![].and(&from_block_number(1u64))); assert!(r.is_ok()); - let r = WasmExecutor::new().call(&mut t, 8, &foreign_code[..], "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); + let r = WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "BlockBuilder_apply_extrinsic", &vec![].and(&xt())).unwrap(); let r = ApplyResult::decode(&mut &r[..]).unwrap(); assert_eq!(r, Ok(ApplyOutcome::Success)); @@ -786,15 +782,15 @@ mod tests { #[test] fn full_native_block_import_works_with_changes_trie() { - let mut t = new_test_ext(true); - Executor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(true).0, true).0.unwrap(); + let mut t = new_test_ext(COMPACT_CODE, true); + Executor::new().call(&mut t, "Core_execute_block", &block1(true).0, true).0.unwrap(); assert!(t.storage_changes_root(Default::default(), 0).is_some()); } #[test] fn full_wasm_block_import_works_with_changes_trie() { - let mut t = new_test_ext(true); + let mut t = new_test_ext(COMPACT_CODE, true); WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(true).0).unwrap(); assert!(t.storage_changes_root(Default::default(), 0).is_some()); @@ -808,9 +804,9 @@ mod tests { #[bench] fn wasm_execute_block(b: &mut Bencher) { b.iter(|| { - let mut t = new_test_ext(false); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block1(false).0).unwrap(); - WasmExecutor::new().call(&mut t, 8, COMPACT_CODE, "Core_execute_block", &block2().0).unwrap(); + let mut t = new_test_ext(COMPACT_CODE, false); + WasmExecutor::new().call(&mut t, "Core_execute_block", &block1(false).0).unwrap(); + WasmExecutor::new().call(&mut t, "Core_execute_block", &block2().0).unwrap(); }); } } diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index b73bd2e691a2704cdf31e0ba762d627c57ed11c1..657189d728982a285676bb91353fb1a98e30e24a 100644 GIT binary patch delta 86591 zcmeFacVHC7`#*j=JG*RwP&ev6lozQADK4AP9z{ zV4+D_EIGqZC$ z?WR)~HyuACNqzkB64yXR|7azT<3HCxwWQ?nCCg?r^?P47OVV_%Gp_5&DJWz3AOA39AS?JEs-PwLjuIs`QfHc? zpsq{Pbp`)3mX?+V2<}zV(g2s1mNco5H=J}kZ`zO(1m_I@qdDedE}sinx)dc2Z77Nh z|0O3UPb%jbk&7$WxjZE;m*YzLp3Hw<&sGMRyvd@%HCLPw3O180| z+4t-xHkZA}+6!f=@+y0<+jQmX2OfL$k%u3esmxGbR$fx3Dl3$=>;qQ8ma)%S-|v-I zm3gdW;BvNty{{}_N0s-Kovhuv$~(%(Y!~a@b&s-JnX61uUSo6E~HL%JfIL zT%JgmwX%Ha)#bB{xR)oab+uxBOlB#qST7_~*G#H7{LIpc8y0D`77p7xVA9fUn`$c) zeKV8>OIK{4#cL}?v(GO5>Ej`4ZG}sR?HzI9S|bnU)mpf;;;^OE*4!juxpc&r57b)d zpqce`R%C5eW$C24=X4RRD8v4D5Lb)RbS3alZTvgLKjSgxpBn!kR=r@G|9wFN5c1!L z`0o(^Jd*#cmw#{Le+zLz`VfK-)HYL)iF8q!u0&4Sey&|@03mMtXA;m4WQwQBmGlNoAEs#Q{n`IBK75tX!tBL*=4-p3;(4mfIzHN>dhO$^yrL z=Sl-E*5xbvYAdi86(~L>?(C@w*nB@=Su5s6vbREPZ>luVk5sI4`EL+In<~Bj4z$t% zVjC*N6U~$kto+B(Ynv(d+Gc13FGBg6#R-3FmL{@WvWIKt>}<(y56>~hU9DJCXs@|C$<%~cDYQ=a^<*= zY!m4n*sD>0uCS`|epz8}@4&Vz8MCKZ7fV2QF~LroRt+<8n*ClO>s4E~O^&kyF{p@{ z$^SIE-N}x}mh4P;JWV*9Q%vWi31{NOE1j6Z$|~*oo!GOolfZCyoaowxJw+qh@q-F# zbYb@qiLU9&dMjtdysoS{lKov-KO`4*V;z+<_JiG62ZexEc4w{dexf_epb5027O@so zV0T{3)>V%p{cU!C70Kqk4VcsRfwx&s#0AE3XoARipS=*m$*y>xJuI7Tznb+?(BZf> zY&TQ3*tf1_V{~P!ePRQ9#31mB2Qi+KN>)JFEvaM~%12^55;lLLeY}!A%Q1)tceA<# z`_gWcgcPc(gnI&Jd zQ}o{ZTh>IBeZv;u#l}mN;;Vs{I5&wWizkk-TM4?F!7n<>eAG=8F?ft<_8rSXvv&XQ z*n8CzB}D;{CAHL@*^c$I3y-mizk|n$c15hQxbgTuai_#<;c?cHZCEc(9B1k5>{Q`9 z!B&U*veEn1ivHP@a+eh^`uxo5$62lbXN9cLRITw!vE{cgq>-Z`v!hS3mh9LpvHBEC zSAMtmpMpHIAE$_MXIP#m96CgRfLQr6yXZVp(L5Nz`4j1<*@Nt}DfX1ptf0ma1LE8n zwvOhY;urQJVH=pG$B7|l*#KnD+j5qvl)2~}Ya!S<_9k9zy!1GKV&tsX`IG$~8n9^c z7keZ8CGADGy0{h`Up%OONpK!jEf7B{YDZ(1wwJ^Wnp!ucr*XwGJ zn%R}Q)8+wPP5F1@<&v1p>6z{-z`M-BBTwJ+y&YlPZF zyx~?!UlZS_h`-$GJK@Ds%rN0-VJZG}mnY6;x-7L7<4BIpv7d}o2dU60M}6w820Ol9 z^i5FH*~wSMJqc=eLg5{HU-_m)!C!uqj3c$+E-unrGx2Adniex^JLS5On_X;qi!Ck= zACJrm8p&j2!wAMBIa@AnN>_7QJtHlt%aiUhm28%5J%?qs6=f<`dT};$WixLKmf%>$Az*#hqzt^9y!Y@BHpcsXI@N?!-A7<;>4S zYNDF1=%RI^8p7WMAn;E|0{rhzRCCxf74}Ps>Ow{N)b5_F#xiBUxFJ>Tq8t#jQq{{7 zB!y9hDE!PqiXgZ=i^bxe5ku|q-PQ42X)FSls(Bd-h=}n86jSZu(@fQ$mWkL8#Fyqt z47*fKgSrm%jmT_{z8z3bpve+c@udVoX(&!{gjMN6D}ZSrO8Z8<>*F4igN&;G3=1gY zhI(q<2v^awrKP22Yt^p2Oub9~~@)zf*uGXqw3~iz2DNV#oBw;haX$ClGr(p)TGXuw4$Qg)isisxW z0HA0F2$W{P0j-{aNM{BBlOt|!sm}Ll9#g{%a5)3Ex0O0w>#87&GKl1O3h2<;Cd*e` zZCzjkQ@hxODKR;Dp{l8q7m5*(fB`B;HCscNRLd(Cwp0^S(~BVr*>Z3Y71he3_X6T8 zJFlHuU%7c~XnI1#@;3tI{vVy;58A7z7?&(|V;411Y%f$((vKZ-xPiJ`9-;7(dM?Wx zlF71MtWYpZy^>fNLJ#2%5C?+vU3{@b8HXLc(PF5jCM%kF)>8Y|*DNJK^XM+lL=!(^QF?E+TI_kry0OY--~3B6XU=#lxM{ zb`5#HOKGd5o6KPo1~!522{j#RM-vA-sTm5lfA6GTr$oZlbtIgLicC0;cXv^B@kAFj z*<87(df*`mJ;F736^|<=%HvEd1eD}ev9pWXygrvh(9vT7O=G|y!jR0SWx9PV*n%kN zs@_zRRRvn^s)hxOH$BY2u>XLCmw(MfFIVZ|s8bLwlsi4?2oTubs;#4Y)uX^$qn@TlxvMpY0 zx*Zry3Z?`NWx1j~=uCkGh0s+*X*UR-AztpLW~uCAmw3OM+Ki@c<$&~g{>rU{c?TvSD9Rwh1{55La$hQohTEh`l~-HXT>)+ zstuI0wr_x1uiE!}{%JK$3>>ItDsu#y&R1b^?d1d2MM~SV(+ZslOhzC1t~1jL+lF;{ zd|HhzzX`pf%g?5XS8i6%kdGp6Q5XJq$PT;Jap9tGQ*C|W>~fctCbk!=^~8zW)YP~y zXO%;Cti}P-6wKS%V?8I*Z&#bKjk86c+tsGj=Z-hvxxW9bnkp9GuJ$cD%ewfWQo-7p z(7RTdQry+Yp@HP1W%{X{JdH}%g#bjSL27p7S>|(jxyNIT6ZZ{L+k=uz2dPC$#*XPV z2(dBr3PMy&7qNrYH~nX~RuI;81Ddy;$68e;whmUGta9OQD~5A-uuRMHw5^zcV^kW@50pmSLC#3-mTi~e>0W#_+e_Q(xNP=?`n@bm_|^e zgn6QHS3euB-VpBUSFRRa?^PQnR6~L8(qBch_7nH2dIX$;XCGBpBkBH_x(7+!$HBF~ zh^~*Tg&@x8$JG(d$fhPkm0{vEG~kH9KTd<4SE9aAML8{4B`7r-j0LS9f>I-c8;}}x zq5fOC6{O z@%dypC}+jl$?#0hij)`CCP=!!sLJ@u!+6aNPJtTatKbxfN0$+B3ewIqTWf1JV;HlohsBznYYU8#)Bw5pyu1NUs7*XJ%^SDo#aEy z?U)&=#S?cbz*f2zNG~F{!BqUy#KB!^N3pd`eMp$IRc~JHP*l}%HSn-O`W&+Ib+gsE z(N!w|=RpLPsLe(Bjf~r!=BNtyRIM2npRs$-gVtAeiV2(51W~#I3)k}3(e(>YF|Ww4 zP$R_4i`8h6{BEdV&ASwgdlQSXX-=IlQDhgsrEb%sL!PDOJUIRKS*q?0!rC2{smI-( zs^!9=Cq>BtEDs*quMQEV*CN#P#VU1+@}yX_T0Nlbw8ySdi&>H+fJ2_DF@sLFZ>=g6 zK)t#S$~QXX+*!_p?AuOTuRf}Ks+K={U$tj%QSaxTst>T%|&T9nQG!p_^LeuEMb zzh6C#B=Ue->=*XgFVt(bs@S&b1i)2m zYK6Gvh&q6cnjBWiyVO(&FcOwAOf->HRccCff(W9}wjL7e_hy_zIyhsqPh zE#Is4q&)wiwiK(rS65ZF@WN5GAh%XUW>wZ|TEx+#h_Y-7b~oUd>Zxk0Swj3{u@<|qN-WqtDn^vLK#D7BI=)3`(%Vs*B$KMUxkJ}@w9qWQJxWx|Dq1k z%jTk?SO6AjJipf@3!r|}_#aakI_NZ(&ICs`B|ZdePiHnBUU^S2^keoofsi5a`* zO3yRozibV?!p?j+*RI!qU#@U?t*ThkkelMAhCCiM7dGSB!B>=1;)r z&&%fLlyFQ0<}5<&X~f&>KM;P2qUrD8w{DGj3RLS&jd?y%x{7r~MPuGvf0E`arfSY( zML{m_b%AY=@r%XeT;5b)L987wKL1T`NG-a5*ZYY+d3-z!qWwi4pK63g8?vgw(MqfO z;ankF@^MtLVJkk0jA+3ao@}(BmFl# z&1WeT23>U#PiKqQR7GM3ysalhAVh=Mf^~Ae?Qg^1bhFRq*sCl)mXYGf@4=gj;}$pU zCp+^uG?E2mwPu?(h&y`l??Xt37G^=D8My*L`ktQrO}1pCNbkin*$;EY$gw;}4DQ9F zX(ZSKC=hS-;`P}6xxzmLC1-naVt3oPl($o=a__#($$jiHewvZO4B_Mvi~I7$G)ZQWsc~Z5{yMhlj$SMNv@60b2T^p2QzhZjC zP5pVic>GH4r*QN)*YK==!LZ@A{59%h`?b8=zkoKsj?W>`z1Q)pfnEOfz#Ol)UeB*3 zd{$r250cc)xB)YZ{E8tFapK4g{F12YAC|kYvWyQPCgK|*%B}}DphEwC{AaXtdH=9c zuISHu>d%l!B#T)$Ko{lT$Rnw>wm0%SlS((shGNhVw^%pd{oeaL){zZj^^JTIr0wzn zyohbzD5eYmf@kd?2Jpe;a$j>3zg_87x{>O7@AO#Cla);9bny*=n)Ii5i)CU>{)nKQ z)(3m<@K}o++$&rX`CGlWd8}QVM8qxsO4uH^@FPTy7Psm7~@@|O7c zR(?G@{E;ZQ4UGEMNA{Js@mrJ-zYHtp*?wKBE7e-bf?HT}72f{^UQaY0#0%N6E#j_0 z4!yCh(OMiB#G7OD+kXc?MpQ#yGf^-YWLdjej2O(b$(qa@>=1nCV16Y#xmjcv^G<~6 zUBymAuNL#cK~yFCbshq8P7u?F@Vmls^HO-N3a_F&`45nEh>}$^%Vmv=wF>Yk!oTb*-*r#{A6?hg;oNL93fsoAnhh zjO2B~7khg**zb04GJOeR*dT{cHXO0Z9_ zkgd3YIsbk%Z^Oa|=oq;iHh!^v!x#>K5oW?WmfssRB)90#ZvZZ70_wcJh<=_+ZxJ0e z6IVXZ)9bF43Is8!po%gOT@RzS7v^UCQtpsXNw6USiqr5)a(VnUn6IIk= z{}bYialBE`#wALciHl$0QQ>{Bg8&7_^T{=p7HI-Iastnh=M-8_;)5VqGbZt-|1EQ3 zuk|=}7g9}{UGGKSOdip=W(x1f*l%;h)T#Ws|BhKQUgEF(3kU9d3FZra(c{y2pHSnf z3@ub~V#o;!a-wvCz=^+2gIfZWLwome$|$jDI`2hJ)F0FN5>MW_5r9fP_h}Q%3V~cnPc5;Lfs6S~ z-JZjig+&`7@JcAC3v1)bb5(pLPaDCl%6F~#%0if0!uTk#>kGns;K29@X0329;ahzR zwn9K!$kSAZw~8;8@DF1US_CO773_Uj^D|{LiNUDE09{lzokHUtU|kjcsWwt zjcB%p-;H{+*6U}4&?<^2@jVH$9&;DGJd*7518GSM#j2%=Z)=yTX|c>PTkI1DN4EMTgh8_ zk6^EdAr6K3#%3|8lDG8!9-i|t<(v)AN!Wp$)8RQ+Q_hd!If8Odgy-y~oMYiR*Y8Bm zcYn+ICOl_4!F(B>bAWOVh2_{8yZ9f9GEb!K=2zxEuULjuRpqW>U3}xP(QB2K4A11& z&~83Vt{f<{Hk9&Wf4P{xn+KG!V%2VbiFc!7y60somaDsOqln$Z?^T`?Pw(OV*vk{d z;Xim50|}LHaMmZ|6W&O9UIY$fNw)Y?-qn8d6P~H0FF;p=tUHRWzm#DX@9kTlSiS(q zwEMhYi|_VA(#piteLOefCE9IPy85Pyt^0V1cU^VA>%_I6@;2&h#Un2Hgx@UAd(uVXC_&30X{T0tBi6emoC9+w&fRB=kEKI^9 z!wTc;wN_+&wCp9zH z$Gj~)rXE223OlG!ez9GA%{^vp;HG%|gZ*#Sj4np|KH7E#y^2jv8+Ww14VS9qUgrfn z;t>u2c4$5HgiRZ&=I!l!*o=mO2}IKnKqc_HKY+bz(BX}*dFNUsA8h+x%-r*4Yp&S( z4gV-*mSRO4`$=*VM|`1BMP@uyj;BZ?4UkR}$wn=GFC z5o_HuV(X8*!Id*1Y>s@!nQ>AyrM{+Y62xSPB1vH~q%e{WT6v&0LV}pw#fLK(N+8w) zI1e4lfyu+6AJOe6IQ+@t{-1chcdC?bXzlJ$&r5#dMebxe^rM(b;`g6;(>e)`R6;%z z=_$(8F2PRoV;(v1`|Tb-b3@6&VP{e@bl4eP1dUC7sd6&0Afhep7#e(nc=$B0lbp1m zh=sJvtJT`&Rk8Rq@0!HT1f0qt`Ev!5pz{30GiHMDo#8ENGfh6>KaL3E>u3084C=mL z_^FIlbao}hy9(12>re4O*RecTJ4+*Vmnfb*%Nuuq=kJhnK~ehSK~3k-LYkAQikz2d zQmjy5R{EW$2Xt0_iWe%)BaWTr8PMU8zw$cRH22@{Xfd2X!Q!8k8&04kIZse?aaA+~ zZK2tShKlzg(9mPw`YXZ-arHegBtEa760#>z-g@Gd-+A+d9B(71sDUgp{l3QD`^4+1 zT4N%`o>Z+NS?Rx0wR&RUIiBNB#!4o^=OeWh8Bn}+urGqcUD!Xf!i@T`KY6-ff57l& zTo@uvy!Ho=Q_?QnLcKo`XRFz4(RuG_;>@3jEF_8Ozp&;BgOz?o`vfh@QA@A=#r=&E z9EA-2kw=9b(-lug)4&jz$^_UPa6%G}5ymK5`}UwygqhgImuMzo)bYL~Z?Z?44XBt5 z@&GouigBV1fhcgKt2oa^d;~_gB;fVxBL92ds8$&#z53!}%_sqIHp@aENX&qTbUICb z4Cu-{2z>c4fgE!$BVF$M176HKxkBy{rf)b(O>gLx)5CB8U~_*&Ac|~nkgbm8`D=V}F!C=~j%p~`8o z#HZ0W7fO^iv>q*kqA_P4nqMeHqd3#(iKzgQq2!{V54MWQQQ9s4WK8l!`)KVZQ5LPG zFYpr$ep~Gd9PDS(*!~9yIH&HD# z6EoA`6$KK-D!(?eA&duFN|K5yB4j|IWFZ&H00wgo!TGslaa)Ymq6DKMKna{+#tt!+ z-e5LZ4~)u;y~NiU;srmDLpvEJhYKi80&>aBB$)|7Ej2RtQ4)!g+&Td zt%*N9TBH}@chb{jNfX796zv!_7iPOI(J?g{@Hj3@!->`~EAdvEb`6l^>Dtwpi5t?j zKDEt6l#uhqGPDr@ejr1;7h7jXGqhWkB)d-?ZH$7t`|E1?da@%tep8#}Bi@U}Ut+5y zvD(!7v`(VgjD=)JK_I}_T-1jo`RW4%}l^-VUCh8TR^%Ftdi&w(3&--_M)gQ zvQz&1q31JUi7og2K^u^nHXN@o1DOe8c0d~oobofZen`eh@hnp%v>PZOf)^!(-aq)CbA4MT>}ab^%ISKaCiu123p@-PwNm)&tVNUQ*24o zvV=EF`v(uVYU(1j(9|W030c}@z9gUKO(Q!U4;qMLS&knPiWZ>#8+7n@iZ_uK4-Nm; zcXR`-USbkRm_!CN-UMtS2nJs*p|%Rwi&G7>#H1v|Wn;ndSOLE~tsHAwD+>$2BvGf~ z-@ErF!TW(9C0iGJ8)`-1iL`8OIY_)CTN~)9^2P(nqFs(wx6Kx2CXl#5RZ^1V__ESZ zmkVayQTRcxHUynwCfk#9V4Zn6zPYkjHq!E)M{%^VHo+a7$V4$JSNpnF842087_lr* zn;K3jl*EZu`C5_^EnaD&y`&{!`JO1+=W8iik}ngk;ee(!X&YW+cfR&)cx!O>(!{I+ z%?i(y6*8J?Y3QO&Q|;2fl?A)s*HqgGkU7n?Mv5Y~HPcd~v1T?AVxXym5lggxX{NRE zQj|2mBV3L%VsJ<88yqRZmX@`|eJ8KP*+|e1|Li{2Yb=DT5pBuYqi|`iJRaR)( zRqLVrVwZN+u8dO-*t@TT)B@<{8?*)yI;FO;Rq3{qVI4PXZLwfOJJ!Vm+(lO$S*8WAFt=iR6$qO zDvcOo4ICz{7xh#z?O`o1pLAll%%Q(#eew&lMq}m#MYjm+eE6!mq95X-$j?!a8T?8J};?Pvf$DnJ= z#n{KR6fa7=enfWRl4jXU9@FM22+CboqSaH9$~BN0OV8cdzRYGHXqZ`~)GZd;I2ny2 zkn&vVp&DI$7pg^Fl;pS$hu)n&_Jv-ZK6Zp&fz3wwOxsI!s{2Tkh}t2{oJN*}UY$l> z551z1S@OAPCcbJqqz2qR`W6I47AHn(_mwP0TrZw3VeuXp(=^>=`kyavYfV3QGL!^t5W+N>t z!9xxnCL?WxbUf0=NJk;fMOun959!ZZai9s(lSuQC5{_nZpdk1NE7TN^G#G>?X?RBf z*bM1cNSh-)i?jvOXV73vq*IZ$GSy;hJ|0>lV=mH*kgi192I(@S7bD$(v@OyPkhVj* z7ioK>A0zF6^a#?9NY5h0O38W#B(acAMOuV(GSW^+=VJ#|o2ZNz14e1fiU|Ms;>>Pl zB$?5sj_`ou`L4yBJ{3sE)(a}pfLKU6R4evkS2)gK zEePd6FyRcPWr*w&y7(8(`m@Yvi0fibLWPcV*fR0XXe}@82r5FZHM#fx$LH9l+2WEr zGAmcx$}`$+tN?vsyL2zaKF?LAT5ln^bBDz+fQ7II=sQO(Q|WUY+9*b6W%iUYT74z* z7c8b!3WO{cA3mo&T3a&%EH9dwQF}9D*jO#M9Xdy|nOHkW3Kh9qqc`dWNJaSfNL^H> zW+uqJsLV*3k~oT}W2|$e)^0f`07@@I;_(43+%yFZd+`V8d0~r-GwXKqsa}LJur7@^b0{FFR#kOTRUWJws>a2! zsaiWFLgc)p)h|ID({Fk&^+lL5h^nALcxsslh4@&Z+0~39$32SHUv4w%5}%)*X@kd& zKeWNqRmK~AayP?o`sQW2$+h>()mRky%#BfljWFHt@4Le}#V4z77=!NE#r2rop)E_g z!~O0~zI~E}#3WUTD2=gSW*lgqUF`pqnd#(2Li0+i7)xonmf3)Upl&mkqC8&u0uD@~|IN#94iYumRSM=?JCTM_*Vz42`x0y3f!WBN;J6%Nzn9 zE&|{!KtO9U^sn2};HWVmoM`E76*OhK32#TWLhW`l1N6xq6pE7t`RQTi*T{lGXlAB| zvPc8L_fZ!MWu}zSwlk$)dB;rcG7Qaj-oBctH7g-)f-W-5ZlTJgNJvCYvqz0AbdhN` z3uRFki}4+zR6WqH)JT?@5h^ByON}%#%^F!~B-hLgWtpnssLJu;vP4+)VsqME$#WA;Q^nbsKu9ayGikW<_e03c|hB&at?&{oKt46T@GEyllY za*BI7PVvGr?QYGXP+*o;U!#$fi=MNzP9V<1&qYaj=jTaN<7@|wu2-a<@ zkYcy+Fv$enW~ia|7TUezv&A>*Pu_Bqas=U$Ar zg1JNNTbd$#LWc)PofKV~#6GRnLhun?~C*@qi)!59UWYedJ@2(?}49 zi<~}k2FdBW1SvUv}4fket27NNN0V_Q(&UN4TrxliJ+zF}J9W>qyd(T^t~(=|HA#jLcEhdNPZys zgX9O2KiC=RMO6+VGMdBUB*A0AP?DS@D&Rk23dg#34&ZC2&>!*Qd~Gm?_Ky;cS891B z*kVIK2-icv&>~4km3;CH$(@X&)l|CmiCk3`(3jXQvyS6rUgE&iC1=uQ_H-Q3faRgL zdX`Q}eM{DBV2y&hbD0gT)|8uO;>rdW0)KL$*QLa1C&y{WnVA-(oFod39Tf7cJ+i3` z2ZioVUB`hX=5!odX?Wbk;@$t~og?D5Y7X<&{ru*(RKpqI2m@O9w7`O``= z@ZTMavzCGu<$YFfz2i;TmE^UjoaHk|W>2TP#(`TO{XCUXI{wtvfp$ zn&~Ao?IklENddYzyg4liLvfqu8? z0hSa~^I&MbeM$)e^%f2=K!z{zr8+1_LZT7L0Loez%Bkd8z?bUoORYBNLBu12hy&9| z2XW{o%|RT2tr3zNN%R7d;8#yIQ<}a=tlZ(SJYJj`Wi=5KzE`dhx4oscDnY)2lM9Ul zZf`DH#hA&Vz*9@+#^HlT$Zu3jetqQU)RLcp{Onrt8zR49E%_xmC}>bifr!TXdKn9|(RT&`^5|EF*$-m{-Lq43!;8f-Y z-^fXHlbF_lm=-`x8N^iHn@|96oOZL}`PK*Tf|GE3HJx%GpAO>_6X-Db4Ev1Or+$B- zmR%BwWn@d{qU{vlDBvA|j<8!(g^m@63AY~*7_TGetWKNULmb%+PrEuFhko6NH&thZT24bgf;xX|ARYO*UnR(bP4I>#Llu;jM;VkO zZe0w6A`do2K-Yke={s*IoJdm2k!B)kosbZCP6Nr)0@O{siPSz0BzX3xrTx#X33aB&bSq1!H`>y3Zm z=mgJ)T7EPXNejM6r>aUGfdd#iLMrWsv@STMLTu?4YnEt9w3hQi&uZii%5NUQzM9;b z!*^{cq5>R1g__3(BOweP$G`(n&DEtc`0S;vju3LB;_!c1grG%Vc2~veOt?Eh+eCjCRab$>G^nwZ{OB(O8`)#Y3Bw1 zhSh9j$}PHFXN#|ibBT#W9zL0Kc%+-N5^yr(i;M6Pm&@#7`Y3TS;o{1RO;kEPhq#bR z!Jx7ddT_!%7_lG6K|}5;g|0&6B2YhezT$C57A6CcopKq`aGA|8Z`NPq)~^C=U$d=tRTb)0fpn}1(xD0@ zPz6#b?pmfLD|N-p|C?0PE~C+tpaIY6C~dOF)u4Z zjJdRQtTHNa86qaoB-lhVGf8`p8R$y0gfl>L;e!x;xXhBjUmXD)iw#4XYZ=3o+r|{* zl2g1=bXuWZ9$D=pi&s`?^AL*ZW^04Pv){F~*KtYCtt++W4d3Uqqd-zeam4^!PXrY? zki$!74(vsrhsdZm`rB$c)*Q_UFq>_T3@bL4wCk1eI|2p^MtM|fuVsK*7r@_SMD zT`fgi`HSX{i3}D79Zb_LO5O!|?|oN`Eg|1b)(DGRngyU6zE@L-ARl9815U>ntu57$ z*a`^?s=@)6!c!@U2bpo;k^KRNWIZEK+LYrFF9%%Vfz^SM#}QeT1Bdm-*;yikBu6Y% zbO7!Z-ulo#6r$VfB60BVXQ6rPPV<)MKR_8Omh>p48L3CvScixY-_gt)bt0W!O*%jV zxuIqQsS&fO0*<^T>`E0x-- zs)4fu9T*nJbdVS;P;&6GqQ&sDiOs>R{*5BA%gCElxp^Y4r-LA28!(j=RHB>;DH5Xb zCaq^&XB?-{VH^=Yl%Mv1ImNS^v~;Djcx{u`y({$+i@)EkWCF*UXY? z64jBQL~?`NKS_K;hJ~Cw+WT;xqN|?Z#s>4?`39fhEC-+9ty5?i$M;&%#05<*wqiP) zKFkxX=!AQ}7A=l$*Scf!LzBg5trTnnlOJpY>!BKLh!^&2H;C1hnh72y!A;HdI_K-D zsyJ0CdDPsewF1+rST;M1kI)d|_g0YXQuMf*M2g$Yt`=$`Xh#d=Uy*u1B@)lQ$B*J@C_#rRJ{=(iS| zKB;c?k5A5P6|yf|y>@SPtCf4tYc_%pA=q#<`+s^~gSDag)u$me z2iD-4zhn4F4bBX8SdCmOF%*dQhohP2!gqlqhC{Wh5L5(CDfCGnhtZc2QbS4u*u~f1 z+Yd0f0rB7JU`K?u1~!Oe2eclUj(Q}agB*|)M^I7->w#Dw!ELdxJ*YKPuCBdZ(!m$( zR5}b7!br{<7l%GW)M$g9`MEZO!5Eew#(9s<_Nl|#c-Th!iEp)3d?szrIIi7*JJPg`L>9~m9o))F! zT7)w;_v@{d>v1Sae!c{b4~8C9I@Ag-FB%1Ry&Su;G;lZ-)x=}|P4E|Jm2JtntVW6! z;Q2v{h^aApdO|iW!(GmoQ*=cL)ylUw#^}$HA9hueKH|bWb2v$_OXrr96#bTgKvYIX zC89yM!$Fj68Hh~dAXFp&D^#7e1hK(KDSGz{pqrJdxAI4K#_9X#5lWF)uEMJs+(^F# z3T>G zADc;tl;-+4Ig&TRMzW&097&xPwU6Yg7J8QwL?2&|u-?%EDc%EUlN|ZX7;9*;JWuPh z-lc;5D2O(F2&&_YKk~&9k?iVwBf@%*N198PI=@` z2c2O0vMTsif)h8+7gpV*)YCzr^=a1Wq#{cdwH>0tZ6qV0Hom_Bi9v zoyt#B`6pD~#kV!WIzz8}@Jc*^)j@*vu(wBew*~XyK)!~@1o(a>aQ-$&Siew}UC7g& z@QoCBa1bHRtyNUI6Q$rN;6=g&)F6EL;t}hTj>9mp;phnOJ<@2?LJlxAtho`^F=}83 z8j!=n7YLX5CPi33AXoKPMhJgjJ+TBC#|dmZfpzg!L|7;2HH0&oCl6Bdt&8xk1qh7| z3cn1G2F3x6za|1ZfT*zMeS@{Nv%PG z2pv)@-#Y4jW`wnq+TDnDWAHI90-(NbJ`v%af(#&;4h=EBiYIZRPjW-1S9;i)h>VWY ztZ8Z>MGS4NUy2X=R=3vc$4Ia+&5#4>2h!R&cNo07}M$Ws7ew((5R>LT{trjpV*IdcKltzuHDum4sZ-)>%PLb9-NM zG)1mhbuk1hSA2D`{)U9`f%+cb^KS3h5X79e1YvJ#t4As&IIAtsPpvkr3Jk|PiH2{r zqrIw3H-)<8#vbs&M@(&%cHjgj#zH&D^sR`qq9@kE5c8FGw4cRL*>qP`^$}}ftKOepS9XILtrRD_>GvQR*qz?&sokBzGneSw zk-NT!J`c&=J@o-dw)K=SdM~{h8nD}3>cEQ2^m)nH>Zh<0&Zmx6uoITzU5%JNw#)6S zd&8RiC+KeOBheKTFV{ONQTEQu^*;DCGsudL!-Zfc>Mye(f$-`H@zIjONjcUQZDG@ zeteCC>GbRLu1!?Bx*L8gxl7>lD))vynnnz&t8cb$RZ#O=&^$h0yk2kY#wj7{z$e;Y zucza@&-K^qLt8?}m+3er4A6A|#YY9!MtWI`7YwDFZ>nx>qKpb;7>+;Y7k^!^r(Nte z`Ec^if~eXE4QNtBXl@(5ufjXr8am#LEoYHG0B4FL#CU&gE~G&VojxX9|SUxoUhL9O*C_Sf%JV2J;^QBQ%#o-zOq2sr4m zfer`lze&#qfAO33VkGz6OmFton}e))i(Zag`&Qy!(dRbFii>ZPF#B$ESkXJkfi1p6 z0;z-bdirRJyjP0c!TRfHZO>r6A-WWQ7R!nahv>bP)DU-d@hwoTPe~#Cz$LZP#rQk* zV}#*d&>pBZ_im(>V)NblBE_&Dxks-XCvF|1H&L;1B1#4sjl`NUI(U|&tQ z=e?xkj=X*QMUUyay!#QC%(N2kPuEj%jOmlmV*Ui4{Z3bW{9UrU!x-;tXbA9~5I} z>3OoVS^A|HxR4N-PdFWsBHGN>{pVe`MEPv#0WoYgRMjl8cDDX9t}q)gM^96J6_3o( zugabFnY?6=Tz{I#iJ#S&<1wLE6g}~oI5!8jb++g+7fkY^cy_M7S`XqrewLmSM7xbx z@~U2nn~s{jrsv|0_5rWqW0@JBi;=JCjR|DoYkD2_<+EbjYx=0DYWBd#**Dq)=V5Z1 zg)TNWi!)J`E;gpmZJc}0>B3`3`FRE6t@%(AXT{d}I$d>qZob|z_xR^EM)u9;HAePX z=oKT|^Eq8{d>;2+^M>xHYZ(W>q03)E!|iYuzN3hHQ@@0=Z+sJTy6d2r@TM+*tw&y9 z^yQm+-$u?IQVjc-w9@1hsHb1P$Z}a5KQAW(RP|=x_!cBT*h;*}Sg3ao%?F(Z4x119 zeF=IE&WA$Jn2!ky^;a{%u*9w*5U?vTs{{eFUa?5uMO4QxUE%wo#rS&Us>QmgzYSEZ zB;i{Ko_%>S_JPAduDdXwHCduJ4gG?V>;XTicGnX9J-Ugq(c6&gLwmz-qD*J=KNpX^ zt&e0!PEA>=%Pa3%EY^%5AtCW%#U4Ff_?GFN*z)g1 z;c`7kJhDvpRbe<|nSRBEF?27-0@kTl7+xhyyt5pd_&0HEx!#?9#PHsGl|F=>dse)^N^e3^3*z4bUgf-^m(vc&+o(KD7e= zTXA(IF`)t@n|xICE!QP)NW9jR>jji~s$B2DUOOt9R_M-!&_s|Y=;hDv#iI3)lS|j> z^4IK8ZD44Kph1S{w?p@c0c-VG{oJ$Q>v(Zut)47ifLj!#Y!k6*tzMUX`Mo&0R_{mx z4;1Q&-s>FVR-6jY+gsoKALw(G7wu&q!0ph#CR36j3fAd$<;juI+!XGHU@fc! zTKBBSs&by<5CcEmg`qVdG^-)hkMz;uKhRZ8LEL%aoZ(w`SiJF(emPjv{_`UYQ+;(z zg~(f{XNo4993q9rbXQ0ZhcsGH4~NuMP!CIG0zLfYCjAX*f-}z3X_>BYt+sHp{#+30 zMA3JP{vt6GlvB3wZ`FS)d=Wp{g~cpBc*TdaSh!iPY*)}6{6}cmowk8bee)Fx`I@+O zaz3v0kleH9s2Exa0)`Q+4FvK?CBkXH3il4ZsXp~UNIE2EWU%j#k}TB^uahjc?Ldv+ z#PJ<)uYVPuoq7{}IY~`A&0QL?RJ0hpQ*Uu$O}Bifp09)M(skIQHxx0u=*QTCcj>j= zrOyXZ?5}shEo?cjoZO^JM8m8~=%cr{SJ0}k5~n|22j%5=!nn_(l4Z*Kl=iaBcoJx^ zL~s0_!uZ{K4;a<`yRk@nQ^f4iU!Yz{RohV24>NXdvuL(YA53#FW1lWB<6OBU84LaUH)EV$Dgs{J1a_l zM()RA=g)fM*zg9i`eFXuUA{Owm)t8NK-h zsz&^x7uBg2SK+?kY@{ISR6t_*A&7>K`cWa&8Gtn z@(Kue*u|MJXw~;X1P_Z)MLPRHcR|4AQRwI!-CLl^UwIQ3uQ5y?F2Ld702yW0MBG_@ zd?SY?3(z3$Qh|Tu-!9v8X2g{lDT7~#6vA)bdKOE4;;xy$>1~PI_W$M>Gu*j-f|&f* z-}S*D6|K1Lu2}DM*)*s6UMM#){UXk4~ude z(v5B7M#fqD4Y$!nRTkJMJw{I@9#`4XH_ix=OvO_-pWFKN2hrPSd_xKyH3Q<>C|rPn zX~PfUG#4*L8CJ;8s)3VX$3z>KDr8Ov`i+)ULHG^n6We~{TlV4!Q5IvYhlf2V)@TK` zn;B~)dKaB2r<2q12-aOBmLwRd)a%v+qmc)zd&|V93dFqV`5upB1dv;bi?IG=DKVwk z7&1ZGYB=1g8Yecy84uC=s8hUgFWnlwGTzvi=!}wpL*sN=?;RKO5{#^1kMe42c?ESs zqH#a)8=Gj1kxTpJ z342kJ(L^DV;1bg~@nbUfA>RI6G)i&i<*F3pMYMf1MRw>(l^y1$$_}qeH40GnbgGdR za#3ZYN4D83Q;o|N_VRJzO*i@i=Eij6E_V31*qUx6>$qqSp9zS|21O(ZmSMbi)dxX; z0|))i7o9K%<-dG%mT0e-hF`R;V~92jgWS#vLlh#7Oius5P)K;{8mrGA;3svB`xs5n zWtqku=M{<%GL8L_bFfVc$+Xs;5ULHvrx#w??R zZTwvHsBbLK2u@>Yl^mQ#84Y;ygh+2-Or}}HPY?GLe>5=277+=O#hQjj)<1_5R%9Cq zOiX(Me%YE8V#^bdd9)Pqq+SGr+3QJoj>sPJr2ZylCy&yZLNB7nXn1+ApA^rH*5z;Z#!y9k^3sofDEpOX^r67qMrMZ6 zB1}{N$B*{L*2Xc;-uOstqTgXX_J!Ep&RAIWyQ~|&tXhK|o*$9G#((7ecxw4q;zWBR z?8j5#*9L#T_3jQv>x}1rl!6(W(Wib4E|?*hf1DC)I~cbS!KGu@uA`BnED=|CH0q?# z!CV(@J-bY~3n_W%kPF|WJ>SvDJwE`nV7=%!QBPOrA73jfUXP3?tS2CYeSESC8~P1{ z4D8#%WLO7I$=^V5ejXO~gYvfgXg^$Nyv*3QYeaIVYRp4EWe{`eQv&llI~k+dqMyZp zD~v?pz0`;kbvhezJ(<@T%4W6b*V!1uri>OxIvf4<-<}5Jq>B?>jE17Ti=m4LyBKNu z^q}Qq3Q|(4c7kA z;_IGJ)KKQ0UdDH!!AS7Bml`rE)#y^=BYnzfj55J#C;c*q8qy|oxXfq=F?-}Pbo#4! z=`y1ydvmn-<}x(;;b`IQjUi(kAk9g5SOSxBa?u}iNv9;U$i z?>88O?ddlga8>tfV#dveWzXwp{H%%6dyO>Q{z%{FP045dgl~lLBuG7Bgwb6Qy#|3f z&WJ@#j9hW>5&YWKia|yvWc)VBxB^N3LlHURfjf*#@LX|+ac#zO`Ylc6aRYx9IyhOX z$zK(PgQNJJKE%l@p#HD9%@`H8ffoJav1!Jvy;%C6r1?I68%?zE-foz2G@~R)_y^x= zT2h=k-fr|q`Hb6v^cnHa?ZyrG!RdrSM(eZ*F`T2@2zg84pMGT2o8^cq? zuTRJmuBc`wKW=nXl+EJW64}drCC18F8hA_~mQJ96K#UG>b}TiL(Cam&#zRPUlp3!i zd1Rz9P1$HCK4Gk22+M69Wi*6BIz7s0@7|)&rFo+iQ82^EvTuCKn8K7wae6f9wOI6h z27rt0hn_KdQ`Z}xHPX|h_*hY0edMIjAzwz{O42O{XQqrXG9yrq+YD51s<`o4qn#Ku z#^`G}ojgo^;5@=}#yxd5V@k8xNgXbttdDUjyjXHL}S76@I%R{qdXD`pf)K`kGv*k?Ao{i3yh&$)N zm#(zmonv@t8)W@l<8h$bjDEz0kS^7U*0rLOx3NWe03ebe1Q*axQ=UY+I1c89u zM#d8yBY>`*js!bYDdN_AD3jo>)JOTo(_zHKX#LCAjAU}P>@~(sasioIVHC27yF|YVLpqiCDY7{6R)z6sva=2^K)5IrAE4ho_P;I) z*BWvuE`Kp<$Xa8tvdiAR*02?7XWR$IfUH{mHYhr|c#ykZmBF8{KMS+*p^;#2{gi?c z_HUbw>lKl(%Mh$`omjZb$iMQ)hwJ1;tT=74(bdz3*~O^~t8~;_ z9Gd486T)W-_v0uL%1c>qA0iFbhOJH&OUH%dmVQ6Z&d}xdf2lp?FJe|cBbt6}#Iee; zqU*;-4|T(@72>KrP~F=#M!30HLRMep0@B&Iy zRIH$=i_%4Dq6Q11BBCOKBB0Vl%J)0>-pSsq!56>p|2+TY3FpqtIcH|hoH=u*+_~m2 z%mEWVFxeX=CV0;m=4Vai@3L0=VYv>l>HE#Asws_G24%@k!8Jy>32&{rMy&IfW{a`9 zx~=M?mY{vswX!3{UCD<7Nhsrx6XD|Sq*IIEQky~f?kr(P@W zQf$4zmY18GkV0-PR~7VNxp{LfuHrNY(`otIz2+%bOKbOuxgYVl{}XdJf**fkZdp&$ z=OpMebrWL_O~SD+1BGVyzi;-j$38S?vWNeY2AZBc!@m1Vs&4#}&G}1munF7EdAhjQ zwwvb=SKAJ?l>K&?XHj^^4s&yYCwG`zHqmlRspvhFo6>s>vSKI7)EQmY{>#dw2j)Py zrHh33`Q$!i8!%P6LKD6>t|$h=nrI+mk(1JuWY+5&bMMTpn} zB8gg&@Jgp1`@~^$Gw`nQqq$i#BC3gh#21y|6qd>qBY%YR`~xfd(OeVYtsl+W!Zlrn zr!HKx!#|pbDJ4zCNk&M$F^L5&P!}cAmGtH#<`n7I$3;ZCF~(F7H3*)enf zu0X?wAmV5S&W+AW5H}OvdskFSd3{e=q{qEhRQzmQVkie*E@5qcHosX1j8FisR@5p= z!OpTje>OWCE2V+DbD5jfY(Qd$WmZbv{}=OI;(}&VvsP~sQ(6a~vHZo{&@*o?*;_UD zfEGwqBzc;)6wF$R7En_*l*HN}$68`jutuw(2vn~Ljb*xBj4~#1(%a2SA^!8L*#%D? zpP)#_n_f!P&R@-R+okCQdeB+sKVf!aB8P5+n<0Qe-9teuK7l#NS@!%1WrDfygxOBY zNrz_X9({UM9LP8?fWrci8A_{3F@OT*oitBRu2Ge2W3fNXSCXr&czV3zv`|1QsZ_jf zwweOI$IqLOq*POKQCTUN90EYk*9&4w- zb05T7UNH|bncnyyR%{en8fm5eMU&7=^Q{Ev2KTLKY75^=P7>g7UJtPQ?vEsW%5PZNnCg64Qv#hl!G=QGrh4L;*1F=U4rG-a|`5N}dXey2r ziegX70=VH_gAN4<4#3!P2Dn!^TyCHGM3Iy@>2aAI^PMWeuh z`S&oBEGT**3k?Dlxs$W1=1y1@x$jq|p;RE6`zr-fs;$^*Wx0TXjhRwp>#o>(S*T+~ zJwLMu69KxW32x;}envU)<`y3+4Aufohe<%EfUL<1mp7dz znW&D%A-a7Zp2Y!zII(pwL+B`K(7;98tc+P0T6@@z*2#?|O^|9fN zgvSZ~o-KF@wrVW&qlw8hgPIB>0bXk=v_{U~G!-(GZHQCNgvnTE2sRgL8*7ua zli-Bn#B5+b#!DQ^DW{d2M_NGV&axi40*=43w{wLX05Vz%9~w8ZZ(9oSC9^iIgp!2S z>etFmbuwVs)U5`m3cq6Cw-Q{b7qRCPsLo2K39az~TVV?Im3LYTgG?7svh+4WZ<>PK z)J9MirW(8;Y%Y3N`S-6f@NE*j~gC3Vv`*_5Ac%r%vov8xBT1QT!C zLBc$z7F#w2|1D^XdVILfYNmW*Kwk+{x1N;GBY!zf zXu!TrPD)|3@&qhBKfoTz6Y{9s@#Ir^LN(JNynA93nx+0gCnmC}ip|(S8%WeD+Sn4C z(3p;iZLkS_yHq*F3LN<7gCUiOSZ|cs^!0D-cDtY)28@^IM?0+0>Ia$80gOr|9qkaB z@G~8#a|^b{At(#SapIE>Gy~4jfEb4#TtX(B??6jDTPQh&2_8{Bt6gsA=N1xOR z1E016bh0UT35~gwJ39p%W*~4F=3v76oRLkLCS)lmEo^rPHCf(lp*p+GEhq=4l-6J2 z7A7}1{vdr#4*g0!F?RStFmdke zgS7@)&?h`=9I6^qdiBCc6V_4;tAua;%!mgZw?a2I22^dsi;7Ab*EX0jb(@_u4L4?H z2k}gP?pVlFPu%W_J*37>?@-ub_W-gRchb`W$^}{SH`vl1lnncwdf+eW;7lDFUhVY z8#O`@l-`}*4MuMlc07a#Ow`tHLZehx78j-5U63mT-MYK*sOjZ0wz<2|fg+U#v-S}3 zO`FTupdPAOoJS3*!Oq=`GM6$*SJMb;^=>in1U;vvS;$2l*W9Ez|?U zls-cCRcu717OAR{Phpa!+z?SZkB#XgJc;a5`wFyB-lDHS>+#+D3VYKZSgJ@lNjZ4A zlr`-qtRj(o)K3@-4fFOFw$KLWpZ$din)n>-zXOD6#!D=%5F_d(Hn>pe1@J^6T$T%L zTcPk2LeYUr+DikKv@-*hw0eVtS;TDdAfaO>CdS494R*D&vtS9#I6!!KkT5)x&iDmN z5Z?gvhx*y|Fi{>jSa=XyHs1^uoB$a^gaQ?73)Up@H4VZ8*7za9bG*p|BZP*mQj?=^ zHDIvM=Gg5+g%hTnrx)c$qbP}r?N#fC^vH8P!Z@dublj>^y-J^t7KzL=8kW)3n_oD>b9m*K3c!;^9h58ulyN^ci zI?Em#Ep)G?Q@pZynt3Rj$4-nEqRNItQlMH7tlKFSSA`JxjC_fSL7^693B!;?dlCjU z5rtk76bf-1>sU}21tp914hg-|Lhp+0x~p)IPg-5YJneu>lcb zj-s^@l>GyCDI(MbeVwQXsdfNF zE%Ol`MAE^f%r;ioN3|8k39U?Rep^=QO!qOhetgIJJ01k-m&@45@#v&ymN8+1(3-04 zo&f7}mOVNFuO0Hi?V$kUIfd zP=AupnT?tx3=t@zv52U*Cc&bL?EEBQQXTd1lros0-_Sf)8BRWC#gm1-+G)S5I)3!2 zsef?%2Dw!3SEUy#=SNiqGZ0S_NQ|}-6vR|eOg*0L8I8Eqh zT6UT(n5K>|+|!ECq2=GX&*W5?8}|*w&vnLs(mP9lBV{ zq*XXOG6+k7GO%+#%PXdsPTJzQb|6T>}aWz0Nvhv2SHW}M20Z|l+ASUCaS zWy`#dI8yQ_3)~6SS8H99T{oM?-M84}*+QogI@_XqEIs=!yaa4C(fq!Q0(jX;3FweM z`@Ul5y{gd=T^8HyS;{BWssFm?2#=A*?w%t!v`uOHpoZdIo+lwzyG!_~;Sy!qTS8M= zby94_6XwJ?7Kte_3p_8>GGYGPrdVi}^}<%HjU|3)7nV+5=8q~7V%AWMN_w8Q@2k@a%YoIgpGt&|Xpdi5^Sgy+tyZm! zv*3>vEZ*QTDS>q>*^Ik|Crukx#%kUp98Aqp=dxIdLG#c)4LjT!E%<_QHLX!j5 zXpjJ-wVzhsdORR>Cq;PZ0k}V~8yg>l;2^+33xr&MnIa!r08zzrlq3btSfu4^28Zyd zu!E0CvEWWi25T1xFOmF}*Egm;B-}@N{PmDvBCS);;$%JoZ)#7h_anlKNmn_xjlBuQ z#lca@8jnFiF~RM*SSU!QFSIQDFXmaxm$5hhE5u*8GSM8qFN(omxH1KB50MKI{DmuJ z{$3vun7+H0VhXxp85_S;*i@5bmu;*Eg@zLq5b%06sY$10=((7E%~~d4k3e}>pceaR z8R(Aw#*&w-#uo?cmB_j*x?FH3xa`j^7g}boQUtl51f)t5-yBdR`58f|+KJ^t7O9%} zgzy!XVh=wdj6q}ceNt%PRVMGW-b1K31&#md=mlx9vb=)B7G}QwqRpR_b(XRxF}9;Y zpH$Wd>aP&$=U1?zf`Ez2FwW|{qMT5TinW`{`LS6mw6z-p)^3)sz-WLR)|SD*?_$4~ z2}?*s3!cJowSygd3YO(8Yx1-}hfl^lEnIK<kZdjTc>^GSYvbLkMMCcs1J}*42^16|Vd~%gwqnbal3S)sTob!S(*7RUG zd+-IJz5l`Tt@J5O95PPpLYEL$y9WmwvAA4`bA@T!$(N~iz8Smng7BSUtiOK=o)dM> z>s}G=sjqf+yo{}Mb~0JG{SE(Pg>om^mTdOxD?*mm>FERLWJ1(VpYbgs?f>4 z_;dC0ePe*00yVAYO=%_>=SGw*Op|iB3;)BxgkF@8$@t_|%)xiX+^eDekV5n|p?9No zN~4hZRP|f21+WyyNz7#QfFn#t_T@6KL@SKaa&}=}64&8IW zd&2yhsym=fZ26IVcKkh|K4l`kFLX1$7#r}ua8zk4{|=#d>QOrWR+BBADK=!!?@-rb zlnU?Kfq4U&x1GYHM*6bSs$D`KlFR82gfco>u(({K#Pvp;W#Wzb6`)PKE|sB(51A% z62%hLfYWEf{pu-!qX?%3=3%^%=z@M+HcDTudh$nM1Go)8f*H;^cJC2P-_Nn1k6?y* zj*a{Y%gX22;-65kbL`Kbgl~}17e|H95qjkqhNE-rn`2m+JQpkcS-=6V3+%REuwHqA zU3XjqvAp6eCcByJ`STSeXPUu=T~7X2~jwKQ5Zww3E^fe zDX%;sq*IfyH%h3cJ#_^urb*b0Vr?$L6gM!6^m&O1M)7%o8Yb~862mEzNNXXg ziaie%Ga<1!1(E02J1HU^I;xf`4#6A{J4di<&=T7Af?JBR-Igj+BSX>XBMcd4aWFvC zEV=-en#J!xJX;XyKq=j9uc;Uj(+uKQL8J+vAd2)svvs1_4B((B-T>f{#5(|9lf+hP zWL1lig)2Q>oMz0?t4*SMe3on!i`mL* zVm|x6n%Dt-tC3ZV0eoQ0Vz6=R0tP7P%|g@FVbY4$KFRRlt|1LGB>F z9g~q{AcK$V4{%B_V5CpnNLb%ct_WruGekQ(n<4%I{r)*qoB;ja)lh84W>**cD0>Gu zssM4|<^%|2Uv+T~@P^b7sUK{t0TG;KzM5h_B5$urk+JVWcMDXFreCt|xX& zLd{1s&P+K%oLW>As%|2V~jL1N?BAgeq#RaDSzl9Tfvx!*EXj=UR+ul?hVEXin zSnX!w3=>?Zhgyj3P3OO0yIY7kCJ5u#7UED6Mz>s){$ut^uJ{^+F{-7wh+@yQ6x)~{ z*&l1tN}K>A!AjeR<6yonv=M75<}33$v42x;z9bSee0Bwv1JZmShk7Mgu-Lro#55!1 z`)D5eIE1GE7{_VOU(F+~ zBR^`FN9;z6!qvRuU>dt4UNHy>Zug1}P3NCtN4#P`Ex9J^?Stt$%SwD=vo`COYD?La zcT2-sb&-{CUA)ADNP1>zY_Ct;t9Sz6O%=0Z8{3JUO`L&R_zDKR@EQZ9@Xst|xgAAX zIHOYMuopXuJ+KD$TSt+c`}9s?Rs&@kKodUlQ*a_Lc`D#(9514Sz^q#*alP^ETDbOlk?8%oac}cY8N~I+G%h<#D;utCky-N|30%8L? zik#a;DN6S)VpLgj#1VGIHMq!2u&Ik!M{`5f6q{DGV_n30bgn0mo}*l!k25`r8w)$9 zFi|Vev@7)aEPJ@C_;QO~baXg@zj}J3GUs47k?S>A7s;%rMwrex@DP=o?E6f#j zJA&8roVqZp)bymHFgNm=vhn9l1K5u4qH?dom)*r9d|BN@t$+7Y_F)fkEn(l?6Y@cR zzw{LCyp0vt@qZ}^D<}}B@)D{Pc?PY7T&=VcDtV%WM+*K{j@Vbd#1y0H;CA+1Z?S&n zIxOF+hcj^+OQh3S%+g0J$f@cSCw9Z=q!vzbzW2yBw&qd1aE{dodZC4t^%2eD@QY26}biRc}}%_BU-<%O)0y&HtV1Z7C8@CMxvCG2-X{P8~Om6>p|GHW(*9 zo_%sHM*0-oV}$EH60*@2TQ*kj`{96C(J+;4oL&>u-@@x$w zfos>`Yt4I;l}~_~S`|AnLBy`Zi!uL1v4!zpRV}t)5?)42l+fxa;?@ANEV)5LI1b;Ff*QAl9e{lsnH@3Lys#Vj;) z%jx2xe>L>Qj!hTanzVQ98kq3mL*BXj-6rm!*H$W>k6N&lHJ>HYk)u(w#Jd2LTbIty z66pXCULATwjjGSSzFnCOAh{89-=UNq&-K}DcZjsKu=Nf&%NN<@JH#~zt-e#7s}c^D zkRvt(aRZ>41@feN?1kCl&1zaB)_jiGQhlz^Cd?7L7;%(lj<_Jncrn&tu6S6$I~q9; zz#+s75`bgbp$Emucqw4u0+a#GAnQ(nBI` z%Qk*kEUvefFiP-lc)F%tfkQa7gb$X2(T0Z;8O2&X0-qC{ZYotcy;(|}VqcYt?Qzg2 zR_jsm6BFREMIv6-I=zfVnK;i>vYGwDL}lqg*$#MqiI^TMTq2%S7CZt=#fZFQGx|VA zw$Wz)($8Mnn!o)?phP1ZcA4k*=W*n#gtFBP1ALXFcO8ctfXHm(Vmf!<$6f|BJ2P zBzDCton6@sZGSyBd5f5xV%!v4_&#h$>cb4pmd=p9GA13`EnXk%zf&AxGOf6ey}Vnb zyNhCoeZ6Ybh94!Mt|^Br)8M&1+TjeW`JoY?;z2zBcMmK1R9r!9b3PM?)8V~2pTi8F zXD@s%wgK4pIc5*%WAZ+6Z_+=X>WTgNrFeHLahh`o1}1eIozlvpy0m3Sz7ue~EgQ;N=20=K94|Blp1+S39~J44-Hpe@9PE?dc}$!q zpXcv@0$KVQrF`Qc8~n4_mDVel{EP`I6{6E|alFyEfxY;vxS!r?op%Cnf45NqmBNtgfDI#!l_Ti z0XlzL^J#YSnE8B#c}s=6qg0HoJ|i~C-tY@`GVJ#xY0IPQ=)^J((Y`@&{~4BtlSsXe z5(OQ7TvNe}3#XD@_@9=AUa=44tU35knJ(G54a;I;9eEYij&jAoS?jFWvT>DpW!In! zKIp4Tgcm$3UW6n^o>MgSfpdzc#?FzZvg7AyVJFt|ytv(HDtnXt_NQ2G`f*Qe+Xc+C z`JsW|K1KguaZyxHY`vITovkrp^g47=eENU%mKB%8N%(kjwaemzZ65njcO}RhiJDtjMtnlqzqsmK{Z#nR!$MYLl9u6BxxZ8 zSe_(dDSy$2Y;KA)yp6J}OPBW2F?w70rWl&UHV4r-O~yJuADlSLA2YC?V}Cs_uA5nb>c{Qlz^M66`Eb_jXF|) z)ADt(YdnD%E61b zt=md8r5M;&B7Yp{*=&7V$peJn37lo$IHfjh=yj4$SzgAj7fyHLH4!Ws6}o`D;X3I~ zU>$c!P1%S%WS~8-%0n)D+536YaAcihL&~eHmrd%X=90_avPlj+AG1lc;)IO*;(W;~ zUMb;y^+U>LB|h@2uJUZNOHH&F)>H7p`rNis7H4R8NG(z9;SQ-Gy-JQH_a)5U7TSTU zCLFwWxh&I(3U6jUr!7OITaSJ?`uL>oVlNTe!Z(7U~m zLw^*ay<39yWly;!n%5|eaEAw`7(6^ubI4`8N1CUmG-Z>#Xo>A?p;xM>i2y0Py^;%& zS14@{%ke3#)YFG1Szg`CgEIbBP=z4&c}G&z)hxBM)Vq>2Q=wX;I!jx?EjwS) z*n)g%Y$X)ZzRmdaEDV_X+S45eKZ-TSF^#9eWF%Y|GQRx*n{fH zPW6!R8V9T2Q=H%=7r_yg*6i9Sfb4G#m1gSACs9?dZd)jDLZpX-U zmU()i0DIZcUP=#rt(Ve!zV0RU29M^w!GAj&L;(8M8(nofd#yJVX)pV*w=|}KDzb8{ zLrtQZe@1VV;bei*QSdf+A1L57b@MUxR4@aD+{HAw2^VoAZYs8*oeW>9|D4f zBhVZ6u$dziq-7(dulW5dHq;T5&^7?Le`Wqij2G3_V*!;?Sovt_?W-j;V_SpLv&OgC zn2vby$^BuA9Reriq;lNi*wh!wq)oKRS?TYmBYLT$2yVhB2-r zEcGFCM{BC=ld#k^6AqYxwr_B>3_?juwU}9ph}0|#7i%j=@sm_vmpj|mRyw3H2Kj)=C=|1P)1+DOlD1DnR})z4=~9*(U*mz3s4nJK?1EP8fLb$>4eHh> zhI;xuwQ^IRz@|@^+Oij>OVepPtI-U_(2SS?O*|$-132zU{f6bH{5UhI} z#+6~QF}F#tU{s9Nyd9bhbtt$)Dnszt9nv%k-aH$l>=yRqY-upIseYdg#}O}1&5>>c zI5kJQx3=2It4d%fNC8$V4^V*xcS-jdK~lX0#Xv_aQAm!Jpg(@da^^}mYg&L^UZSII zizS=c!nxARHC2{t=+qoiUM2{JgYK5b8ckiK^d+(EOGTK<1|48+2 zv}v?t^k^j!URh&&#!X#@Cso3Gw)oVgHz}WJZTP-nGTmE^C7D~Wo}WzHNuWqq-k4U= zlUpX`V;PpM_z&!JHcOi?HS0wM&jl-)t}uenPg_xR@>F49ollHV5M05CuR+s)_;y7` z3i2jx#_0(h+SBr9gXc>v+tNo%z%joI-Tg-QD9}eD;Xlz~?Bp(UvFvZ9Zz-xs>;;er z6``-@OASWxkeaVjaqA)~#ZJR5_;z#-)*o|C`8mY;75b2L>OAEuONeYr<^?dDuD?!( zZM_8zlZvZ?@ZDa#eM>#;w{q71erXewGwlHhJ79mZ)(=XpO)K}YVGl|Z&>;}rjfo4S zWi&f^Zh_Rv^us=OWP#MtfA<$~b;Us2oN6>P!6Vs&9<*nIywrQb>1|GXH8*$+ztln(LXBa%Puy~E0UQluTwcUkpP>BaQZ>h2?=aOwL} z_CcxiYWh9PlzFBScTtI}&+CxOW%65|t6?er)2DHR2mT*K0RvF1-m7nAG4#)_B%fI|&kPr{oz`&fskVK*L& zl|C)qZ9V4Len^?(OcnQXXxN%3av2$-o8F&`olmcoL zfrr%4$12Ep3lrLd?7O!xXnn)}6O*!QAB6RW6-WzY<46(hJz!E~v>s%eu-R)o`1m@h zCJ1V+Q+N(rC*@by2)d`GSujV07F*}Dm(=uM*FkpQu)y0;+=H>vZ)4;K@%(q-KOSV| z?{)AR2?vWGWH9n%&ZiO1c`_HUFrr7hD%EuyHl ztZse z#C{%B3sKI4D8$Yq?8A34gIlv%nwhrXr+BUJV>$0ht=Y&eQn#w&zq(5N^;@gP|Kuw1 z{oj?kwOh;cRZIUe52~eK$%AU?m-8S>zliO5SDI8+`KE1?x;41WE2>hS<3UiKJi^j< zO0C%CZBnhj(|?e*RhP?pRTNF%moEMtwKW^IU7C6=S!L{~Dy!CP)K%hN+3~-s5JMH3 zW062t*85msmlQ~dQd;tzT~%it}t=`))=ezqVz#B`*xpHmo+Pg zhc%x)T#iK)xVKx&;YZGAm&+w(Q$BaEv=hPK_DVl!t{d&XU_rYBK*=Wd(5G1V z^ZboLIZXP=_pJY?(#Y!Pf1^cdLdJ{#gj~8Qw)s=3m5IDiI*iMb_emec{@f?MiWhi4 zl-f1;>!{Mr`1;Qo9)w!{dX#V8I~Q>#wE2!Ja()Sg9mvK4DMlt zA4vmE=QpuuK9X`_H1~XjG5<$33lmwSgGbrCkELGi_VGBi)9vL!HH%$5sCJ#LJO~DF zGjqArFkRW0({9Zu+Z=oIptM$oCp_+FtQwq&J@B)1IjPx}ZQJN&olNCr9e$%!U=77q z*J82X_R0yY+I@e5eR4u_YT~Q|4->p=0G!{#g7uSHHl4p!UDdCz%p2+i-d*@Ey>EjX z@#(|}9iPOv4@0M=ci`SPI3t}greN}GF|k9piS?M{oOHYC5WXsXPRbG&-}}~mWe@+S zY(ebfbJA|3mL(mILYB&_AKTc=e_|EwtC)BJ^MrqMSyB#r=pyv;+t}iZm-+(or6J?d2ZP zN$!MmMJ?qQv^;ZK$<5e;d|5~;oHU(vZzVU*95OW;oHk?X?b(G>CrzF-EjVEstDhq0 zUUMe824i1$mYZuiHO!Zru+Lke`5(-e-R#z(a=X}#0eOFNY<_EbiYa;UjL10FqlY{+ z_E!&ir;&BPPF{%@nbqIFl}d+R@+2+aoxSA7mb{_UqEn~ksX7?Vmz%Snd&xJlUpvY@ zuen~a4ZYwW)8kT+(ZCsgJSN1LZDBtWJvD=9;U@HVpYUTGe-`+*dRPS^0F?!S;=m zSHug^Ahvpx+$$+|DI^cmx+BYPB4?!jTg8vnA1@1>V_a%xj-X-YKpvpo2`X+%GKFJ)8z)NV3zy`+c;e|8-uaJ+vT3d ztmwpnD3q{XnTWJzJ`21tAciD)wGJR z_4Pea1?}hr+VSklqjGJfvmFLH|DCRa^bU|xhvK3ek8m}Opx;>2humS$)M-^>?zgCEE1gMX1 zjBpLa*8)6bwi;R(48;|8*DP2KgOP9(;7x#U01gEdMXO-|;4r{Kz*T@X0eN@bi0};v zF9XBwfc_M#;by?c0g*u*58>em*GaV+MgUF+?2Y^@5H=x#2poorI3^#kdIn*G0G7?`W-|XAAlkYtp*eFulOxO1lJQDc?1Mprbt7vGH03(tL!UaSr5h8r5hnd=EV1Bo-_gv6&S z;(1MY{BI~M=>+{skj^{G zxHob;GOz=Ww466b_4Ihf5N*&q0Tec{&5y`tW#}zj95-=X^$3HrT0Dqb1d1hA@u7G0 z|DeSSq;S3BKaEzg%9C}pC3xofacGFBa^%!D_U#hQD$m!ER#oJhASE5(tn_YAe-w!; zHqkD*3NN1Rjld@lK;u;mw(tc?)=fpG{~xSe zvPuQ}FVe^w(vO&}s#Hrh`v5r&&%kL2ErrvtA)U=yDz_`{7>!pg_w{&_a4rfv-GAMH z&%42@$6-};X;rmLUbQ&>e&BO4X#C?gi8FG7fDb&U{!UPl9k)*1fzOBBf5PX5Ej@N#?P7?Zt8G#JA!O$zh^@!*GX+bY_wn3#Ehj`urMzeVBDXj!yUQr6)UJPXJ zJR~BQ>X1LuG=)3kiSP&T$p^#rfVqJ40iC)qHzqRs9PfGHac}weT_AZobDmKabBo~^& zkd0@qC>)*zF*oumaooGj)zSK@pf%L68fp-c_S1W}`8wLdDrjqfR-dmnFH@&5I@+;S z&^AoSS8qp`=x8TbLF)i*bzWe=?lqLDgp%(p9qoKPbCu$<`X~FX&$q^ozstEl@>RV- zHFJHLSLyOyS4Ej`N}$zb0%w^Tt}1X{gvOhdQ{n-Z3*D^0PH;8a!YXKg1ueG#l<(D)qN>s3FVO0h(OeVeEv^(}b;X{g%bK#GUmno8yeZtd z=HriPv+)ugX{nBs>p*{ya-V@nZ)6`ot=MZQT%GzKUq{|=|2)wN*EngSreR34=t?VS)t#~w&xyQiaBqVdioTW=A zc3X5|UamR7=bpxXU3P?jN{7$qJ`cx>TWk=Xsa)P{gn2=DuUrNK8cXTtOTaHgnAeMD z4D@?LSD-}v(K>vArXKX0l@ph$-mn$I_2H!!8ma!56}aRKj0NO<=%?(s#O?$Q@0$7v zU5C!9c2a(4fUg*3%3n`#8429U;~9Q{j48t=NFy~a2BdDq?ZWd2=Oau%eStaO643Wi zlMS=+%$tqUi>ah_5lKtGoS_flZW_UbhVkJ;UxOszaLMqgCz0q2z$;J}JZ?nVG{A9y z2LLHQ{E7|#sUK&=OMDaN!9=hY@Fu`C5bzS#50cDLz(PPD=o$giPtTuwqjun3 zkF>1%#a2TdJiHHu8KOj}VLTeEDqsoWF*TI)0+ll+XiEeIo zi^}dSa19F(#|uMYy~k&JnfC=OhQAb-4mU+hK}#z}{HLe20-yh~tDs$-kgwkJ8mptt zt%7zVXu0Z89=lt_7usz)+WabL_kxzUR3dGGj&@iTwBLZ1+eD((*H&@Vs2$;M$1=m73=8Qx3r3UtAmzi5}cRbBWr=Q zx>OPT$i^(um19*EyaJWWk;FYRr6BrBtf_*yk49WoLG*>9f)wZ~wNA%NEvmsV6ud}z zG+vcgp%d3T^ab0ZW5x>-0<)`0=%0A)uiyorl{1^EG2%Y^jn5I)gHHS2o1Jj5?WJPm+- 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 delta 87779 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 Date: Tue, 8 Jan 2019 14:46:07 +0100 Subject: [PATCH 036/349] Bump jsonrpc to fix hang on exit (#1367) * Test RPC fix. * Fix meta in unsubscribe. * Fix meta in unsubscribe. --- Cargo.lock | 12 ++++++------ core/rpc/src/author/mod.rs | 4 ++-- core/rpc/src/chain/mod.rs | 8 ++++---- core/rpc/src/state/mod.rs | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 678f3e4154..1e242a9aeb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1088,7 +1088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1100,7 +1100,7 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1113,7 +1113,7 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1123,7 +1123,7 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1133,7 +1133,7 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1149,7 +1149,7 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#3604d9990f051b8b440961b0877a46140bb87a50" +source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", diff --git a/core/rpc/src/author/mod.rs b/core/rpc/src/author/mod.rs index 7e26035525..be86487509 100644 --- a/core/rpc/src/author/mod.rs +++ b/core/rpc/src/author/mod.rs @@ -64,7 +64,7 @@ build_rpc_trait! { /// Unsubscribe from extrinsic watching. #[rpc(name = "author_unwatchExtrinsic")] - fn unwatch_extrinsic(&self, Self::Metadata, SubscriptionId) -> Result; + fn unwatch_extrinsic(&self, Option, SubscriptionId) -> Result; } } @@ -149,7 +149,7 @@ impl AuthorApi, BlockHash
    , + /// Justification (finalization) of the last block from the `finalization_path`. + pub justification: Justification, + /// Proof of `GrandpaApi::grandpa_authorities` call execution at the + /// justification' target block. + pub authorities_proof: Vec>, +} + +/// Justification used to prove block finality. +trait ProvableJustification: Encode + Decode { + /// Get target block of this justification. + fn target_block(&self) -> (Header::Number, Header::Hash); + + /// Verify justification with respect to authorities set and authorities set id. + fn verify(&self, set_id: u64, authorities: &HashMap) -> ClientResult<()>; +} + +impl> ProvableJustification for GrandpaJustification + where + NumberFor: BlockNumberOps, +{ + fn target_block(&self) -> (NumberFor, Block::Hash) { + (self.commit.target_number, self.commit.target_hash) + } + + fn verify(&self, set_id: u64, authorities: &HashMap) -> ClientResult<()> { + GrandpaJustification::verify(self, set_id, authorities) + } +} + +#[cfg(test)] +mod tests { + use test_client::runtime::{Block, Header}; + use test_client::client::backend::NewBlockState; + use test_client::client::in_mem::Blockchain as InMemoryBlockchain; + use super::*; + + type FinalityProof = super::FinalityProof>; + + #[derive(Encode, Decode)] + struct ValidFinalityProof(Vec); + + impl ProvableJustification
    for ValidFinalityProof { + fn target_block(&self) -> (u64, H256) { (3, header(3).hash()) } + + fn verify(&self, set_id: u64, authorities: &HashMap) -> ClientResult<()> { + assert_eq!(set_id, 1); + assert_eq!(authorities, &vec![ + (Ed25519AuthorityId([1u8; 32]), 1), + (Ed25519AuthorityId([2u8; 32]), 2), + (Ed25519AuthorityId([3u8; 32]), 3), + ].into_iter().collect()); + Ok(()) + } + } + + fn header(number: u64) -> Header { + let parent_hash = match number { + 0 => Default::default(), + _ => header(number - 1).hash(), + }; + Header::new(number, 0.into(), 0.into(), parent_hash, Default::default()) + } + + fn side_header(number: u64) -> Header { + Header::new(number, 0.into(), 1.into(), header(number - 1).hash(), Default::default()) + } + + fn test_blockchain() -> InMemoryBlockchain { + let blockchain = InMemoryBlockchain::::new(); + blockchain.insert(header(0).hash(), header(0), Some(vec![0]), None, NewBlockState::Final).unwrap(); + blockchain.insert(header(1).hash(), header(1), Some(vec![1]), None, NewBlockState::Final).unwrap(); + blockchain.insert(header(2).hash(), header(2), None, None, NewBlockState::Best).unwrap(); + blockchain.insert(header(3).hash(), header(3), Some(vec![3]), None, NewBlockState::Final).unwrap(); + blockchain + } + + #[test] + fn finality_proof_is_not_generated_for_non_final_block() { + let blockchain = test_blockchain(); + blockchain.insert(header(4).hash(), header(4), None, None, NewBlockState::Best).unwrap(); + + // when asking for finality of block 4, None is returned + let proof_of_4 = prove_finality(&blockchain, |_, _, _| Ok(vec![vec![42]]), header(4).hash()) + .unwrap(); + assert_eq!(proof_of_4, None); + } + + #[test] + fn finality_proof_fails_for_non_canonical_block() { + let blockchain = test_blockchain(); + blockchain.insert(header(4).hash(), header(4), None, None, NewBlockState::Best).unwrap(); + blockchain.insert(side_header(4).hash(), side_header(4), None, None, NewBlockState::Best).unwrap(); + blockchain.insert(header(5).hash(), header(5), Some(vec![5]), None, NewBlockState::Final).unwrap(); + + // when asking for finality of side-block 42, None is returned + let proof_of_side_4_fails = prove_finality(&blockchain, |_, _, _| Ok(vec![vec![42]]), 42.into()).is_err(); + assert_eq!(proof_of_side_4_fails, true); + } + + #[test] + fn finality_proof_fails_if_no_justification_known() { + let blockchain = test_blockchain(); + blockchain.insert(header(4).hash(), header(4), None, None, NewBlockState::Final).unwrap(); + + // when asking for finality of block 4, search for justification failing + let proof_of_4_fails = prove_finality(&blockchain, |_, _, _| Ok(vec![vec![42]]), 42.into()).is_err(); + assert_eq!(proof_of_4_fails, true); + } + + #[test] + fn prove_finality_is_generated() { + let blockchain = test_blockchain(); + + // when asking for finality of block 2, justification of 3 is returned + let proof_of_2: FinalityProof = prove_finality(&blockchain, |_, _, _| Ok(vec![vec![42]]), header(2).hash()) + .unwrap().and_then(|p| Decode::decode(&mut &p[..])).unwrap(); + assert_eq!(proof_of_2, FinalityProof { + finalization_path: vec![header(2), header(3)], + justification: vec![3], + authorities_proof: vec![vec![42]], + }); + + // when asking for finality of block 3, justification of 3 is returned + let proof_of_3: FinalityProof = prove_finality(&blockchain, |_, _, _| Ok(vec![vec![42]]), header(3).hash()) + .unwrap().and_then(|p| Decode::decode(&mut &p[..])).unwrap(); + assert_eq!(proof_of_3, FinalityProof { + finalization_path: vec![header(3)], + justification: vec![3], + authorities_proof: vec![vec![42]], + }); + } + + #[test] + fn finality_proof_check_fails_when_block_is_not_included() { + let mut proof_of_2: FinalityProof = prove_finality( + &test_blockchain(), + |_, _, _| Ok(vec![vec![42]]), + header(2).hash(), + ).unwrap().and_then(|p| Decode::decode(&mut &p[..])).unwrap(); + proof_of_2.finalization_path.remove(0); + + // block for which we're trying to request finality proof is missing from finalization_path + assert_eq!(do_check_finality_proof::( + |_| Ok(Vec::::new().encode()), + header(1), + (2, header(2).hash()), + 1, + proof_of_2.encode(), + ).is_err(), true); + } + + #[test] + fn finality_proof_check_fails_when_justified_block_is_not_included() { + let mut proof_of_2: FinalityProof = prove_finality( + &test_blockchain(), + |_, _, _| Ok(vec![vec![42]]), + header(2).hash(), + ).unwrap().and_then(|p| Decode::decode(&mut &p[..])).unwrap(); + proof_of_2.finalization_path.remove(1); + + // justified block is missing from finalization_path + assert_eq!(do_check_finality_proof::( + |_| Ok(Vec::::new().encode()), + header(1), + (2, header(2).hash()), + 1, + proof_of_2.encode(), + ).is_err(), true); + } + + #[test] + fn finality_proof_check_fails_when_justification_verification_fails() { + #[derive(Encode, Decode)] + struct InvalidFinalityProof(Vec); + + impl ProvableJustification
    for InvalidFinalityProof { + fn target_block(&self) -> (u64, H256) { (3, header(3).hash()) } + + fn verify(&self, _set_id: u64, _authorities: &HashMap) -> ClientResult<()> { + Err(ClientErrorKind::Backend("test error".into()).into()) + } + } + + let mut proof_of_2: FinalityProof = prove_finality( + &test_blockchain(), + |_, _, _| Ok(vec![vec![42]]), + header(2).hash(), + ).unwrap().and_then(|p| Decode::decode(&mut &p[..])).unwrap(); + proof_of_2.finalization_path.remove(1); + + // justification is not valid + assert_eq!(do_check_finality_proof::( + |_| Ok(Vec::::new().encode()), + header(1), + (2, header(2).hash()), + 1, + proof_of_2.encode(), + ).is_err(), true); + } + + #[test] + fn finality_proof_check_works() { + let proof_of_2 = prove_finality(&test_blockchain(), |_, _, _| Ok(vec![vec![42]]), header(2).hash()) + .unwrap().unwrap(); + assert_eq!(do_check_finality_proof::( + |_| Ok(vec![ + (Ed25519AuthorityId([1u8; 32]), 1u64), + (Ed25519AuthorityId([2u8; 32]), 2u64), + (Ed25519AuthorityId([3u8; 32]), 3u64), + ].encode()), + header(1), + (2, header(2).hash()), + 1, + proof_of_2, + ).unwrap(), vec![header(2), header(3)]); + } +} diff --git a/core/finality-grandpa/src/lib.rs b/core/finality-grandpa/src/lib.rs index 00ea6734af..aacee8fe7d 100644 --- a/core/finality-grandpa/src/lib.rs +++ b/core/finality-grandpa/src/lib.rs @@ -92,7 +92,7 @@ use codec::{Encode, Decode}; use consensus_common::{BlockImport, Error as ConsensusError, ErrorKind as ConsensusErrorKind, ImportBlock, ImportResult, Authorities}; use runtime_primitives::traits::{ NumberFor, Block as BlockT, Header as HeaderT, DigestFor, ProvideRuntimeApi, Hash as HashT, - DigestItemFor, DigestItem, + DigestItemFor, DigestItem, As, Zero, }; use fg_primitives::GrandpaApi; use runtime_primitives::generic::BlockId; @@ -116,6 +116,7 @@ pub use fg_primitives::ScheduledChange; mod authorities; mod communication; +mod finality_proof; mod until_imported; #[cfg(feature="service-integration")] @@ -123,11 +124,14 @@ mod service_integration; #[cfg(feature="service-integration")] pub use service_integration::{LinkHalfForService, BlockImportForService}; +pub use finality_proof::{prove_finality, check_finality_proof}; + #[cfg(test)] mod tests; const LAST_COMPLETED_KEY: &[u8] = b"grandpa_completed_round"; const AUTHORITY_SET_KEY: &[u8] = b"grandpa_voters"; +const CONSENSUS_CHANGES_KEY: &[u8] = b"grandpa_consensus_changes"; /// round-number, round-state type LastCompleted = (u64, RoundState); @@ -165,6 +169,10 @@ pub type CompactCommit = grandpa::CompactCommit< pub struct Config { /// The expected duration for a message to be gossiped across the network. pub gossip_duration: Duration, + /// Justification generation period (in blocks). GRANDPA will try to generate justifications + /// at least every justification_period blocks. There are some other events which might cause + /// justification generation. + pub justification_period: u64, /// The local signing key. pub local_key: Option>, /// Some local identifier of the voter. @@ -304,12 +312,65 @@ impl, RA> BlockStatus for Arc { + pending_changes: Vec<(N, H)>, +} + +impl ConsensusChanges { + /// Create empty consensus changes. + pub fn empty() -> Self { + ConsensusChanges { pending_changes: Vec::new(), } + } + + /// Note unfinalized change of consensus-related data. + pub fn note_change(&mut self, at: (N, H)) { + let idx = self.pending_changes + .binary_search_by_key(&at.0, |change| change.0) + .unwrap_or_else(|i| i); + self.pending_changes.insert(idx, at); + } + + /// Finalize all pending consensus changes that are finalized by given block. + /// Returns true if there any changes were finalized. + pub fn finalize ::client::error::Result>>( + &mut self, + block: (N, H), + canonical_at_height: F, + ) -> ::client::error::Result<(bool, bool)> { + let (split_idx, has_finalized_changes) = self.pending_changes.iter() + .enumerate() + .take_while(|(_, &(at_height, _))| at_height <= block.0) + .fold((None, Ok(false)), |(_, has_finalized_changes), (idx, ref at)| + ( + Some(idx), + has_finalized_changes + .and_then(|has_finalized_changes| if has_finalized_changes { + Ok(has_finalized_changes) + } else { + canonical_at_height(at.0).map(|can_hash| Some(at.1) == can_hash) + }), + )); + + let altered_changes = split_idx.is_some(); + if let Some(split_idx) = split_idx { + self.pending_changes = self.pending_changes.split_off(split_idx + 1); + } + has_finalized_changes.map(|has_finalized_changes| (altered_changes, has_finalized_changes)) + } +} + +/// Thread-safe consensus changes tracker reference. +type SharedConsensusChanges = Arc>>; + /// The environment we run GRANDPA in. struct Environment { inner: Arc>, voters: Arc>, config: Config, authority_set: SharedAuthoritySet>, + consensus_changes: SharedConsensusChanges>, network: N, set_id: u64, } @@ -515,7 +576,15 @@ impl, N, RA> voter::Environment, round: u64, commit: Commit) -> Result<(), Self::Error> { - finalize_block(&*self.inner, &self.authority_set, hash, number, (round, commit).into()) + finalize_block( + &*self.inner, + &self.authority_set, + &self.consensus_changes, + Some(As::sa(self.config.justification_period)), + hash, + number, + (round, commit).into(), + ) } fn round_commit_timer(&self) -> Self::Timer { @@ -616,20 +685,23 @@ impl> GrandpaJustification { ) -> Result, ClientError> where NumberFor: grandpa::BlockNumberOps, { - use grandpa::Chain; + GrandpaJustification::::decode(&mut &*encoded).ok_or_else(|| { + let msg = "failed to decode grandpa justification".to_string(); + ClientErrorKind::BadJustification(msg).into() + }).and_then(|just| just.verify(set_id, voters).map(|_| just)) + } - let justification = match GrandpaJustification::decode(&mut &*encoded) { - Some(justification) => justification, - _ => { - let msg = "failed to decode grandpa justification".to_string(); - return Err(ClientErrorKind::BadJustification(msg).into()); - } - }; + /// Validate the commit and the votes' ancestry proofs. + fn verify(&self, set_id: u64, voters: &HashMap) -> Result<(), ClientError> + where + NumberFor: grandpa::BlockNumberOps, + { + use grandpa::Chain; - let ancestry_chain = AncestryChain::::new(&justification.votes_ancestries); + let ancestry_chain = AncestryChain::::new(&self.votes_ancestries); match grandpa::validate_commit( - &justification.commit, + &self.commit, voters, None, &ancestry_chain, @@ -642,23 +714,23 @@ impl> GrandpaJustification { } let mut visited_hashes = HashSet::new(); - for signed in justification.commit.precommits.iter() { + for signed in self.commit.precommits.iter() { if let Err(_) = communication::check_message_sig::( &grandpa::Message::Precommit(signed.precommit.clone()), &signed.id, &signed.signature, - justification.round, + self.round, set_id, ) { return Err(ClientErrorKind::BadJustification( "invalid signature for precommit in grandpa justification".to_string()).into()); } - if justification.commit.target_hash == signed.precommit.target_hash { + if self.commit.target_hash == signed.precommit.target_hash { continue; } - match ancestry_chain.ancestry(justification.commit.target_hash, signed.precommit.target_hash) { + match ancestry_chain.ancestry(self.commit.target_hash, signed.precommit.target_hash) { Ok(route) => { // ancestry starts from parent hash but the precommit target hash has been visited visited_hashes.insert(signed.precommit.target_hash); @@ -673,7 +745,7 @@ impl> GrandpaJustification { } } - let ancestry_hashes = justification.votes_ancestries + let ancestry_hashes = self.votes_ancestries .iter() .map(|h: &Block::Header| h.hash()) .collect(); @@ -683,7 +755,7 @@ impl> GrandpaJustification { "invalid precommit ancestries in grandpa justification with unused headers".to_string()).into()); } - Ok(justification) + Ok(()) } } @@ -710,6 +782,8 @@ impl From> for JustificationOrCommit< fn finalize_block, E, RA>( client: &Client, authority_set: &SharedAuthoritySet>, + consensus_changes: &SharedConsensusChanges>, + justification_period: Option>, hash: Block::Hash, number: NumberFor, justification_or_commit: JustificationOrCommit, @@ -720,6 +794,7 @@ fn finalize_block, E, RA>( { // lock must be held through writing to DB to avoid race let mut authority_set = authority_set.inner().write(); + let mut consensus_changes = consensus_changes.lock(); let status = authority_set.apply_changes(number, |canon_number| { canonical_at_height(client, (hash, number), canon_number) })?; @@ -756,6 +831,20 @@ fn finalize_block, E, RA>( } } + // check if this is this is the first finalization of some consensus changes + let (alters_consensus_changes, finalizes_consensus_changes) = consensus_changes + .finalize((number, hash), |at_height| canonical_at_height(client, (hash, number), at_height))?; + if alters_consensus_changes { + let encoded = consensus_changes.encode(); + let write_result = Backend::insert_aux(&**client.backend(), &[(CONSENSUS_CHANGES_KEY, &encoded[..])], &[]); + if let Err(e) = write_result { + warn!(target: "finality", "Failed to write updated consensus changes to disk. Bailing."); + warn!(target: "finality", "Node is in a potentially inconsistent state."); + + return Err(e.into()); + } + } + // NOTE: this code assumes that honest voters will never vote past a // transition block, thus we don't have to worry about the case where // we have a transition with `effective_block = N`, but we finalize @@ -764,8 +853,26 @@ fn finalize_block, E, RA>( // syncing clients. let justification = match justification_or_commit { JustificationOrCommit::Justification(justification) => Some(justification.encode()), - JustificationOrCommit::Commit((round_number, commit)) => - if status.new_set_block.is_some() { + JustificationOrCommit::Commit((round_number, commit)) => { + let mut justification_required = + // justification is always required when block that enacts new authorities + // set is finalized + status.new_set_block.is_some() || + // justification is required when consensus changes are finalized + finalizes_consensus_changes; + + // justification is required every N blocks to be able to prove blocks + // finalization to remote nodes + if !justification_required { + if let Some(justification_period) = justification_period { + let last_finalized_number = client.info()?.chain.finalized_number; + justification_required = (!last_finalized_number.is_zero() || + number - last_finalized_number == justification_period) && + (last_finalized_number / justification_period != number / justification_period); + } + } + + if justification_required { let justification = GrandpaJustification::from_commit( client, round_number, @@ -775,7 +882,8 @@ fn finalize_block, E, RA>( Some(justification.encode()) } else { None - }, + } + }, }; debug!(target: "afg", "Finalizing blocks up to ({:?}, {})", number, hash); @@ -822,6 +930,7 @@ pub struct GrandpaBlockImport, RA, PRA> { inner: Arc>, authority_set: SharedAuthoritySet>, authority_set_change: mpsc::UnboundedSender>>, + consensus_changes: SharedConsensusChanges>, api: Arc, } @@ -909,6 +1018,7 @@ impl, RA, PRA> BlockImport // we don't want to finalize on `inner.import_block` let justification = block.justification.take(); + let enacts_consensus_change = new_authorities.is_some(); let import_result = self.inner.import_block(block, new_authorities).map_err(|e| { if let Some((old_set, mut authorities)) = just_in_case { debug!(target: "afg", "Restoring old set after block import error: {:?}", e); @@ -918,22 +1028,17 @@ impl, RA, PRA> BlockImport }); let import_result = match import_result { - Ok(ImportResult::Queued) => ImportResult::Queued, - Ok(r) => return Ok(r), - Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), + Ok(ImportResult::Queued) => ImportResult::Queued, + Ok(r) => return Ok(r), + Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), }; let enacts_change = self.authority_set.inner().read().enacts_change(number, |canon_number| { canonical_at_height(&self.inner, (hash, number), canon_number) - }); + }).map_err(|e| ConsensusError::from(ConsensusErrorKind::ClientImport(e.to_string())))?; - match enacts_change { - Err(e) => return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()), - Ok(enacted) => { - if !enacted { - return Ok(import_result); - } - } + if !enacts_change && !enacts_consensus_change { + return Ok(import_result); } match justification { @@ -952,6 +1057,8 @@ impl, RA, PRA> BlockImport let result = finalize_block( &*self.inner, &self.authority_set, + &self.consensus_changes, + None, hash, number, justification.into(), @@ -959,11 +1066,14 @@ impl, RA, PRA> BlockImport match result { Ok(_) => { - unreachable!("returns Ok when no authority set change should be enacted; \ - verified previously that finalizing the current block enacts a change; \ - qed;"); + assert!(!enacts_change, "returns Ok when no authority set change should be enacted; qed;"); }, Err(ExitOrError::AuthoritiesChanged(new)) => { + assert!( + enacts_change, + "returns AuthoritiesChanged when authority set change should be enacted; qed;" + ); + debug!(target: "finality", "Imported justified block #{} that enacts authority set change, signalling voter.", number); if let Err(e) = self.authority_set_change.unbounded_send(new) { return Err(ConsensusErrorKind::ClientImport(e.to_string()).into()); @@ -981,8 +1091,20 @@ impl, RA, PRA> BlockImport } }, None => { - trace!(target: "finality", "Imported unjustified block #{} that enacts authority set change, waiting for finality for enactment.", number); - } + if enacts_change { + trace!( + target: "finality", + "Imported unjustified block #{} that enacts authority set change, waiting for finality for enactment.", + number, + ); + } + + // we have imported block with consensus data changes, but without justification + // => remember to create justification when next block will be finalized + if enacts_consensus_change { + self.consensus_changes.lock().note_change((number, hash)); + } + }, } Ok(import_result) @@ -1060,6 +1182,7 @@ pub struct LinkHalf, RA> { client: Arc>, authority_set: SharedAuthoritySet>, authority_set_change: mpsc::UnboundedReceiver>>, + consensus_changes: SharedConsensusChanges>, } struct AncestryChain { @@ -1142,6 +1265,15 @@ pub fn block_import, RA, PRA>( .into(), }; + let consensus_changes = Backend::get_aux(&**client.backend(), CONSENSUS_CHANGES_KEY)?; + let consensus_changes = Arc::new(parking_lot::Mutex::new(match consensus_changes { + Some(raw) => ConsensusChanges::decode(&mut &raw[..]) + .ok_or_else(|| ::client::error::ErrorKind::Backend( + format!("GRANDPA consensus changes kept in invalid format") + ))?, + None => ConsensusChanges::empty(), + })); + let (authority_set_change_tx, authority_set_change_rx) = mpsc::unbounded(); Ok(( @@ -1149,12 +1281,14 @@ pub fn block_import, RA, PRA>( inner: client.clone(), authority_set: authority_set.clone(), authority_set_change: authority_set_change_tx, + consensus_changes: consensus_changes.clone(), api }, LinkHalf { client, authority_set, authority_set_change: authority_set_change_rx, + consensus_changes, }, )) } @@ -1231,6 +1365,7 @@ pub fn run_grandpa, N, RA>( client, authority_set, authority_set_change, + consensus_changes, } = link; let chain_info = client.info()?; @@ -1253,6 +1388,7 @@ pub fn run_grandpa, N, RA>( network: network.clone(), set_id: authority_set.set_id(), authority_set: authority_set.clone(), + consensus_changes: consensus_changes.clone(), }); let initial_state = (initial_environment, last_round_number, last_state, authority_set_change.into_future()); @@ -1291,6 +1427,7 @@ pub fn run_grandpa, N, RA>( let config = config.clone(); let network = network.clone(); let authority_set = authority_set.clone(); + let consensus_changes = consensus_changes.clone(); let trigger_authority_set_change = |new: NewAuthoritySet<_, _>, authority_set_change| { let env = Arc::new(Environment { @@ -1300,6 +1437,7 @@ pub fn run_grandpa, N, RA>( set_id: new.set_id, network, authority_set, + consensus_changes, }); // start the new authority set using the block where the diff --git a/core/finality-grandpa/src/tests.rs b/core/finality-grandpa/src/tests.rs index 18bfaef1a5..39924263ad 100644 --- a/core/finality-grandpa/src/tests.rs +++ b/core/finality-grandpa/src/tests.rs @@ -25,6 +25,7 @@ use tokio::runtime::current_thread; use keyring::Keyring; use client::{ BlockchainEvents, error::Result, + blockchain::Backend as BlockchainBackend, runtime_api::{Core, RuntimeVersion, ApiExt, ConstructRuntimeApi, CallRuntimeAt}, }; use test_client::{self, runtime::BlockNumber}; @@ -332,22 +333,7 @@ fn make_ids(keys: &[Keyring]) -> Vec<(Ed25519AuthorityId, u64)> { .collect() } -#[test] -fn finalize_3_voters_no_observers() { - let peers = &[Keyring::Alice, Keyring::Bob, Keyring::Charlie]; - let voters = make_ids(peers); - - let mut net = GrandpaTestNet::new(TestApi::new(voters), 3); - net.peer(0).push_blocks(20, false); - net.sync(); - - for i in 0..3 { - assert_eq!(net.peer(i).client().info().unwrap().chain.best_number, 20, - "Peer #{} failed to sync", i); - } - - let net = Arc::new(Mutex::new(net)); - +fn run_to_completion(blocks: u64, net: Arc>, peers: &[Keyring]) { let mut finality_notifications = Vec::new(); let mut runtime = current_thread::Runtime::new().unwrap(); @@ -363,7 +349,7 @@ fn finalize_3_voters_no_observers() { }; finality_notifications.push( client.finality_notification_stream() - .take_while(|n| Ok(n.header.number() < &20)) + .take_while(|n| Ok(n.header.number() < &blocks)) .for_each(|_| Ok(())) ); fn assert_send(_: &T) { } @@ -371,6 +357,7 @@ fn finalize_3_voters_no_observers() { let voter = run_grandpa( Config { gossip_duration: TEST_GOSSIP_DURATION, + justification_period: 32, local_key: Some(Arc::new(key.clone().into())), name: Some(format!("peer#{}", peer_id)), }, @@ -397,6 +384,28 @@ fn finalize_3_voters_no_observers() { runtime.block_on(wait_for.select(drive_to_completion).map_err(|_| ())).unwrap(); } +#[test] +fn finalize_3_voters_no_observers() { + let peers = &[Keyring::Alice, Keyring::Bob, Keyring::Charlie]; + let voters = make_ids(peers); + + let mut net = GrandpaTestNet::new(TestApi::new(voters), 3); + net.peer(0).push_blocks(20, false); + net.sync(); + + for i in 0..3 { + assert_eq!(net.peer(i).client().info().unwrap().chain.best_number, 20, + "Peer #{} failed to sync", i); + } + + let net = Arc::new(Mutex::new(net)); + run_to_completion(20, net.clone(), peers); + + // normally there's no justification for finalized blocks + assert!(net.lock().peer(0).client().backend().blockchain().justification(BlockId::Number(20)).unwrap().is_none(), + "Extra justification for block#1"); +} + #[test] fn finalize_3_voters_1_observer() { let peers = &[Keyring::Alice, Keyring::Bob, Keyring::Charlie]; @@ -432,6 +441,7 @@ fn finalize_3_voters_1_observer() { let voter = run_grandpa( Config { gossip_duration: TEST_GOSSIP_DURATION, + justification_period: 32, local_key, name: Some(format!("peer#{}", peer_id)), }, @@ -589,6 +599,7 @@ fn transition_3_voters_twice_1_observer() { let voter = run_grandpa( Config { gossip_duration: TEST_GOSSIP_DURATION, + justification_period: 32, local_key, name: Some(format!("peer#{}", peer_id)), }, @@ -616,3 +627,59 @@ fn transition_3_voters_twice_1_observer() { runtime.block_on(wait_for.select(drive_to_completion).map_err(|_| ())).unwrap(); } + +#[test] +fn justification_is_emitted_when_consensus_data_changes() { + let peers = &[Keyring::Alice, Keyring::Bob, Keyring::Charlie]; + let mut net = GrandpaTestNet::new(TestApi::new(make_ids(peers)), 3); + + // import block#1 WITH consensus data change + let new_authorities = vec![Ed25519AuthorityId::from([42; 32])]; + net.peer(0).push_authorities_change_block(new_authorities); + net.sync(); + let net = Arc::new(Mutex::new(net)); + run_to_completion(1, net.clone(), peers); + + // ... and check that there's no justification for block#1 + assert!(net.lock().peer(0).client().backend().blockchain().justification(BlockId::Number(1)).unwrap().is_some(), + "Missing justification for block#1"); +} + +#[test] +fn justification_is_generated_periodically() { + let peers = &[Keyring::Alice, Keyring::Bob, Keyring::Charlie]; + let voters = make_ids(peers); + + let mut net = GrandpaTestNet::new(TestApi::new(voters), 3); + net.peer(0).push_blocks(32, false); + net.sync(); + + let net = Arc::new(Mutex::new(net)); + run_to_completion(32, net.clone(), peers); + + // when block#32 (justification_period) is finalized, justification + // is required => generated + for i in 0..3 { + assert!(net.lock().peer(i).client().backend().blockchain() + .justification(BlockId::Number(32)).unwrap().is_some()); + } +} + +#[test] +fn consensus_changes_works() { + let mut changes = ConsensusChanges::::empty(); + + // pending changes are not finalized + changes.note_change((10, 1.into())); + assert_eq!(changes.finalize((5, 5.into()), |_| Ok(None)).unwrap(), (false, false)); + + // no change is selected from competing pending changes + changes.note_change((1, 1.into())); + changes.note_change((1, 101.into())); + assert_eq!(changes.finalize((10, 10.into()), |_| Ok(Some(1001.into()))).unwrap(), (true, false)); + + // change is selected from competing pending changes + changes.note_change((1, 1.into())); + changes.note_change((1, 101.into())); + assert_eq!(changes.finalize((10, 10.into()), |_| Ok(Some(1.into()))).unwrap(), (true, true)); +} \ No newline at end of file diff --git a/core/network/src/test/mod.rs b/core/network/src/test/mod.rs index 48b401b21a..9523816015 100644 --- a/core/network/src/test/mod.rs +++ b/core/network/src/test/mod.rs @@ -27,9 +27,10 @@ use std::sync::Arc; use parking_lot::RwLock; use client; use client::block_builder::BlockBuilder; +use primitives::Ed25519AuthorityId; use runtime_primitives::Justification; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Zero, AuthorityIdFor}; +use runtime_primitives::traits::{Block as BlockT, Zero, Header, Digest, DigestItem, AuthorityIdFor}; use io::SyncIo; use protocol::{Context, Protocol, ProtocolContext}; use config::ProtocolConfig; @@ -92,6 +93,9 @@ impl Verifier for PassThroughVerifier { justification: Option, body: Option> ) -> Result<(ImportBlock, Option>>), String> { + let new_authorities = header.digest().log(DigestItem::as_authorities_change) + .map(|auth| auth.iter().cloned().collect()); + Ok((ImportBlock { origin, header, @@ -101,7 +105,7 @@ impl Verifier for PassThroughVerifier { post_digests: vec![], auxiliary: Vec::new(), fork_choice: ForkChoiceStrategy::LongestChain, - }, None)) + }, new_authorities)) } } @@ -414,7 +418,7 @@ impl, D> Peer { nonce, }; let signature = Keyring::from_raw_public(transfer.from.to_fixed_bytes()).unwrap().sign(&transfer.encode()).into(); - builder.push(Extrinsic { transfer, signature }).unwrap(); + builder.push(Extrinsic::Transfer(transfer, signature)).unwrap(); nonce = nonce + 1; builder.bake().unwrap() }); @@ -423,6 +427,13 @@ impl, D> Peer { } } + pub fn push_authorities_change_block(&self, new_authorities: Vec) { + self.generate_blocks(1, BlockOrigin::File, |mut builder| { + builder.push(Extrinsic::AuthoritiesChange(new_authorities.clone())).unwrap(); + builder.bake().unwrap() + }); + } + /// Execute a function with specialization for this peer. pub fn with_spec(&self, f: F) -> U where F: FnOnce(&mut DummySpecialization, &mut Context) -> U diff --git a/core/rpc/src/author/tests.rs b/core/rpc/src/author/tests.rs index 82f5d37162..d84fa72225 100644 --- a/core/rpc/src/author/tests.rs +++ b/core/rpc/src/author/tests.rs @@ -36,7 +36,7 @@ fn uxt(sender: Keyring, nonce: u64) -> Extrinsic { to: Default::default(), }; let signature = Keyring::from_raw_public(tx.from.to_fixed_bytes()).unwrap().sign(&tx.encode()).into(); - Extrinsic { transfer: tx, signature } + Extrinsic::Transfer(tx, signature) } #[test] @@ -48,7 +48,7 @@ fn submit_transaction_should_not_cause_error() { pool: Arc::new(Pool::new(Default::default(), ChainApi::new(client))), subscriptions: Subscriptions::new(runtime.executor()), }; - let h: H256 = hex!("e10ad66bce51ef3e2a1167934ce3740d2d8c703810f9b314e89f2e783f75e826").into(); + let h: H256 = hex!("81897a4890fb7554e7f77c533a865846a11583a56a8ad5e307543188d55e64f1").into(); assert_matches!( AuthorApi::submit_extrinsic(&p, uxt(Keyring::Alice, 1).encode().into()), @@ -68,7 +68,7 @@ fn submit_rich_transaction_should_not_cause_error() { pool: Arc::new(Pool::new(Default::default(), ChainApi::new(client.clone()))), subscriptions: Subscriptions::new(runtime.executor()), }; - let h: H256 = hex!("fccc48291473c53746cd267cf848449edd7711ee6511fba96919d5f9f4859e4f").into(); + let h: H256 = hex!("9ec8469b5dcfe29cc274ac1d07ad73d80be57566ace0fcdbe51ebcf4b51e925b").into(); assert_matches!( AuthorApi::submit_extrinsic(&p, uxt(Keyring::Alice, 0).encode().into()), @@ -106,7 +106,7 @@ fn should_watch_extrinsic() { to: Default::default(), }; let signature = Keyring::from_raw_public(tx.from.to_fixed_bytes()).unwrap().sign(&tx.encode()).into(); - Extrinsic { transfer: tx, signature } + Extrinsic::Transfer(tx, signature) }; AuthorApi::submit_extrinsic(&p, replacement.encode().into()).unwrap(); let (res, data) = runtime.block_on(data.into_future()).unwrap(); @@ -116,7 +116,7 @@ fn should_watch_extrinsic() { ); assert_eq!( runtime.block_on(data.into_future()).unwrap().0, - Some(r#"{"jsonrpc":"2.0","method":"test","params":{"result":{"usurped":"0xed454dcee51431679c2559403187a56567fded1fc50b6ae3aada87c1d412df5c"},"subscription":1}}"#.into()) + Some(r#"{"jsonrpc":"2.0","method":"test","params":{"result":{"usurped":"0x53daed816610aa6b22dedbcee43aba44a7ca7155cc71f2919c5e79ebbc7de58c"},"subscription":1}}"#.into()) ); } diff --git a/core/service/src/components.rs b/core/service/src/components.rs index 397e3d7a89..dc116873b6 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -561,7 +561,7 @@ mod tests { to: Default::default(), }; let signature = Keyring::from_raw_public(transfer.from.to_fixed_bytes()).unwrap().sign(&transfer.encode()).into(); - Extrinsic { transfer, signature } + Extrinsic::Transfer(transfer, signature) }; // store the transaction in the pool pool.submit_one(&BlockId::hash(client.best_block_header().unwrap().hash()), transaction.clone()).unwrap(); diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index 67e441c792..ac15df0881 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -574,7 +574,7 @@ pub trait Digest: Member + MaybeSerializeDebugButNotDeserialize + Default { fn pop(&mut self) -> Option; /// Get reference to the first digest item that matches the passed predicate. - fn log Option<&T>>(&self, predicate: F) -> Option<&T> { + fn log Option<&T>>(&self, predicate: F) -> Option<&T> { self.logs().iter() .filter_map(predicate) .next() diff --git a/core/test-client/src/block_builder_ext.rs b/core/test-client/src/block_builder_ext.rs index 651559114a..5803c5303d 100644 --- a/core/test-client/src/block_builder_ext.rs +++ b/core/test-client/src/block_builder_ext.rs @@ -40,5 +40,5 @@ impl<'a, A> BlockBuilderExt for client::block_builder::BlockBuilder<'a, runtime: fn sign_tx(transfer: runtime::Transfer) -> runtime::Extrinsic { let signature = keyring::Keyring::from_raw_public(transfer.from.to_fixed_bytes()).unwrap().sign(&codec::Encode::encode(&transfer)).into(); - runtime::Extrinsic { transfer, signature } + runtime::Extrinsic::Transfer(transfer, signature) } diff --git a/core/test-runtime/src/lib.rs b/core/test-runtime/src/lib.rs index eb5efdf684..3d2e9b5ca8 100644 --- a/core/test-runtime/src/lib.rs +++ b/core/test-runtime/src/lib.rs @@ -104,9 +104,9 @@ pub struct Transfer { /// Extrinsic for test-runtime. #[derive(Clone, PartialEq, Eq, Encode, Decode)] #[cfg_attr(feature = "std", derive(Debug))] -pub struct Extrinsic { - pub transfer: Transfer, - pub signature: Ed25519Signature, +pub enum Extrinsic { + AuthoritiesChange(Vec), + Transfer(Transfer, Ed25519Signature), } #[cfg(feature = "std")] @@ -121,10 +121,15 @@ impl BlindCheckable for Extrinsic { type Checked = Self; fn check(self) -> Result { - if ::runtime_primitives::verify_encoded_lazy(&self.signature, &self.transfer, &self.transfer.from) { - Ok(self) - } else { - Err("bad signature") + match self { + Extrinsic::AuthoritiesChange(new_auth) => Ok(Extrinsic::AuthoritiesChange(new_auth)), + Extrinsic::Transfer(transfer, signature) => { + if ::runtime_primitives::verify_encoded_lazy(&signature, &transfer, &transfer.from) { + Ok(Extrinsic::Transfer(transfer, signature)) + } else { + Err("bad signature") + } + }, } } } @@ -135,6 +140,15 @@ impl ExtrinsicT for Extrinsic { } } +impl Extrinsic { + pub fn transfer(&self) -> &Transfer { + match self { + Extrinsic::Transfer(ref transfer, _) => transfer, + _ => panic!("cannot convert to transfer ref"), + } + } +} + /// An identifier for an account on this system. pub type AccountId = H256; /// A simple hash type for all our hashing. diff --git a/core/test-runtime/src/system.rs b/core/test-runtime/src/system.rs index 19739b21cb..d4559b1eb7 100644 --- a/core/test-runtime/src/system.rs +++ b/core/test-runtime/src/system.rs @@ -24,7 +24,7 @@ use runtime_primitives::traits::{Hash as HashT, BlakeTwo256, Digest as DigestT}; use runtime_primitives::generic; use runtime_primitives::{ApplyError, ApplyOutcome, ApplyResult, transaction_validity::TransactionValidity}; use codec::{KeyedVec, Encode}; -use super::{AccountId, BlockNumber, Extrinsic, H256 as Hash, Block, Header, Digest}; +use super::{AccountId, BlockNumber, Extrinsic, Transfer, H256 as Hash, Block, Header, Digest}; use primitives::{Ed25519AuthorityId, Blake2Hasher}; use primitives::storage::well_known_keys; @@ -36,6 +36,7 @@ storage_items! { // The current block number being processed. Set by `execute_block`. Number: b"sys:num" => required BlockNumber; ParentHash: b"sys:pha" => required Hash; + NewAuthorities: b"sys:new_auth" => Vec; } pub fn balance_of_key(who: AccountId) -> Vec { @@ -96,17 +97,20 @@ pub fn execute_block(block: Block) { if let Some(storage_changes_root) = storage_changes_root(header.parent_hash.into(), header.number - 1) { digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root.into())); } + if let Some(new_authorities) = ::take() { + digest.push(generic::DigestItem::AuthoritiesChange(new_authorities)); + } assert!(digest == header.digest, "Header digest items must match that calculated."); } /// Execute a transaction outside of the block execution function. /// This doesn't attempt to validate anything regarding the block. pub fn validate_transaction(utx: Extrinsic) -> TransactionValidity { - let tx = match check_signature(&utx) { - Ok(tx) => tx, - Err(_) => return TransactionValidity::Invalid, - }; + if check_signature(&utx).is_err() { + return TransactionValidity::Invalid; + } + let tx = utx.transfer(); let nonce_key = tx.from.to_keyed_vec(NONCE_OF); let expected_nonce: u64 = storage::get_or(&nonce_key, 0); if tx.nonce < expected_nonce { @@ -166,6 +170,9 @@ pub fn finalise_block() -> Header { if let Some(storage_changes_root) = storage_changes_root { digest.push(generic::DigestItem::ChangesTrieRoot(storage_changes_root)); } + if let Some(new_authorities) = ::take() { + digest.push(generic::DigestItem::AuthoritiesChange(new_authorities)); + } Header { number, @@ -177,21 +184,21 @@ pub fn finalise_block() -> Header { } #[inline(always)] -fn check_signature(utx: &Extrinsic) -> Result<::Transfer, ApplyError> { +fn check_signature(utx: &Extrinsic) -> Result<(), ApplyError> { use runtime_primitives::traits::BlindCheckable; - - let utx = match utx.clone().check() { - Ok(tx) => tx, - Err(_) => return Err(ApplyError::BadSignature), - }; - - Ok(utx.transfer) + utx.clone().check().map_err(|_| ApplyError::BadSignature)?; + Ok(()) } fn execute_transaction_backend(utx: &Extrinsic) -> ApplyResult { - // check signature - let tx = check_signature(utx)?; + check_signature(utx)?; + match utx { + Extrinsic::Transfer(ref transfer, _) => execute_transfer_backend(transfer), + Extrinsic::AuthoritiesChange(ref new_auth) => execute_new_authorities_backend(new_auth), + } +} +fn execute_transfer_backend(tx: &Transfer) -> ApplyResult { // check nonce let nonce_key = tx.from.to_keyed_vec(NONCE_OF); let expected_nonce: u64 = storage::get_or(&nonce_key, 0); @@ -217,6 +224,12 @@ fn execute_transaction_backend(utx: &Extrinsic) -> ApplyResult { Ok(ApplyOutcome::Success) } +fn execute_new_authorities_backend(new_authorities: &[Ed25519AuthorityId]) -> ApplyResult { + let new_authorities: Vec = new_authorities.iter().cloned().collect(); + ::put(new_authorities); + Ok(ApplyOutcome::Success) +} + #[cfg(feature = "std")] fn info_expect_equal_hash(given: &Hash, expected: &Hash) { use primitives::hexdisplay::HexDisplay; @@ -266,7 +279,7 @@ mod tests { fn construct_signed_tx(tx: Transfer) -> Extrinsic { let signature = Keyring::from_raw_public(tx.from.to_fixed_bytes()).unwrap().sign(&tx.encode()).into(); - Extrinsic { transfer: tx, signature } + Extrinsic::Transfer(tx, signature) } fn block_import_works(block_executor: F) where F: Fn(Block, &mut TestExternalities) { @@ -318,7 +331,7 @@ mod tests { parent_hash: [69u8; 32].into(), number: 1, state_root: hex!("c3d2cc317b5897af4c7f65d76b028971ce9fad745678732ff6d42301b4245a9c").into(), - extrinsics_root: hex!("4e689a607609f69df099af82577ae6c5969c44f1afe33a43cd7af926eba42272").into(), + extrinsics_root: hex!("198205cb7729fec8ccdc2e58571a4858586a4f305898078e0e8bee1dddea7e4b").into(), digest: Digest { logs: vec![], }, }, extrinsics: vec![ @@ -343,7 +356,7 @@ mod tests { parent_hash: b.header.hash(), number: 2, state_root: hex!("2c822d948bb68d7f7a1976d4f827a276a95a3ba1c4c15dbfab3bafbeb85f2b4d").into(), - extrinsics_root: hex!("009268a854b21f339c53d3c7a6619a27f564703311d91f11f61573a7fed5ca1c").into(), + extrinsics_root: hex!("041fa8971dda28745967179a9f39e3ca1a595c510682105df1cff74ae6f05e0d").into(), digest: Digest { logs: vec![], }, }, extrinsics: vec![ diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 451cac0489f4632dad587a0e8fb8ecc07753ba98..3b32eaae5b4fceef8dc3368b0ffa18a0fd59d501 100644 GIT binary patch literal 46028 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 literal 41787 zcmeIbdvIjeecyQ>jqU~-4fH%n4mFf`(W1>6i^IXQ@!&|B3v&1{Es550U0TIiOrz15 z0R{uiG#VtwkvXu;V#cwYP`gT*PFxAA;#zX6%v!p#DJxalEu>cKC>z(Bn^GnG!`V!2 zv@UvAahQry%XL)Ie!jnR@9ob+`jC4p67pY z^n7^z`gQ;M`M~}y@SvvwU6W$(yp?+A{p)u7qRRCZB`>O!N6(|=MM~7niz<6D_`5+h zY;Qhyxcx$Rsl75eGcz&2^jy2MwtCGA^x~*qTxfTfw!2%M=7sjs+Gcml3-xM5udZ|` zSla2X&UpnDR(pjP+b_7XQI&1?+VBQc^N>ng8|`K%ZQIqZS?#2^&em4fE2{djd~xey zbMr!bd&ypx^m|+cjw54XNhk=ElZW%Nx?CWfiP;+HK%D^GKyKJmeM1<%0cJ9P&d*Rjn4PTxxCT#y~@(k#dh<`(sFaV9r{B{ODoN8 zlaZ~2!SJJ7own$?O?|Ikv&ZI6_u^J(t-IFV_C9{tirO!6yfa^pSpiD#P^F0@yk?KC&Hn+Dg+Qv$|v(&tDW#ifsc!i0!*IM4`<9)AJ*EaLrk4JrP*ETP~Fty zvE8}^;#|dTZ~9nY3jnsVbs5fVuXrsD{D*J z8(ZC_6&{3mZ*FkJ_hP?NK70TC#77^C7l*$4tHC1!UTwsy40-Y1m-oEdNw4xdz8_u> z&bpr{I1v=;VSN2(s(d0{)4@^~j&~yh_oFyxJoSf>(YN)IM1O+M8e5^Wu6f;QiOj{y;XQbZB>ajr{o2 zPix3=VZ9zQZtfUcfxG&^6IEY8uh)wVw0f`ZyY*63frE5*4H8K4#pHT&oFiLKul43t~%I< zsp`;hwF1&=^636IOsGyZnsBDxgNzIQVB zLe_G@@jMKsRxA5kgw?`c`{;?#L_8gf%$3tR44|Ojr|RY7b(zYvt1#;-w64ld@(T&b zK}Bs`7 zQ-&%|9(elzZ-4vO_V}pA9pxg$`#1=)!XN^QH-ZzoYXp%ML=+t3MR`5G@yj?8Kjl@v zTFN;Rjur0Y-^g?JR%`|9fu^#qby&ow15^Wy`Be3g?z?rl5~vSMA-wsdN@Z)svw&5= z6rvi6!}ox`)Yc~Lilx(*6FbXDvFmEQ1{rCb7WfHh9DaOKr80fiI54=z2ZxVhUFi?K zgGpC6iJd*LBeSu>pX+Gkz>X;0-w`$zVki9^mOZ}(JCfHFJEGUE*r8PRHIE(aE4I5} z+7i=^K$^pqbcA_K?ywqxRe}>~+A3KA=%tcVtO80bkr8bS1uQJ{iIXE>M7L%pmLXZ! zX2|l5n1h$lCv8L+V}NR2&Gehu9degr(R`pYNbSXL5UJGm|S$$YJ~-Wc8uSFfOC}9|lSV=Fgf#m+XqB zc&m`={2S25uieY1uLcsiF}ghwd@Yb#J`ubUjGDnG&Ba&z7whH4=*H_zDax(-yr;QkZX~MWXHWZa`)zFuti{4l{qWZvaXtRlEFfKcujb91Y$0~YHyfH@p|BpIl*p9WfqUy(Zy)fWBFV+clI!!i8S_F@@9Rk8VxdlK_(nbn>1)KtqnwoPf(6&Uw15nxs^V*xs;|<#o3T~Q+!mN zG5W0j_ZeF`8h!JnSp?3rp$<7~ksv%8HTY}CQ(7=21Vzrr+ujBs4U7$jXDJ*!<$3jL zd>sn|h!j+*1VO}OMp~!KYR4&j+Y@F-;k4)>S%l%co3NB?NzXIQn z_d&`RHjzB!$p7+#^n{ck)^iP2oquNTH;_E*vMX~) zJ<}LC`Y4V9^S+3wN(A|xyTWX(e5pPt`|aat&_o$jN?xdT|7U>?OwML>+`qB!Ze6g

    B~CN=X*ZmkcU(n_9Z@2_BM8K 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 diff --git a/core/transaction-pool/graph/src/pool.rs b/core/transaction-pool/graph/src/pool.rs index a16db8206e..e96d320046 100644 --- a/core/transaction-pool/graph/src/pool.rs +++ b/core/transaction-pool/graph/src/pool.rs @@ -327,7 +327,7 @@ mod tests { /// Verify extrinsic at given block. fn validate_transaction(&self, at: &BlockId, uxt: &ExtrinsicFor) -> Result { let block_number = self.block_id_to_number(at)?.unwrap(); - let nonce = uxt.transfer.nonce; + let nonce = uxt.transfer().nonce; if nonce < block_number { Ok(TransactionValidity::Invalid) @@ -359,15 +359,12 @@ mod tests { /// Hash the extrinsic. fn hash(&self, uxt: &ExtrinsicFor) -> Self::Hash { - (uxt.transfer.from.to_low_u64_be() << 5) + uxt.transfer.nonce + (uxt.transfer().from.to_low_u64_be() << 5) + uxt.transfer().nonce } } fn uxt(transfer: Transfer) -> Extrinsic { - Extrinsic { - transfer, - signature: Default::default(), - } + Extrinsic::Transfer(transfer, Default::default()) } fn pool() -> Pool { diff --git a/core/transaction-pool/src/tests.rs b/core/transaction-pool/src/tests.rs index e02bf05401..c79ca5605b 100644 --- a/core/transaction-pool/src/tests.rs +++ b/core/transaction-pool/src/tests.rs @@ -42,12 +42,12 @@ impl txpool::ChainApi for TestApi { fn validate_transaction(&self, at: &BlockId, uxt: &txpool::ExtrinsicFor) -> error::Result { let expected = index(at); - let requires = if expected == uxt.transfer.nonce { + let requires = if expected == uxt.transfer().nonce { vec![] } else { - vec![vec![uxt.transfer.nonce as u8 - 1]] + vec![vec![uxt.transfer().nonce as u8 - 1]] }; - let provides = vec![vec![uxt.transfer.nonce as u8]]; + let provides = vec![vec![uxt.transfer().nonce as u8]]; Ok(TransactionValidity::Valid { priority: 1, @@ -93,10 +93,7 @@ fn uxt(who: Keyring, nonce: Index) -> Extrinsic { amount: 1, }; let signature = transfer.using_encoded(|e| who.sign(e)); - Extrinsic { - transfer, - signature: signature.into(), - } + Extrinsic::Transfer(transfer, signature.into()) } fn pool() -> Pool { @@ -109,7 +106,7 @@ fn submission_should_work() { assert_eq!(209, index(&BlockId::number(0))); pool.submit_one(&BlockId::number(0), uxt(Alice, 209)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, vec![209]); } @@ -119,7 +116,7 @@ fn multiple_submission_should_work() { pool.submit_one(&BlockId::number(0), uxt(Alice, 209)).unwrap(); pool.submit_one(&BlockId::number(0), uxt(Alice, 210)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, vec![209, 210]); } @@ -128,7 +125,7 @@ fn early_nonce_should_be_culled() { let pool = pool(); pool.submit_one(&BlockId::number(0), uxt(Alice, 208)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, Vec::::new()); } @@ -137,11 +134,11 @@ fn late_nonce_should_be_queued() { let pool = pool(); pool.submit_one(&BlockId::number(0), uxt(Alice, 210)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, Vec::::new()); pool.submit_one(&BlockId::number(0), uxt(Alice, 209)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, vec![209, 210]); } @@ -151,12 +148,12 @@ fn prune_tags_should_work() { pool.submit_one(&BlockId::number(0), uxt(Alice, 209)).unwrap(); pool.submit_one(&BlockId::number(0), uxt(Alice, 210)).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, vec![209, 210]); pool.prune_tags(&BlockId::number(1), vec![vec![209]]).unwrap(); - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, vec![210]); } @@ -169,7 +166,7 @@ fn should_ban_invalid_transactions() { pool.submit_one(&BlockId::number(0), uxt.clone()).unwrap_err(); // when - let pending: Vec<_> = pool.ready().map(|a| a.data.transfer.nonce).collect(); + let pending: Vec<_> = pool.ready().map(|a| a.data.transfer().nonce).collect(); assert_eq!(pending, Vec::::new()); // then diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index 89dbd02319..38f34aedf5 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -100,6 +100,7 @@ construct_service_factory! { grandpa::Config { local_key, gossip_duration: Duration::new(4, 0), // FIXME: make this available through chainspec? + justification_period: 4096, name: Some(service.config.name.clone()) }, link_half, diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 4319fbc77cfdf1650ac987dbf7b073a9b58dce47..f0e4c77f77998fbfadaaeca112c6b3c6f6e871b7 100644 GIT binary patch delta 109994 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 delta 110205 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

    lIof;v^@AHrtZU@ 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 delta 155104 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 z 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 V-M910MH@6lb;l{{IK|oP{{an7sIve7 diff --git a/srml/contract/Cargo.toml b/srml/contract/Cargo.toml index 0a2ad03029..aad1cae209 100644 --- a/srml/contract/Cargo.toml +++ b/srml/contract/Cargo.toml @@ -19,7 +19,7 @@ srml-system = { path = "../system", default-features = false } srml-balances = { path = "../balances", default-features = false } [dev-dependencies] -wabt = "0.7" +wabt = "~0.7.4" assert_matches = "1.1" [features] -- GitLab From a66a044b24288a82e0cc5ebbb67ed7b4420f15ea Mon Sep 17 00:00:00 2001 From: Fabian Raetz Date: Mon, 14 Jan 2019 21:53:41 +0100 Subject: [PATCH 065/349] Document how to build substrate on Windows (#1343) (#1429) --- README.adoc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.adoc b/README.adoc index 90b5f49a98..f51a94a4b7 100644 --- a/README.adoc +++ b/README.adoc @@ -178,6 +178,9 @@ build it. Ensure you have Rust and the support software installed: [source, shell] ---- curl https://sh.rustup.rs -sSf | sh +# on Windows download and run rustup-init.exe +# from https://rustup.rs instead + rustup update nightly rustup target add wasm32-unknown-unknown --toolchain nightly rustup update stable @@ -194,6 +197,28 @@ sudo apt install cmake pkg-config libssl-dev git clang libclang-dev [source, shell] brew install cmake pkg-config openssl git llvm + - Windows (PowerShell): ++ +[source, shell] +---- +# Install LLVM +# Download and install the Pre Build Windows binaries +# of LLVM from http://releases.llvm.org/download.html + +# Install OpenSSL (through vcpkg) +mkdir \Tools +cd \Tools +git clone https://github.com/Microsoft/vcpkg.git +cd vcpkg +.\bootstrap-vcpkg.bat +.\vcpkg.exe install openssl:x64-windows-static + +$env:OPENSSL_DIR = 'C:\Tools\vcpkg\installed\x64-windows-static' +$env:OPENSSL_STATIC = 'Yes' +[System.Environment]::SetEnvironmentVariable('OPENSSL_DIR', $env:OPENSSL_DIR, [System.EnvironmentVariableTarget]::User) +[System.Environment]::SetEnvironmentVariable('OPENSSL_STATIC', $env:OPENSSL_STATIC, [System.EnvironmentVariableTarget]::User) +---- + Then, grab the Substrate source code: [source, shell] -- GitLab From 3ee578ab1e548446f55a345ab423033e0de74489 Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Tue, 15 Jan 2019 23:23:32 +1300 Subject: [PATCH 066/349] enable dns transport (#1433) --- core/network-libp2p/src/transport.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/network-libp2p/src/transport.rs b/core/network-libp2p/src/transport.rs index b991917510..ab6ceb4f91 100644 --- a/core/network-libp2p/src/transport.rs +++ b/core/network-libp2p/src/transport.rs @@ -15,7 +15,7 @@ // along with Substrate. If not, see . use futures::prelude::*; -use libp2p::{self, InboundUpgradeExt, OutboundUpgradeExt, PeerId, Transport, mplex, secio, yamux}; +use libp2p::{InboundUpgradeExt, OutboundUpgradeExt, PeerId, Transport, mplex, secio, yamux, tcp, dns}; use libp2p::core::{self, transport::boxed::Boxed, muxing::StreamMuxerBox}; use std::{io, time::Duration, usize}; @@ -27,8 +27,11 @@ pub fn build_transport( mplex_config.max_buffer_len_behaviour(mplex::MaxBufferBehaviour::Block); mplex_config.max_buffer_len(usize::MAX); + let transport = tcp::TcpConfig::new(); + let transport = dns::DnsConfig::new(transport); + // TODO: rework the transport creation (https://github.com/libp2p/rust-libp2p/issues/783) - libp2p::tcp::TcpConfig::new() + transport .with_upgrade(secio::SecioConfig::new(local_private_key)) .and_then(move |out, endpoint| { let peer_id = out.remote_key.into_peer_id(); -- GitLab From 1264cfdce9b34abea9d35f238e00cd0ab1858d83 Mon Sep 17 00:00:00 2001 From: cheme Date: Tue, 15 Jan 2019 11:24:59 +0100 Subject: [PATCH 067/349] Document when a GenesisConfig is generated. (#1437) * Document when a GenesisConfig is generated. * Use nocompile. --- srml/support/procedural/src/lib.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/srml/support/procedural/src/lib.rs b/srml/support/procedural/src/lib.rs index 395e474b83..e2e4668d93 100644 --- a/srml/support/procedural/src/lib.rs +++ b/srml/support/procedural/src/lib.rs @@ -40,7 +40,7 @@ use proc_macro::TokenStream; /// /// ## Example /// -/// ```compile_fail +/// ```nocompile /// decl_storage! { /// trait Store for Module as Example { /// Dummy get(dummy) config(): Option; @@ -53,6 +53,21 @@ use proc_macro::TokenStream; /// storage item. This allows you to gain access to publicly visible storage items from a /// module type. Currently you must disambiguate by using `::Item` rather than /// the simpler `Module::Item`. Hopefully the rust guys with fix this soon. +/// +/// An optional `GenesisConfig` struct for storage initialization can be defined, either specifically as in : +/// ```nocompile +/// decl_storage! { +/// trait Store for Module as Example { +/// } +/// add_extra_genesis { +/// config(genesis_field): GenesisFieldType; +/// build(|_: &mut StorageMap, _: &mut ChildrenStorageMap, _: &GenesisConfig| { +/// }) +/// } +/// } +/// ``` +/// or when at least one storage field requires default initialization (both `get` and `config` or `build`). +/// This struct can be expose as `Config` by `decl_runtime` macro. #[proc_macro] pub fn decl_storage(input: TokenStream) -> TokenStream { storage::transformation::decl_storage_impl(input) -- GitLab From c5c889f07e42fc4805107e992af79b9c02d0fd16 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Tue, 15 Jan 2019 17:44:54 -0300 Subject: [PATCH 068/349] set wasmi version 0.4.3 in Cargo.toml (#1452) --- core/executor/Cargo.toml | 2 +- core/primitives/Cargo.toml | 2 +- core/sr-sandbox/Cargo.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index aec2ccd2d4..f7e261f4e8 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -14,7 +14,7 @@ substrate-state-machine = { path = "../state-machine" } sr-version = { path = "../sr-version" } serde = "1.0" serde_derive = "1.0" -wasmi = { version = "0.4.2" } +wasmi = { version = "0.4.3" } byteorder = "1.1" lazy_static = "1.0" parking_lot = "0.7.1" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index edd0f3731b..39e65889f5 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -14,7 +14,7 @@ twox-hash = { version = "1.1.0", optional = true } byteorder = { version = "1.1", default-features = false } primitive-types = { version = "0.1", default-features = false, features = ["codec"] } impl-serde = { version = "0.1", optional = true } -wasmi = { version = "0.4.2", optional = true } +wasmi = { version = "0.4.3", optional = true } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } hash256-std-hasher = { git = "https://github.com/paritytech/trie", default-features = false } ring = { version = "0.13", optional = true } diff --git a/core/sr-sandbox/Cargo.toml b/core/sr-sandbox/Cargo.toml index caa6552fbf..28450cacb4 100755 --- a/core/sr-sandbox/Cargo.toml +++ b/core/sr-sandbox/Cargo.toml @@ -8,7 +8,7 @@ build = "build.rs" rustc_version = "0.2" [dependencies] -wasmi = { version = "0.4.2", optional = true } +wasmi = { version = "0.4.3", optional = true } substrate-primitives = { path = "../primitives", default-features = false } sr-std = { path = "../sr-std", default-features = false } parity-codec = { version = "2.1", default-features = false } -- GitLab From 5d454b717b41ac8e39a2e096b855e709a461be88 Mon Sep 17 00:00:00 2001 From: Marcio Diaz Date: Wed, 16 Jan 2019 11:49:26 +0100 Subject: [PATCH 069/349] Make use of NLL in client crate (#1436) * fix: set edition to 2018 in Cargo.toml. * fix: refactor function to make use of NLL. * fix: result of applying 'cargo fix --edition' command. * fix: removes extern crate * fix: remove module uses from lib.rs * fix: tests imports --- core/client/Cargo.toml | 47 ++++++------- core/client/src/backend.rs | 4 +- core/client/src/block_builder/api.rs | 1 + .../client/src/block_builder/block_builder.rs | 42 ++++++------ core/client/src/blockchain.rs | 2 +- core/client/src/call_executor.rs | 4 +- core/client/src/cht.rs | 2 +- core/client/src/client.rs | 44 +++++++----- core/client/src/error.rs | 1 + core/client/src/genesis.rs | 6 +- core/client/src/in_mem.rs | 14 ++-- core/client/src/leaves.rs | 2 +- core/client/src/lib.rs | 63 ++---------------- core/client/src/light/backend.rs | 12 ++-- core/client/src/light/blockchain.rs | 14 ++-- core/client/src/light/call_executor.rs | 11 ++- core/client/src/light/fetcher.rs | 20 +++--- core/client/src/light/mod.rs | 12 ++-- core/client/src/runtime_api.rs | 4 +- .../substrate_test_runtime.compact.wasm | Bin 46045 -> 46029 bytes .../release/node_runtime.compact.wasm | Bin 792120 -> 791516 bytes 21 files changed, 130 insertions(+), 175 deletions(-) diff --git a/core/client/Cargo.toml b/core/client/Cargo.toml index d9c6d56b3f..57250c74a0 100644 --- a/core/client/Cargo.toml +++ b/core/client/Cargo.toml @@ -2,57 +2,58 @@ name = "substrate-client" version = "0.1.0" authors = ["Parity Technologies "] +edition = "2018" [dependencies] error-chain = { version = "0.12", optional = true } fnv = { version = "1.0", optional = true } log = { version = "0.4", optional = true } parking_lot = { version = "0.7.1", optional = true } -hex-literal = { version = "0.1", optional = true } +hex = { package = "hex-literal", version = "0.1", optional = true } futures = { version = "0.1.17", optional = true } slog = { version = "^2", optional = true } heapsize = { version = "0.4", optional = true } -substrate-consensus-common = { path = "../consensus/common", optional = true } -substrate-executor = { path = "../executor", optional = true } -substrate-state-machine = { path = "../state-machine", optional = true } -substrate-keyring = { path = "../keyring", optional = true } -substrate-trie = { path = "../trie", optional = true } +consensus = { package = "substrate-consensus-common", path = "../consensus/common", optional = true } +executor = { package = "substrate-executor", path = "../executor", optional = true } +state-machine = { package = "substrate-state-machine", path = "../state-machine", optional = true } +keyring = { package = "substrate-keyring", path = "../keyring", optional = true } +trie = { package = "substrate-trie", path = "../trie", optional = true } substrate-telemetry = { path = "../telemetry", optional = true } hash-db = { git = "https://github.com/paritytech/trie", optional = true } kvdb = { git = "https://github.com/paritytech/parity-common", optional = true, rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } -parity-codec = { version = "2.1", default-features = false } -substrate-primitives = { path = "../primitives", default-features = false } -sr-primitives = { path = "../sr-primitives", default-features = false } -sr-version = { path = "../sr-version", default-features = false } -sr-std = { path = "../sr-std", default-features = false } +codec = { package = "parity-codec", version = "2.1", default-features = false } +primitives = { package = "substrate-primitives", path = "../primitives", default-features = false } +runtime-primitives = { package = "sr-primitives", path = "../sr-primitives", default-features = false } +runtime-version = { package = "sr-version", path = "../sr-version", default-features = false } +rstd = { package = "sr-std", path = "../sr-std", default-features = false } sr-api-macros = { path = "../sr-api-macros" } [dev-dependencies] -substrate-test-client = { path = "../test-client" } +test-client = { package = "substrate-test-client", path = "../test-client" } kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } [features] default = ["std"] std = [ - "parity-codec/std", - "substrate-consensus-common", - "substrate-primitives/std", + "codec/std", + "consensus", + "primitives/std", "parking_lot", "error-chain", "fnv", "log", - "hex-literal", + "hex", "futures", "slog", "heapsize", - "substrate-executor", - "sr-primitives/std", - "sr-version/std", - "sr-std/std", - "substrate-state-machine", - "substrate-keyring", - "substrate-trie", + "executor", + "runtime-primitives/std", + "runtime-version/std", + "rstd/std", + "state-machine", + "keyring", + "trie", "substrate-telemetry", "hash-db", "kvdb" diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 88e97c7ec4..6e65f289ad 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -16,7 +16,7 @@ //! Substrate Client data backend -use error; +use crate::error; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, NumberFor}; use state_machine::backend::Backend as StateBackend; @@ -109,7 +109,7 @@ pub trait Backend: AuxStore + Send + Sync where /// Associated block insertion operation type. type BlockImportOperation: BlockImportOperation; /// Associated blockchain backend type. - type Blockchain: ::blockchain::Backend; + type Blockchain: crate::blockchain::Backend; /// Associated state backend type. type State: StateBackend; /// Changes trie storage. diff --git a/core/client/src/block_builder/api.rs b/core/client/src/block_builder/api.rs index d122909eaf..540c135de2 100644 --- a/core/client/src/block_builder/api.rs +++ b/core/client/src/block_builder/api.rs @@ -18,6 +18,7 @@ use runtime_primitives::{traits::Block as BlockT, ApplyResult, CheckInherentError}; use rstd::vec::Vec; +use sr_api_macros::decl_runtime_apis; decl_runtime_apis! { /// The `BlockBuilder` api trait that provides required functions for building a block for a runtime. diff --git a/core/client/src/block_builder/block_builder.rs b/core/client/src/block_builder/block_builder.rs index 8656bfed53..ac09f1e871 100644 --- a/core/client/src/block_builder/block_builder.rs +++ b/core/client/src/block_builder/block_builder.rs @@ -18,16 +18,17 @@ use super::api::BlockBuilder as BlockBuilderApi; use std::vec::Vec; use std::marker::PhantomData; use codec::Encode; -use blockchain::HeaderBackend; +use crate::blockchain::HeaderBackend; use runtime_primitives::traits::{ Header as HeaderT, Hash, Block as BlockT, One, HashFor, ProvideRuntimeApi, ApiRef }; use primitives::H256; use runtime_primitives::generic::BlockId; -use runtime_api::Core; -use error; +use crate::runtime_api::Core; +use crate::error; use runtime_primitives::ApplyOutcome; + /// Utility for building new (valid) blocks from a stream of extrinsics. pub struct BlockBuilder<'a, Block, InherentData, A: ProvideRuntimeApi> where Block: BlockT { header: ::Header, @@ -82,27 +83,22 @@ where /// can be validly executed (by executing it); if it is invalid, it'll be returned along with /// the error. Otherwise, it will return a mutable reference to self (in order to chain). pub fn push(&mut self, xt: ::Extrinsic) -> error::Result<()> { - fn impl_push<'a, T, Block: BlockT, InherentData>( - api: &mut ApiRef<'a, T>, - block_id: &BlockId, - xt: Block::Extrinsic, - extrinsics: &mut Vec - ) -> error::Result<()> where T: BlockBuilderApi { - api.map_api_result(|api| { - match api.apply_extrinsic(block_id, &xt)? { - Ok(ApplyOutcome::Success) | Ok(ApplyOutcome::Fail) => { - extrinsics.push(xt); - Ok(()) - } - Err(e) => { - Err(error::ErrorKind::ApplyExtrinsicFailed(e).into()) - } + use crate::runtime_api::ApiExt; + + let block_id = &self.block_id; + let extrinsics = &mut self.extrinsics; + + self.api.map_api_result(|api| { + match api.apply_extrinsic(block_id, &xt)? { + Ok(ApplyOutcome::Success) | Ok(ApplyOutcome::Fail) => { + extrinsics.push(xt); + Ok(()) } - }) - } - - //FIXME: Please NLL, help me! - impl_push(&mut self.api, &self.block_id, xt, &mut self.extrinsics) + Err(e) => { + Err(error::ErrorKind::ApplyExtrinsicFailed(e).into()) + } + } + }) } /// Consume the builder to return a valid `Block` containing all pushed extrinsics. diff --git a/core/client/src/blockchain.rs b/core/client/src/blockchain.rs index 7ff395113b..94eecf1505 100644 --- a/core/client/src/blockchain.rs +++ b/core/client/src/blockchain.rs @@ -20,7 +20,7 @@ use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, Header as Head use runtime_primitives::generic::BlockId; use runtime_primitives::Justification; -use error::{ErrorKind, Result}; +use crate::error::{ErrorKind, Result}; /// Blockchain database header backend. Does not perform any validation. pub trait HeaderBackend: Send + Sync { diff --git a/core/client/src/call_executor.rs b/core/client/src/call_executor.rs index 62104d4aa0..9872cdd97e 100644 --- a/core/client/src/call_executor.rs +++ b/core/client/src/call_executor.rs @@ -26,8 +26,8 @@ use hash_db::Hasher; use trie::MemoryDB; use primitives::{H256, Blake2Hasher}; -use backend; -use error; +use crate::backend; +use crate::error; /// Method call executor. pub trait CallExecutor diff --git a/core/client/src/cht.rs b/core/client/src/cht.rs index 51fb485da6..5797f3e279 100644 --- a/core/client/src/cht.rs +++ b/core/client/src/cht.rs @@ -35,7 +35,7 @@ use state_machine::backend::InMemory as InMemoryState; use state_machine::{MemoryDB, TrieBackend, Backend as StateBackend, prove_read_on_trie_backend, read_proof_check, read_proof_check_on_proving_backend}; -use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; +use crate::error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; /// The size of each CHT. This value is passed to every CHT-related function from /// production code. Other values are passed from tests. diff --git a/core/client/src/client.rs b/core/client/src/client.rs index 8cd0d95f67..f365c61c1f 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -17,7 +17,7 @@ //! Substrate Client use std::{marker::PhantomData, collections::{HashSet, BTreeMap}, sync::Arc}; -use error::Error; +use crate::error::Error; use futures::sync::mpsc; use parking_lot::{Mutex, RwLock}; use runtime_primitives::{ @@ -30,7 +30,7 @@ use runtime_primitives::traits::{ ApiRef, ProvideRuntimeApi, Digest, DigestItem, AuthorityIdFor }; use runtime_primitives::BuildStorage; -use runtime_api::{Core as CoreAPI, CallRuntimeAt, ConstructRuntimeApi}; +use crate::runtime_api::{Core as CoreAPI, CallRuntimeAt, ConstructRuntimeApi}; use primitives::{Blake2Hasher, H256, ChangesTrieConfiguration, convert_hash}; use primitives::storage::{StorageKey, StorageData}; use primitives::storage::well_known_keys; @@ -42,13 +42,23 @@ use state_machine::{ key_changes, key_changes_proof, OverlayedChanges }; -use backend::{self, BlockImportOperation}; -use blockchain::{self, Info as ChainInfo, Backend as ChainBackend, HeaderBackend as ChainHeaderBackend}; -use call_executor::{CallExecutor, LocalCallExecutor}; +use crate::backend::{self, BlockImportOperation}; +use crate::blockchain::{self, Info as ChainInfo, Backend as ChainBackend, HeaderBackend as ChainHeaderBackend}; +use crate::call_executor::{CallExecutor, LocalCallExecutor}; use executor::{RuntimeVersion, RuntimeInfo}; -use notifications::{StorageNotifications, StorageEventStream}; -use light::{call_executor::prove_execution, fetcher::ChangesProof}; -use {cht, error, in_mem, block_builder::{self, api::BlockBuilder as BlockBuilderAPI}, genesis, consensus}; +use crate::notifications::{StorageNotifications, StorageEventStream}; +use crate::light::{call_executor::prove_execution, fetcher::ChangesProof}; +use crate::cht; +use crate::error; +use crate::in_mem; +use crate::block_builder::{self, api::BlockBuilder as BlockBuilderAPI}; +use crate::genesis; +use consensus; +use substrate_telemetry::telemetry; + +use slog::slog_info; +use log::{info, trace, warn}; +use error_chain::bail; /// Type that implements `futures::Stream` of block import events. pub type ImportNotifications = mpsc::UnboundedReceiver>; @@ -236,7 +246,7 @@ impl Client where genesis_block.deconstruct().0, Some(vec![]), None, - ::backend::NewBlockState::Final + crate::backend::NewBlockState::Final )?; backend.commit_operation(op)?; } @@ -581,7 +591,7 @@ impl Client where let (storage_update, changes_update, storage_changes) = match transaction.state()? { Some(transaction_state) => { let mut overlay = Default::default(); - let mut r = self.executor.call_at_state( + let r = self.executor.call_at_state( transaction_state, &mut overlay, "Core_execute_block", @@ -618,11 +628,11 @@ impl Client where ForkChoiceStrategy::Custom(v) => v, }; let leaf_state = if finalized { - ::backend::NewBlockState::Final + crate::backend::NewBlockState::Final } else if is_new_best { - ::backend::NewBlockState::Best + crate::backend::NewBlockState::Best } else { - ::backend::NewBlockState::Normal + crate::backend::NewBlockState::Normal }; trace!("Imported {}, (#{}), best={}, origin={:?}", hash, import_headers.post().number(), is_new_best, origin); @@ -695,7 +705,7 @@ impl Client where let last_finalized = self.backend.blockchain().last_finalized()?; if block == last_finalized { return Ok(()) } - let route_from_finalized = ::blockchain::tree_route( + let route_from_finalized = crate::blockchain::tree_route( self.backend.blockchain(), BlockId::Hash(last_finalized), BlockId::Hash(block), @@ -708,7 +718,7 @@ impl Client where bail!(error::ErrorKind::NotInFinalizedChain); } - let route_from_best = ::blockchain::tree_route( + let route_from_best = crate::blockchain::tree_route( self.backend.blockchain(), BlockId::Hash(best_block), BlockId::Hash(block), @@ -1198,11 +1208,11 @@ impl backend::AuxStore for Client I: IntoIterator, D: IntoIterator, >(&self, insert: I, delete: D) -> error::Result<()> { - ::backend::AuxStore::insert_aux(&*self.backend, insert, delete) + crate::backend::AuxStore::insert_aux(&*self.backend, insert, delete) } /// Query auxiliary data from key-value store. fn get_aux(&self, key: &[u8]) -> error::Result>> { - ::backend::AuxStore::get_aux(&*self.backend, key) + crate::backend::AuxStore::get_aux(&*self.backend, key) } } #[cfg(test)] diff --git a/core/client/src/error.rs b/core/client/src/error.rs index 2a793e8049..b4ed765084 100644 --- a/core/client/src/error.rs +++ b/core/client/src/error.rs @@ -22,6 +22,7 @@ use std; use state_machine; use runtime_primitives::ApplyError; use consensus; +use error_chain::*; error_chain! { links { diff --git a/core/client/src/genesis.rs b/core/client/src/genesis.rs index 098c7a35e9..468d7137db 100644 --- a/core/client/src/genesis.rs +++ b/core/client/src/genesis.rs @@ -42,18 +42,18 @@ mod tests { use super::*; use codec::{Encode, Decode, Joiner}; use keyring::Keyring; - use executor::NativeExecutionDispatch; + use executor::{NativeExecutionDispatch, native_executor_instance}; use state_machine::{execute, OverlayedChanges, ExecutionStrategy, InMemoryChangesTrieStorage}; use state_machine::backend::InMemory; - use test_client; use test_client::runtime::genesismap::{GenesisConfig, additional_storage_with_genesis}; use test_client::runtime::{Hash, Transfer, Block, BlockNumber, Header, Digest, Extrinsic}; use runtime_primitives::traits::BlakeTwo256; use primitives::{Blake2Hasher, ed25519::{Public, Pair}}; + use hex::*; native_executor_instance!(Executor, test_client::runtime::api::dispatch, test_client::runtime::native_version, include_bytes!("../../test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm")); - fn executor() -> ::executor::NativeExecutor { + fn executor() -> executor::NativeExecutor { NativeExecutionDispatch::new() } diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 606f03d870..114849ca6c 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -19,20 +19,20 @@ use std::collections::HashMap; use std::sync::Arc; use parking_lot::RwLock; -use error; -use backend::{self, NewBlockState}; -use light; +use crate::error; +use crate::backend::{self, NewBlockState}; +use crate::light; use primitives::storage::well_known_keys; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, Zero, NumberFor, As, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::{Justification, StorageMap, ChildrenStorageMap}; -use blockchain::{self, BlockStatus, HeaderBackend}; +use crate::blockchain::{self, BlockStatus, HeaderBackend}; use state_machine::backend::{Backend as StateBackend, InMemory, Consolidate}; use state_machine::InMemoryChangesTrieStorage; use hash_db::Hasher; use heapsize::HeapSizeOf; -use leaves::LeafSet; +use crate::leaves::LeafSet; use trie::MemoryDB; struct PendingBlock { @@ -166,7 +166,7 @@ impl Blockchain { justification: Option, body: Option::Extrinsic>>, new_state: NewBlockState, - ) -> ::error::Result<()> { + ) -> crate::error::Result<()> { let number = header.number().clone(); let best_tree_route = match new_state.is_best() { false => None, @@ -175,7 +175,7 @@ impl Blockchain { if &best_hash == header.parent_hash() { None } else { - let route = ::blockchain::tree_route( + let route = crate::blockchain::tree_route( self, BlockId::Hash(best_hash), BlockId::Hash(*header.parent_hash()), diff --git a/core/client/src/leaves.rs b/core/client/src/leaves.rs index bc1551e6fa..1fa4cb3122 100644 --- a/core/client/src/leaves.rs +++ b/core/client/src/leaves.rs @@ -19,7 +19,7 @@ use std::cmp::{Ord, Ordering}; use kvdb::{KeyValueDB, DBTransaction}; use runtime_primitives::traits::SimpleArithmetic; use codec::{Encode, Decode}; -use error; +use crate::error; /// helper wrapper type to keep a list of block hashes ordered /// by `number` descending in a `BTreeSet` which allows faster and simpler diff --git a/core/client/src/lib.rs b/core/client/src/lib.rs index 3bb65df9d1..4a8f06dfde 100644 --- a/core/client/src/lib.rs +++ b/core/client/src/lib.rs @@ -20,59 +20,6 @@ #![warn(missing_docs)] #![recursion_limit="128"] -#[cfg(feature = "std")] -extern crate substrate_trie as trie; -extern crate parity_codec as codec; -extern crate substrate_primitives as primitives; -extern crate sr_primitives as runtime_primitives; -#[cfg(feature = "std")] -extern crate substrate_state_machine as state_machine; -#[cfg(feature = "std")] -extern crate substrate_consensus_common as consensus; -extern crate sr_version as runtime_version; -extern crate sr_std as rstd; -#[macro_use] -extern crate sr_api_macros; -#[cfg(test)] -extern crate substrate_keyring as keyring; -#[cfg(test)] -extern crate substrate_test_client as test_client; -#[cfg(feature = "std")] -#[macro_use] -extern crate substrate_telemetry; -#[cfg(feature = "std")] -#[macro_use] -extern crate slog; // needed until we can reexport `slog_info` from `substrate_telemetry` - -#[cfg(feature = "std")] -extern crate fnv; -#[cfg(feature = "std")] -extern crate futures; -#[cfg(feature = "std")] -extern crate parking_lot; -#[cfg(feature = "std")] -extern crate hash_db; -#[cfg(feature = "std")] -extern crate heapsize; -#[cfg(feature = "std")] -extern crate kvdb; - -#[cfg(feature = "std")] -#[macro_use] -extern crate error_chain; -#[cfg(feature = "std")] -#[macro_use] -extern crate log; -#[cfg(feature = "std")] -#[cfg_attr(test, macro_use)] -extern crate substrate_executor as executor; -#[cfg(test)] -#[macro_use] -extern crate hex_literal; -#[cfg(feature = "std")] -#[cfg(test)] -extern crate kvdb_memorydb; - #[macro_use] pub mod runtime_api; #[cfg(feature = "std")] @@ -100,22 +47,22 @@ mod client; mod notifications; #[cfg(feature = "std")] -pub use blockchain::Info as ChainInfo; +pub use crate::blockchain::Info as ChainInfo; #[cfg(feature = "std")] -pub use call_executor::{CallExecutor, LocalCallExecutor}; +pub use crate::call_executor::{CallExecutor, LocalCallExecutor}; #[cfg(feature = "std")] -pub use client::{ +pub use crate::client::{ new_with_backend, new_in_mem, BlockBody, BlockStatus, ImportNotifications, FinalityNotifications, BlockchainEvents, BlockImportNotification, Client, ClientInfo, ChainHead, }; #[cfg(feature = "std")] -pub use notifications::{StorageEventStream, StorageChangeSet}; +pub use crate::notifications::{StorageEventStream, StorageChangeSet}; #[cfg(feature = "std")] pub use state_machine::ExecutionStrategy; #[cfg(feature = "std")] -pub use leaves::LeafSet; +pub use crate::leaves::LeafSet; #[doc(inline)] pub use sr_api_macros::{decl_runtime_apis, impl_runtime_apis}; diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 924a474acc..7485b8cdf3 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -25,12 +25,12 @@ use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenSt use state_machine::{Backend as StateBackend, InMemoryChangesTrieStorage, TrieBackend}; use runtime_primitives::traits::{Block as BlockT, NumberFor, AuthorityIdFor}; -use in_mem; -use backend::{AuxStore, Backend as ClientBackend, BlockImportOperation, RemoteBackend, NewBlockState}; -use blockchain::HeaderBackend as BlockchainHeaderBackend; -use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; -use light::blockchain::{Blockchain, Storage as BlockchainStorage}; -use light::fetcher::{Fetcher, RemoteReadRequest}; +use crate::in_mem; +use crate::backend::{AuxStore, Backend as ClientBackend, BlockImportOperation, RemoteBackend, NewBlockState}; +use crate::blockchain::HeaderBackend as BlockchainHeaderBackend; +use crate::error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; +use crate::light::blockchain::{Blockchain, Storage as BlockchainStorage}; +use crate::light::fetcher::{Fetcher, RemoteReadRequest}; use hash_db::Hasher; use trie::MemoryDB; use heapsize::HeapSizeOf; diff --git a/core/client/src/light/blockchain.rs b/core/client/src/light/blockchain.rs index 62e40c579e..94d9da9994 100644 --- a/core/client/src/light/blockchain.rs +++ b/core/client/src/light/blockchain.rs @@ -24,12 +24,12 @@ use parking_lot::Mutex; use runtime_primitives::{Justification, generic::BlockId}; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero, AuthorityIdFor}; -use backend::{AuxStore, NewBlockState}; -use blockchain::{Backend as BlockchainBackend, BlockStatus, Cache as BlockchainCache, +use crate::backend::{AuxStore, NewBlockState}; +use crate::blockchain::{Backend as BlockchainBackend, BlockStatus, Cache as BlockchainCache, HeaderBackend as BlockchainHeaderBackend, Info as BlockchainInfo}; -use cht; -use error::{ErrorKind as ClientErrorKind, Result as ClientResult}; -use light::fetcher::{Fetcher, RemoteHeaderRequest}; +use crate::cht; +use crate::error::{ErrorKind as ClientErrorKind, Result as ClientResult}; +use crate::light::fetcher::{Fetcher, RemoteHeaderRequest}; /// Light client blockchain storage. pub trait Storage: AuxStore + BlockchainHeaderBackend { @@ -166,8 +166,8 @@ impl BlockchainBackend for Blockchain where Block: Blo pub mod tests { use std::collections::HashMap; use test_client::runtime::{Hash, Block, Header}; - use blockchain::Info; - use light::fetcher::tests::OkCallFetcher; + use crate::blockchain::Info; + use crate::light::fetcher::tests::OkCallFetcher; use super::*; pub type DummyBlockchain = Blockchain; diff --git a/core/client/src/light/call_executor.rs b/core/client/src/light/call_executor.rs index 84d7545d6f..2f748ca0a8 100644 --- a/core/client/src/light/call_executor.rs +++ b/core/client/src/light/call_executor.rs @@ -22,7 +22,7 @@ use std::marker::PhantomData; use std::sync::Arc; use futures::{IntoFuture, Future}; -use codec::Encode; +use codec::{Encode, Decode}; use primitives::{H256, Blake2Hasher, convert_hash}; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{As, Block as BlockT, Header as HeaderT}; @@ -30,12 +30,11 @@ use state_machine::{self, Backend as StateBackend, CodeExecutor, OverlayedChange create_proof_check_backend, execution_proof_check_on_trie_backend, ExecutionManager}; use hash_db::Hasher; -use blockchain::Backend as ChainBackend; -use call_executor::CallExecutor; -use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; -use light::fetcher::{Fetcher, RemoteCallRequest}; +use crate::blockchain::Backend as ChainBackend; +use crate::call_executor::CallExecutor; +use crate::error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; +use crate::light::fetcher::{Fetcher, RemoteCallRequest}; use executor::{RuntimeVersion, NativeVersion}; -use codec::Decode; use heapsize::HeapSizeOf; use trie::MemoryDB; diff --git a/core/client/src/light/fetcher.rs b/core/client/src/light/fetcher.rs index 5f9aed2fe1..3e98a063ac 100644 --- a/core/client/src/light/fetcher.rs +++ b/core/client/src/light/fetcher.rs @@ -28,10 +28,10 @@ use runtime_primitives::traits::{As, Block as BlockT, Header as HeaderT, NumberF use state_machine::{CodeExecutor, ChangesTrieRootsStorage, ChangesTrieAnchorBlockId, TrieBackend, read_proof_check, key_changes_proof_check, create_proof_check_backend_storage}; -use cht; -use error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; -use light::blockchain::{Blockchain, Storage as BlockchainStorage}; -use light::call_executor::check_execution_proof; +use crate::cht; +use crate::error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}; +use crate::light::blockchain::{Blockchain, Storage as BlockchainStorage}; +use crate::light::call_executor::check_execution_proof; /// Remote call request. #[derive(Clone, Debug, PartialEq, Eq, Hash)] @@ -391,17 +391,17 @@ pub mod tests { use futures::future::{ok, err, FutureResult}; use parking_lot::Mutex; use keyring::Keyring; - use client::tests::prepare_client_with_key_changes; + use crate::client::tests::prepare_client_with_key_changes; use executor::{self, NativeExecutionDispatch}; - use error::Error as ClientError; + use crate::error::Error as ClientError; use test_client::{self, TestClient, blockchain::HeaderBackend}; use test_client::runtime::{self, Hash, Block, Header}; use consensus::BlockOrigin; - use in_mem::{Blockchain as InMemoryBlockchain}; - use light::fetcher::{Fetcher, FetchChecker, LightDataChecker, + use crate::in_mem::{Blockchain as InMemoryBlockchain}; + use crate::light::fetcher::{Fetcher, FetchChecker, LightDataChecker, RemoteCallRequest, RemoteHeaderRequest}; - use light::blockchain::tests::{DummyStorage, DummyBlockchain}; + use crate::light::blockchain::tests::{DummyStorage, DummyBlockchain}; use primitives::{twox_128, Blake2Hasher}; use primitives::storage::well_known_keys; use runtime_primitives::generic::BlockId; @@ -454,7 +454,7 @@ pub mod tests { remote_block_header.clone(), None, None, - ::backend::NewBlockState::Final, + crate::backend::NewBlockState::Final, ).unwrap(); let local_executor = test_client::LocalExecutor::new(); let local_checker = LightDataChecker::new(Arc::new(DummyBlockchain::new(DummyStorage::new())), local_executor); diff --git a/core/client/src/light/mod.rs b/core/client/src/light/mod.rs index 8727455d30..4dc25affd1 100644 --- a/core/client/src/light/mod.rs +++ b/core/client/src/light/mod.rs @@ -28,12 +28,12 @@ use runtime_primitives::BuildStorage; use runtime_primitives::traits::Block as BlockT; use state_machine::{CodeExecutor, ExecutionStrategy}; -use client::Client; -use error::Result as ClientResult; -use light::backend::Backend; -use light::blockchain::{Blockchain, Storage as BlockchainStorage}; -use light::call_executor::RemoteCallExecutor; -use light::fetcher::{Fetcher, LightDataChecker}; +use crate::client::Client; +use crate::error::Result as ClientResult; +use crate::light::backend::Backend; +use crate::light::blockchain::{Blockchain, Storage as BlockchainStorage}; +use crate::light::call_executor::RemoteCallExecutor; +use crate::light::fetcher::{Fetcher, LightDataChecker}; use hash_db::Hasher; /// Create an instance of light client blockchain backend. diff --git a/core/client/src/runtime_api.rs b/core/client/src/runtime_api.rs index 596b355ddf..66d86590f5 100644 --- a/core/client/src/runtime_api.rs +++ b/core/client/src/runtime_api.rs @@ -32,10 +32,10 @@ pub use rstd::{slice, mem}; use rstd::result; pub use codec::{Encode, Decode}; #[cfg(feature = "std")] -use error; +use crate::error; use rstd::vec::Vec; use primitives::OpaqueMetadata; - +use sr_api_macros::decl_runtime_apis; /// Something that can be constructed to a runtime api. #[cfg(feature = "std")] diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 828287ace52c5b19767c56b537ff2f8bba90ad6f..5e5f1f72c994f2463583f4bdb037b6019da949c5 100644 GIT binary patch delta 2428 zcmZuxeN0x@8NcW9^6~N^2M`b?dNmeA3fz0nz4zP$Z1OGv8``x}+pX<%?A$LtDnb<- zOxmJrqgz-(J?hrQ%~q@;U02E_`{+F`AHFIm%MBF;o`p>dOnz`qKC`e0s{a~_MiSNO z(X!kND0(CL6O=4faU2~h_m>q%7p+ls^~~^jrMpg18WcrKOFh#KE=~;Y&@#GHs6RC$N1S2w zH@TYk!amF!vg1gU)IJ2k|DIQ)8F`a$!b^PQXec!m-CwU|$RAiwMDI0ygmRz#>UkxV z&{SNMIvBnCnTJ($G^%Ufh|m@JSW6qk^qrP$1n~XMtty(9YO4Xe+1i8Nl&4xITvtO^GJv^h_O5K*_50b5Fw-`Hx^<#umS zm30WH`P1gS1gIqDNd?G-Q$|Z3(m>Qubb0HsER>9PYT)r<>$p>V*oNNE{ z9U>`ywkUjDIz0qgQoK>gNi97_GwwMRP02&S!;r#E@Ygtn-*$9^P~Uk~ozLezG&Q;7 z-UMWHUta}OLe_Uy$>%$3lBs_m0H-)L75(msIRsU?xSP&f=#un50*XWZkAl_J{zPo` z;htJl9F;wJ1%x=}?1AUdDLFE*vgTAA+qyWmg(+!v)h+wRhPk-!QEd>aws}(9|g-8`#>%MY=fxchZp5$ zkmHIic4pBI10VZ?RzC-=o{is{|LyMV3ZqNkyp9SwdwYVq9aE)q^!4tR?|*Bp zym8{K|9jJrvqV3t`gR(M>mbjcyhm<1nTQ5Xexkx3`}+LsykMZey>D07&i?kDdwS&A zQ(LiaIROuZ8B*#w%=BdTXay#w=lEV=(SX~w9fY!J)WNPVY)TC#glRG6c=9Ww+gB3P z@tGY^78t(k8{zWS#xLw~8npK9^6*%hyfm7Woue4rKJ#ox_XC@Fz9&MNI{iQq^9(;Q zS!lu&I&*2s_QoSG7t8CXSphdVwRD{jMuhMMDU~mst}N0`L-@?G9gl{F=h-X1bj#o_ zc&NCD1~wNaqb3)wr#pVx1d@MwWsUsN%liwBAoTrEm^QUcZqjh&Q?hNMOpZ+C%O}q? z7aGL%d||l|lIPlN)z^`1du@fhdZriq4iR=}QH%PfOMEWL1YS3WY{UFh4KJHEjU!cCWRulD}=n$3<^G%%fo zx@#CdC=;F8byZ&PuAsiYPwedS9`D-Oaq9@#GB@-D@nH;YDj<~Tv#)#)6hJ2%4q-z_9YN&5$#od!FR%jUQJ)Fhw=DU? z$x2LYL48{%76fdVjLYkjCbnUQZQ{5Fd};2GixUBF1n?&yofZrnmp PF*Twayhb-_45RA5%uAda delta 2454 zcmaJ>dr%hF72msjJU-yl1q1}Ct_}eS0(T#GA3!2s6VM^4##&9HwRCsyE{`A*#1y7! z&@_{o)(Dyt$s}WHD?UJDL)qHSWI7#fY1+=1G`3A>rfHMuM3c#MjQJx@E6k*40Tuu0 zH*@aqJnlL7y!LzZWAPs!i{lMMO89-fE!{osUA-+`dv*$Os3+C%6zPl496B##4G77Z z@Jli%ia&fV9Ew$@hRQ^TA^ zpQe!fa3*JEdQNmbO^!rkCmKd2uXp|NqCGb*uGDFIpy_~?y z-DOu}q#$gmd@hD>{k!JJWHLNJD^sDX;qkD-ST8QWK6qZ}s1bxZL6B3DPjz5`BLkgs zT1S%fCa=SgHAwyo%k5ow4%&5@Q655aFTwo(Vpo#u@TI+0S`Z^kCdtWgL#>=f3SnPS zKD@=YhaWUtCE5Fba9&8pWKqgX4u$W1b&E)jgf)$K6Y>#kYubc)z1oyX5PrF?StL^+ zHY<4Q%{$58;8?SZhSUd6ry`6$lub}4KUM4R#(nOjPg4lqMi^w3PtV@WP zXm-bHQCLOfv^j2FA`O+XS*3u=IWDa!ks_lg6X@B@;-mvDq$4SZ?`}SvK{CV6Z*EH= zlh1c9fe)Q!un|&Wy5*m@6>;Y`H-*m%r}kr&nsm32m0ZY%SKKj?Ou|8b3zl%j|0F8m zPpus&)V5s~XY2WZOipw@5W|Wd>@LGjKy6zE9B8YGC;#&-29=VN;h!I$CfJp?c5Aa9 z6x7~F@Z$d7N73tYZ!GfqbWb%Y42zz4AB8CA%)V#HIT-3It~wXxwkpbPZc`euQwgbL zVWv2J60J{i3f}GO#_ZPhPe*x=KePlMe)13Uf|_neOTI14EnRXdT>HI~I3&38bSe2H z%=-QxvoXdyL$62W9z3)kg_7q}qAX?DiG>V;iiQi&pB2ZsEbU;TAjP5ag`>EvmtS}Z z*K6Q#37$s|_v2YGT#o0x!>iH1by$uM{e1H5fs@zY{9Sl(c!fAHlq=$9?!`}UZ>&+2 z1Va#nt*MgGf;f$oij;x+dlu+LGN->kT|%uO{1)vZ;!hFt5kF6vv;Pa_1j@fhT!tuO z+$7>9Bn%;ZCQ4BK(p>|sF-a&zc{)WB?nm5&6vbPM`qc~cJLdHl@g9DBx9+#j>p#N# z%OigN9Y8*gbRWuj3-nizkKNV}+;X^ar{R`9DmZdjlO_pOh>s#>Bl?I~tMFIE9K_3r zg@|8Z_EF=a2FZvVF&8l%Df&glXCQ6Okc0wZKoB~Si8^&J;!;En(~bfRqg;u20Ws>V zhn^AcMY#ZRJ7yISu7&GtpbKzuj%^LHPE|*GSQp-G0yR znr^?l-+8RPtA_he)O0&N?Y;eQ>B!apYh4MSzf!#DPXDmrM=1oxkFJM?qp`5<=#04d z&OiQ4XdtEV;<3$=qEgS~TA-<>=K4B=8^_8d%g}Y#u`G`Tx)UfA=!hjT)3F@Iqe0-= zre$;J8`)88`_xnvlX=we8THtb=KAe>tU9@62kaXyg7YJBcw|J9JVyz9*Kkx%Hv+CQ zP>yfR(XGJoT~k#J=2@1?3*g%E@*IVEuB(_1H7QdKt`)+e;~Vl!%?w!#^C-PzKiP}8f<(j2y7Uzm#P}?dRCvfS^3OI9OU#^C-t!dmdb=P9PQ~V?($BSTK zd@%$k8*>9c@O01COwCuQ!k4{BAoYbBLBOlPKR+BWq( zZo;c$4H8p5iz+nmeM|LR(}9_>ddcu?%j6#QnU0llAJ(7l$fa0;qN|!hZP!w`U%g?r zYww>ftMgQwJ6sJ^Rr8py(V7ZxSC3y?+wF9ZSI>F zP_%nV(TeAoT(s1aQ1Kzlt9Xv(u8QU7vE(oLUe1_s`HX0d#TW)R@K3Oc>$HM~nj!GQ z4Ig97Kqg_}ztF#E=2K4<&ufJ}kPm+;4N#K)kdyv7Ifdb5RBt-|Y4k(?cxn{qhS0eS zjp+ElqCjK_v}9CVAlfIR0NP~?S*R-E1CXw0Ua>$li<-UV9haxfWzF7F@rk%3@jK=} zf834NTsh*VN!N|LarC6o*GzPMUvZwE$bOJ>e)J@#xPE7`7hE%G#ML7vjkt1b=)v^| zliPptWH6UJ`jaP`pd%)Dr$QU&UYM%h*yjpTEjpW*hle{A<3Sf5Q*( zsOdj8-OJYt?ki(=WV@^?*O;Kz&}Fh5?ppOg#EjKVcXN-&Wg^Dp{yp3ifoK0N?(w;- zCy%XjSwVlK%jJo3S##H{>Rk0HEBjhw5oIPrO%nnd!aooSUR?W!xQLsAy3b{5-F(c$ zi%s1s>p`!0Gr8q04G0A8(tv?Llm;R+WC>{D8cYMQnF2pSor>ueD-F6$y_e6xa~7Kv zj5OW&i|myajI>-mDH;u#5mZdCSon6cK~y-PdrYAUw?RD0mjbZzvKu?N0EvR$O)cU% z1g)E(HMIb9;AQGjMIzSeX2rl4Q%2MRr4dm0u>cdYOg34kY)-(qaZXI3XKNP zXgFvj@c#r=y=Ww`6dH{%8eJ6wS2U=2=A9tZSN-eV7Ce6U?6+NQ_yE+#+VH*zetdn^ zuJ_s+^(9ms`0C1vY1`hfFKyL`?eB?t6FPqUqgG!6)wXKUj>LLPRdoFLzEv0QDL7|h zMcP-Z>#KFufv-Mg^(9n{*xqE-&-=5Z&XJf?vG@0z{!3|ve^c)7($3MIj7??t|EGYQ zv(W#;1Yj_y;_o{2cWLM7>_67|cjf*IY3D>o2#|{_y8jla7x}y1OMj%A`756Jtxdh@ ze}f#kPO#jHjc4-z(}D`9|L48@FI4zHF-+$i3LEIU#9tq-&ROJt6aFH_|35|v=;vzN zlg%E8sF#S4JVa`FtSO%{M;7L>;r!_%a!wvg<@1inWfaalVsFZ0{g`LXns;276H`k4 zdu6bIHHqKHT^{QN#9H|C4~J$l(H>gB8igm)B4;AaR}-n6TgW~SfpAuWU0%d|EPnNO z>oE8Fk(amOUIZ_%m6gp|V`Kf=cU=B9(rV87{x#FwP^QIBrpsEe4!rz(S~B z3wFt?GVKt{W6NZZL#z$^RNirjCB^5NQC6o?3k|yPlwWGCo+FnWVwbWR^7ljRGL|nd zJPybtWxQBs9%qx;2`P`WtC=o;JI)&Tp)VSwY?_+?7*F+bnRS9?a<@nJKEWFMTM`mo zr2QyWZ;70I0%pMpo1J7CjGdHO-=QxHWS{TYSk#NyuJX)xY<}`v)2dv7NGl@{19c2= z#+z}|pxwzAzh}9LyPd==m1t!KV$gPTdGvb>`sryhmN3=wH|bq?iAK^u2Y`KMSSr`h|@|dY503eyC3Rmn!{YBz;0j z-_-%*NQHdyG^#E-%{n6e`qN1NqfYuSD*Y}bHUAAsv*y-z?%ug_;%}gvMRGGGJy9n~ z&XvA1j7rTu!!Bf($^BJmv?8gk!SXrgA{tV%+g%V6^tt3FpyLxf2qI7gvkZd4aO&l5pL~smo{|8 zc&t-~ZUF-vvlJl6W})9h}UwSxyHa#a)VlMO*abG!<%y z7gGx&7;Vjvi&OYR(JyZ;CWhjcE7!Gbt1NB+BOl@}c7hf!N2T#(=}zV8{HblSaVl?o zR!R?4pR4%;n#X!#{yJBHqi&c|m%@sV1!;i&BT%g$q*35{{c*+7WPwvdFFmdZT{Zf= zd@Ge#)UCOr@zl0;F3Tr#(|BeiYGsz+stZ#;{j8QPmufdH085dfw{SIZAWgo3N?Q6Y zjQ-z0${y+bVT|w2bTz&WGWbx8@68#U(Wp<(AifAvrw7s+uj|&Ei3DjXadaTPIG#4Ah2`-=h3`n#s^D|4zH5$xkrM3fV#4lRYc1 z5Ap$Qi@i3;Z{{pdwra#Xuqt37|XFh>yk$bWvlz0yB_k0(zby=QZI4 zY=*s|2~VY2=F40@5Tw+yDYBlh7c}Kb)ccq7cn)hX_vGKEAZ5lH0%kqKG>5Q? z!YW1Jo$~q5nAutu@RqDljw;~SvyS%11-uz!$E8-thakA3kUxr6P8IS$l8^BKGh?iS zycCnuYWN&nR?+qTV=}rquSV9r&H2>`y0+j8oVV^WrzLO9j@$iP^3ORtX6LrS5K%Qn zG%~2hP}OKoHC9`micCY>@=^ley>|RM1V!!nbOf)q=eN>Z2R;$O;tu>C)SK54{w)-F zr4zr5X~%i0EbhRAvUwNY51Gol@FfUx&V$2imfU+DzbF-aj*)W*Iq|UaK`7?Ztr>RT zVjjcz{4H{r^*1!&57WS-ZcPJM>$36{Emi((@$sy)J*tG?$XFM9=lQ&^5eYf%nG?aZ zvWhvITi7Fd^PYmZW=>ZTFW>CPAF2D2ChzXgudRvsy+6kGJ2_wgA6hrglwS@2oqTvk z>H~Q{y|}~`h>`;bfa%8#pH+Eqqj#=j}N|_yysnZqKZRs6LrNy~>sg zhVp6oKWwQVey z-J}$G_&VORHoe1WzNKz@Guf+@cdSjHS;~)4`mJLyp>~&huIF83&+EB26xU2nyPofh zukC5gNXc8q^68W-OlCdnQdqMGcvBk`wlF-}im>wKQ{(vs;X*d3t4Q^0z(oF!)L`w7 zh?i$3@~;0GHH@9azi_A_i?7)v$KHhb_2W76ft&c71V^8n`EXV&U$~ing<#e#ypeHy zZk5YQkp8K>k=%O=kELwuJYai$GH77qW3tm^=xE=|!IL4Zd&|2f^E_zrFHYv|@pf=B zZ^wGufm?YS#`?%XQ}~tfC8ls@F^z&skkup7JCzrZl`tDrqDT&aw32OZ0dzQz=`v$XzrR=>yPaPa>S8N7Wh#HCwt{YV z@L7~J?nZZG)>l?{5FKT^GVZU8rLPRj3)NU&;56rx*2DZ@ zg}@x6p}gXt(bw>KHCR7##X%!W9!k=ZWWim0P)wSsL(5V+R*aQ(fn9MIPf(+N|8#VD z&oq7oFyCo9?+b`*#9=Y1o1AkGKfhi~e0vYi2f7pPh31ML{CqD^Q7lK#0Gm3m&E(fJ z_=&$0z?MzVLzQ<&2B~Rotj>zw4I?Puz zi(Arsh_>b;SI|C z$jM8Co&d#XO$fv~$;i8p_3|;Y$z3o=jDY8_>HTRH$8W}3#-tlz64L?{N9(519jy=m zL02Ho^c1*U)_D_5zslxEH78ZgSck#FU>wxgx+(pAP-m%5FVzVq3V6a5$2k?pQO`VP zoKvl87a+z^PLxC=C>%G*Dlb3jnsB2Tb0fM^UcTPdohs&LjQ<-3AYrGtf-Z}d0aU!Y zEREK`V0MAPP;sfnx~nBLQ&TgQDU?UW^tR!czDys645fUgx0foeJQ-e7qkba*USRcm zOM!Fit+KwTh%%G6!{_8d;NXzUjaWjk?PcsKaHIl?LN2(Z^S&TN;sx86T~?gsw$^axvc4 z8S=*%WG}n0a)v0E85{5dvkod9n;H3jLO!Yi0*9<@i%+uBC){ksObB|dq8m-G^_i;_ zzfrx?kdIr;j7vlNacCdoj_0yCqA-X{>om2K7CP(As}@Mt2@EcG8?sMKdh zk1;)^0UyMV2PA=NFu06H6$Amm)bKiE6m&TQ+?$pZu{ua;{%=tW(B-8VEWe^k;??SsNd>f1AfgX;4zGew;7l zM=q1U&lZysofWrvYKgQBpG)D7ugl_xMIZU$95MLZ>6L7d{nf)_S|l4JuX|iv%?8VD zkBe$JGbymx|lj2)S&jNMj@H_m>LJ2rVy&R&1mc%fvNos6A#Ga234DsT9BE z0DmS^ZYAA1SlgQX;YBeP#YQd%Vy>2pmW!u=&F(8i5lwlMSBUoML)63^z-l-#H771` z1t40ni2l9Ywn7YudwK6V2rz(W(G!q%LKdwQTj04ovr@d#KEd*pLTX_>Tyzg+nQ2z6 zdd1>*_h57npU?C|U_vAA4jj^BbSTV{-@hcTix1-qlpB7OV^@hjEJD7vN))mP`_L-U zKx5a~!iEOI2HTOZiDd{S!l2ywhFAg>`mQyi9irB(5f`urWzm zKP(#C6>G)aoV_KJtHgN-E^`9u1fMxU@;WEY38WKz<^;)aJ83Gg<=euDtgkV9#b%Kl zUbj6P4F3lrP0otY<7DS=M3ju(DhAe9gG9a}dHib;Az#=k!Y0gLs_Goa8sbKrxRS>;ZM9P-cqQ~FXQhct|(e)34@EIMDrbKv${?BiABkIFTg~`L#B#(w_K6sR*q=U8v1304bFtU#!=GUr z0^dDbRvWs>K^aBgi3C}krF-lfJ{Re{z9g^A+9tgA&RwEhQ2Nk)q9GMM{j+E!m+TXR z|5T_zW<=;Qa`>0x4B)upE72cty!e$Ek09%75nxr)`dSQ6cBE%jxo}8zje0=6YmSI~ zx&Lc%o$S3|WW;sD-U((#n~{(uYSDqo@%sVvoc$s#$72?l`O`2-YL!)*zojf_<5Lo^5pTw_Jt`6-y^rw0{$wU7Z8|pMlw5cHR+S)IoG`xT0Y&lSVMqFPn zK7jRxcJ}WAj&qM3{fB6Iu3WVv`fv8yD?9Wo8d3v88u9l-YGX)8Yh5Cim56(So)UA$ z5?^c6v&7jS)mmxgDWrZ1GsO~;ZR>?Z$;}TE_5SBdEs|Fy>5{FJr<3#o^es18Z%R_};uIYVgRj~5 zHqd(!xqOhShj)gYO>N=6#>-37&c=CIj%LaZ>H4s`u-B#>OV`^ZdfSpxiX|x%(=$E6 z?(oQV8Tw2074k@k3 zBd9FUX}U0*>3K=;XY25(0~pQP0;9ogX_Mfz8_`Vfft=4Z)AJF0+6>4#E=8ewYhI|2 zMe!#JQQ0y1L7|?Ij#}cNj2%S<5!MW7VTLuOG$>$~pe|N~=8nrdi*&ft<+DY=@NxNl zkv;~&70vY~2<~aFcSo?bx&9)myuF3K9B=t8Re_6I>b>DEU)WN=IG%lC|Il5Z$$X?; za`GNEba`w!v!{MNw7Xw>>h}h_2V>9)M=^^gP0U9oCMJ*WzDP3$|NG?PUix*Rd>Kk( z`%^vx`3&SM>|K+upuT(&$QOZpuh-`5Twgvn^0`f)-K~#)17}0*S1!;m^rD~cA^J7w z(G5fNUk&-(wOa3*{Q;V@i9oY{TqBK9S`KgHlA}iG&+((L$+(ev5%6*TNc|03Gx_5x z{UBD<4_>WLWW(%X*XUSFIa$s`6g*bNWg51`1~qI))vQYS_$a+^;y%5j3tk?pfEK+C zOQV7RN}d^|&(y25j%=TN=sNvDOwj40^$%IKJTY3&?z&HJi=7RySt;{}g8E3Mb(mO) zIH;HAau*S`4ucL6`*b+JDzZBIkE7co#ieR1khnVPCEBnJzeFzqD-Ew^kd~t_hnZ*Y(l2A;))$dfgm;rB%RO*E``? zXBF^`@GFv5sb}mou<{{@vDcHf(dM93j%)eZO)LqQq9)36T~CDHoi=3n)oEi^_!Vv3 ztDec2&#Y}DNkR5gIGa<+iSVma$+zKGRI*n+mnPD9ud;XH(`5I&2rHNw>h+n8FZwGj_(5wRX&JA^wB zwnz9e!VU-zBJ7B8Kf+E3Pa*7#@JEDQ5Y9js&qFv5A#L=17NLc3HNp~vFC#o3;YN9E zy#6p-Ae4WWq9fG|}gMBC$jWya=1KurGBee<}#i{@JMYaBhW(-)k zS`ee5;avW)+&M`vNP8It!RtEhyt3Xn00VoAOF0rge$5Wvq+i2}(3TnH-waVu;HuKB z7hp+W2jA2M-WQn%sL^t@Dvg%MX(bGeRoV6}dLtHvwNzjlAXm!+ll9wuXH_G|-Kr-> zpIuHqe5;<{3E5Cj5bJ0P2_^2fsGh0?6u_hsNL5-eQMnC*Q8X^`rSSQpbL-`=x9Yi( z9}5g8^;PCi(f5Ynfb+6iCf=s^flwWBo1TVX>TQ?-Bv9yvE{XtDmlKW#!cq<%!Hx2od%<+`cRVfWcz zPStzpN$p4&2jMhFfHKYix07A&)>BzKIrwh9XB;GSNF3)l@-|<-e7D|^JS98t*4ws% zR5u)PZNl#j2pcN*FldP=39CAMF|cDfYxR{J`UFaLou&u84p}+OE+3T{>u-2r~U{()o z9)gQdD>f6%Tym~x=vqx)e-N%iVJ481J^{`_ScW+~L7tqhcVcm};2ynESuFXwy%)g2 z7z-~c>I7bbMmJvrUTk(T;ktpsKz?+$8Qsg5PS16ZWOP|p!tV+Cl)j&C`j!OU1zkvsjX~CY|d?_BYCuC$U9{7Mt7##2MBnPKvY0|spRtXz509#=grVZf|5_qP?~4KeR^RT@Zp8#p<^h$q;m!h zs1JdD5Cvf9d5jbZueClLPcC7^&kn_R3T5x_M9&CCw?bW1%K#egT&-M1YvzEq+Hio> zudOy2fv>GL-qhr-`ygghF)U6O)6hlu?o{^>Q1{aQ)IBxF?vu^$*OQ>Z^t@lsLon%n zJvau4j70WU7(#0<2N!AMd zy2-rg3)VsD7a!Db&>ai~9?~1>)RTR(&qMn8K+mj)lnwFfLwX_P?tzE&)`(1>rQeL8 zVwSQ!-k7D*j?B{AA~JinK3dhbLe813x9OLJfjtN16YMnnO2B}N47C7&8H0ET;zRKR z4*7IskWeAEh@AsNXN4SuKx^Plm5b)6!Q3`Sff)j&(ZhPXSenEPM>mK!Bm4W3*uK8;%f3aCk-M*33%Mz4pH;HJ%i ziXy3eJ7ABd^>SEo&ip+zEZ0KP3TmZJi#3o&O7SFNMcQT_Lee%95t6o9))xSj-bq;8THNa`l36QpjEDoE-ksjZ}LlDbOjCaJ5WZjzc>g)kc-X`8(elD63hA!(a^ z5R$gp7$Iqyq^6>aWu#`3s!H93qD%_%XE=>#B0Q=&S}*ZOj-&9>V?#%k-Hp_INfRXvb|bfe&BL%xzqonySy>VF*ZIw*I7C=np2-1<5M{23dOtj+3tm})_LkbI= z)&8E2hFj?5X-=A~%PexV-*n4EZ<&@sL6)V;1*~b1c`h^CYD=-bOf0p#%tlT%eaf7A z8awqkg9GW^&53T}fRJN-s;a`?2`Zc5ly$UcB2Gt}2J~(saD5qO<8*l6(o7#*aZ8|^ zVNOg_vtSfW$WfTd;12Oddn|Vu)~iWzK`jpR&=E_Ad(f7e!8|mB@nXmtFi9>jNxFfH z3gLf`M)Q1>S$jwl&%JzEP(q<4U^x_jUYzcWQeHtvOUNQE0dl0LFN>E^aVUJ40CLa_ ziorGLRYwt-m)1Q2E0RgEA{;A#09YlK(c$4Ho&?zbElMrIY!2v90couKk7$e))1Po@#b904 zjOyhxoi0b29{gdc`K&IR)MX&LCuO6h+;DFPp}U^Y$;){3iI4zSE4t@#dJg66Pd!(_ zlB!9bDs&c*D!OsTA_O6J_07{CEyK147BH;5fZLmoDxK4*;1Ex1?hg2@rigD^PkbZ9 z=hhRSfp{!2{H2~Ih;LF)d|56M8rPFxBEC^Q@mYv(cvigA0q_YcUZxM|>*cGwR9T0P*Q{;;lkNq}7Q~C@w>bjggRA zC&7w91eCrSn8SmShPe~HgVd@|x4Oyq~&NZEB0r)PrGTY}R$INcylZwWJkc3yx> z8^NM<)Ybs){=i`sS55smwgQa-2AfyTn6Kx+%e!*Eo>W%TycLg@66%2`6Y(I`nv7xi zlMoLjz9!y^MFhyVHo}7lY)K3C1Rfmq7A8u|jfk@7It9Wt=O6*La!p0y_!Purk3*vE}sLSeD0glfnI0!1pcL&5TcG^5HO+|dVB5%d~p zvzWc%3kvOGQ1cD$6Tk#U)3Xc0j0MPgBMMjZhVBqJ=mut#S`no*M@*|}3MG)FmP$<> zorP?rGM;WeIB^4I*kV(g4AD$;4%kycfnS<5La-z?clod{kL0CjJ%Q9qcFDJ)x&}A(WCFSN5hmGz~zP_BW_$j?9h_Ab)O7-u8r^Uxo~4wdcIx zw@%5RGr2c(6p5y$+Zh__B)l4t^p+o*|5eWuN=pP;pv_<{(#)tLG3`RR#~aPA@PldO z{HiLW2gl8Y>ik#X%~6``jAjz$^qWa$GB&gkNf*EkNd6p`*@K8G?7%_YWZ`2RkSPKF zbtg~nv-70k)ya~BERjwgOoeiJrJfj1YHmYvWjI-yAd9>b2{LAp9>p5V@=86WtWQmP zqncJ)pWRBYnk?BhS=yYPrE5)=KuwmmXJ=_ylO?MrOZyzzbCI6RGUf0^dazk~O+x3h z%NEs?ZC;b*JbC4ldSVlxr)N!E@!7=+YKrxhM;GZSaz1q&{eKc2&vO#Pq&SmJgUcbA zq);;4Fc~3r$LvBg#`z9E0HMy9{+SGs;J<=KQ!%b`tC7y8262ag!KGXI*TWDZRWUT4 z^2C#Rr>I&jUABHoU&4HH&r|y7y3qp`>(8+$`Rii6W$tc4izvi^Cf$vlRY`hPk zpNr{dkpDw@>C<|XvUJnm4c@9)u#li_u>kK!kVMF(d$jfu3pRCJyU@-RNuN}`1tmKi zg6RFEXDzPl-rY_6n5$~(o)FQ{0V{Z=(sdo42DHf##ep0+l1v&++E@ozq3_~XISZfV zic~)&MOz`gCn3GS{|QCFlyXrr;WV4#UGP>Ne?~Wp8&D@3)OON3_zfJ#t;uf;OI@8? zvkvY@R5?>|h9&4MTTM2(@@YLD2wwZNo{Xtq6~Ij86s+TfMrG;*E1V9Y8fqTahhxGI z&?{6U02^2vZ#Gs!HHUyt_BS9`C7p@&X8^oT(gGwkut>WO-fSX7}n9Tp&+K_djm;3-`_(FWxd_2kEs zI{65thZ-enO2m`$7zC2+Ez9&N26lk-co|-a#659j0pSa z>-sx9E+UOg9_;m@`*tD#ZG>F6R-fGg<3V@#=m_cV9_0>2F*n_V<3){Rk2q$WPTPeD zDtJ+8r?PygN>42tfgO)fF?7HVQ!0E@%ShTw%rJMtBMJM(gPUWT;U!?u{7OnE=2w^; zKEPrGNO?1{0^$ze9^(yx8Vj!;!UaOwI{(tST>R;Us!z9F-+Eh*b$WgAUwf@OS-01)2>&N~eRWN*uR^cw%ihs97;?`hY#S@S z+(@AxzkR{``jfcPjMQP!Sud;t81lExdV^eYQGn)1Atd5tq=ARDKBCV6Hf$@3Op+yA z^t}IG4OOTC*b2h{Kpfu(@eBDru!Pprr!H(Fo9t|`FcE~n0z`Gds>8}rCMihpg@na~ zj~BzI<)b|u@LiC!^P2L8toJ}Q`?(9fUa;z@u9;xXh)sn~=m1I|buD?hS_1^`5eUg3OE*)1NB-u-L>yZ?_ za*uuoUW>lazoxbmzSO7Cw(?o~Rqjpu^})=WMD1b!3|x~*ve^MWk0she4q)F03Ow+w z9!K>oJct!XM`jDi>FR^JX`pN09oLtSfW8R~f&@HfLO^vQIoyd9T9d}U7+{j%C1j$z zAsGuq<5}J4Ri|T!#AY>Y{C7H;L!D$N_2C5e$R8Bgk5hnNefp#R5<+?3&-x^2UcdjW zZ$hx~-&l{lR37{{9PUZde@gF}ekm%2GF%K=Nd>5wIwK6_K5c&40WVA&_hUSSxsV?9X_^YE_ItZVm4 z!8L*I#I_ucWs}Qo8Aggdp@H!}(`lAWvWwG<8`)VU)}|XEm_+-%4C8W+I$Ee<8?u<@d~|Oly7_#;*q=p z<3jZRjshdgiLsw7FwO&6*k2W4+Y*v`w=(*8ldR_iK$-^^Ly}z7%4kqT97FTv4#RqZ zk{+R?kg7t|=+LE)ILixOPm+gQ84Hahs5OBk`A};k1L%06wUGb@lIz+UQ}EiUodJSO zvKMqT_8HhKUshry5d{D0W()@OC%YjRb*6{WISMNjwB;Xmnf+1^V*$kv=w)=O8~?9f z#&SY__dW)WrVp0I{fq?r#=gdHQ9$On%j)#uC0ZvyAAW^A``bROzO1$nLkCeG|Zx=KV##hXET4Aak+9cj?HtqV>5>f&J~~=6p63pqNjK_HeUAL!nYM-g$B_| z3-*t}jt+zTgQ2S3rTz(M5jHnPSR3gKagVLMARD*hg)4(s1c!dqjUd@3omq4)qY-k> zR-WL?u2cJsvj5ZkMRIbuO74RP!o)(C9J>vN!sRyJ8gLdpk8{!|XSyTh$!$E+i;ZlW z3D{`=nv8zXohHrg{MG`BrgI>;kpW3aSL!!eN~F#w5RbRjuES$aX=^UGKj_Xw)w7oH z+w;RE(Uo%+qz3C0v^P}qEzE%}H>oZ}B&!{~$#Ku~j-f2s;VijIw!3-+B9Ke%z^lza zw3;S__lMmN!8BK!;jyF9yZPiUwbkq6tiVv=wZ!cPEzfi zK(hE0j@-vD!^II`&VDbdv*8E=@~IbjoD&t0pS{SF`HZFVDXwGH4vH{P|5SiP%`AW4csd)Tfw{WawZq9;E#ZUHATT+uEe+xUderItQ@tH z4`(;XjVpPt1|?WCg%8RKtph3C(UPcNHhqapkoMaz@hSYUOLktxJIigGK{0bz0sXKy zp5jS<<*Tiw-tqF(DqfvUbRF?$x>id#wRC;tWqy_KM#@NDNM6XUlb653&!eX1zk(z2 z5pv(tJSmpEvzU622?J{iFvL%MHoVFU z`)EarCbjGU6xU- zBIDNb9_&duWG!wIc~b6M%O@B!ekJyDIBCqAxCa-!F<>2Uky`z^!*|4PDb$yKxQ<`k64!?aNCXH{>{^5P)P1;0E9B>3B&lgyVKl9TeFQ@0z0HSZ(s>$3_6BuQ zACZSPlqmro(B(64^T{|p>4-=r<5jY? z^3HeoV~uI?5{=N<(}1F#6i2?&yQ&@68F6W?=gCd@@?2|R+K2C#5rLYA%P z8KB|?>-p?+0IDQEl~t3~_;>j|L&yQ3_ILnN^py@J({_DYgjG*;JeiWfiWILvQ<@9C z6O${#c;VUFLHPma_^>BilLI&Kl!~HQqef!2%ySqHQyF;~Xoe-#JVK2V)YS-V-J%yL zi@0;`y$yUsS%_^_37Ul*kC0OWS7ni?2$#UENzh!0!Ifhu7(wd`aI|qaQ%JK{f&tA% z!a=2GRh)IlIt*YfkW6?TfzT!x`m&tL*R%Z^2hTDR20OH>ai-eS?d@Zjsx+;RDc7 z^8n96P<#La?1UU~fagS=;P6}sY|=R+D-Q6^i2mRJ?ns#|i@xPwXH?BU3yZ76ufXDp z`LgIBUz$5-{W^jo3%g1>;eO9b1(S)ljs5@!KAHrolTPo#Shj@tY- z{~2D_9K!{HUF_z^xzsw$4NVm_mkdD=*50aOhD2YTsG3K~zvq|uYV%q+D0KDryh&PZ z6bR8-(FjK^dFFc_3DsfAXbz#y5WFlVPQfKFlwY_x{0e2;rqSeHlc(`xx4T z7}d`WZ5ca@a+bR_+@2WXf?MTJZtWC1VIPmw_ArE7JlY(V4BqS{M=7A9yp`JsW(LNpf|2r{gQTtWi@TTTr`S_g42UFryg zkyuQ-$_+y^5w5Sk@<5{2t`2)x=^^&$T6$|#eLTp47i)#KOw+E`yfc=DOk+IAnATcjIpE32I61pmi)WqX zMOoTlTvoa)OA91+28hmOrQGp@natl=ex0RVij3GIdI@gmn{8?~PyUcJD5WeSRQ4LO z{)@?##Q^T{Y;AhMIdUMoqcY+FCKa?XDk%Fk)E0Xx!=`)X92wnOYb&cwP1x-kfediV znOxT#0`m7ZTCN=1NGq4S``~h`F*({cPmL4c$8YVfxmq)h{)96(lXv86x5~;lBZVA( z8NQ~1=00R{L_4j7Qf7p+`Z{T$tb5PbB6FbjB4ZZ-sTMXv&rt3GFDaTKxS7+=j+(+R zHq&BiVEw3>_G-<`6NTEVp~mdeA}vq@WMvC&JreGGC9;uye@pFF<_TL+R`utEhto-u z(dN0@E*=KJzrfi7`FR`7AMOs&v>MMNF4CIVNbJub^G1AN;4-z!$WHdG_F5|~3=Dwp z#l4O>2dRSxhj@mbr}bdbvuL1|zD_ux@!gP3XdycTh{RJXvJpZEY8QT%k6GFV0-!_% zD+hxt$}iT&NHbrHmO!z$p(^Zv}vBOd1JlstV22eo+vlj8J&HNfuSdQqw&Jtnl5|iXdYSiP-FvpSubse zRx?0~0?zaWu>ib?NC)4{KV4qfPwU{R@g{9qXv==u1m+_wILyNQlkLO-+6%b2QhpiG z;_XicYVDY}#wCRZ;=4Ao|3%s+a8iSdwR}(5D`l;D%pP#Db_?^WuEWAp1WJtbuNjdc zgx!CsmdwFkz$(Q~ktg4Z)QO%q#;Z~}A%dLFX=r4ZE?NtF>>%xYf(W>$kx$FR0!Z>-I)}Cge<#$2&-y(;M*7Dfx@}AL9vZ8Z27Sx{S{ z>{qHKw5WI5w$}fRDkbNZYF+tTAt>IuP4k3mY%RNv!OFl{eR*sQ#ER2kYq@WX=H^GA zm50YTGaLX;k|#^GI65SyHsRInai|+lU9WWt^;unWirX~{Wv{VXqfn<>hN^F4?;5L3 z;l1kbP`$C(M|ieQ2Pv`}J%{aXKowdz9uoPZr{uQraI86fcn$;i#ssYc<4Z&RAOD;d zDRU-jtuftRF;P?Z&nw9L%1sls{@HaJc86N?|EX2kagug1>uS%Qq|IjRj11hYjpC0i zmQx>dD8h%vZFGAQPg=5=RLUv_Jdq}@=)*r%_PJHd$2FCcZ`Fbr@%gtxolw;z$*s?6 z8In)Y;t1fRDGq!WPSL6`g~#8fwW8==w`mvgC5z?4+q8V@rvm>DdHOaj*PsTiczNez zT0;qfi;{zG*BXQ{pGdVQ$_2OA46&lA2)X}uEtUx6-?wW`slx23T94R;Pot(7f26gH z9$Nb&eHqidOTziy-=-eS2 z`S@LEC=Br}_7`_)zj?~)V7&Gb`hgm1thGD(SDmErxYS0~7zQ8+^G~DoXZ==HM@#tR zS3xuO;91%jH%x(dC8oz?^8R_+ZUmzqg%)>QKJ=*8-qF3A;8s66x*O8H@gl!?RJ$r^ zHO#`l3~`yf3?sm+6;aeOd0+e6$F$dUcIkvbN6%|L8CS(ja5`C6Qv%gTS{hb(moC&K&=pfXhI0!WF`OsG4E?j`N~al&HIo)U&+1iJM$2( zy)BZxH*48M5aTw(>kA|;*^J4lul#hgR^WipOt#pftqf(!_tK`x)!4eMCcTWUDs$hh zpsI3v;#SfNdfWCk?Q%x)C5!-%98j&T;CH_-`3G8)jCVJLY)!|eS-T?eQ z&^8+O`$zLR1MwyA%>WEDASs^Nxt==)*^(TMCtwrFdUPGA87%0N)G%8 zNkqZa#aBMkGTBM{YBCq&d+e1RL^G*l_Wbx-(21=aSsr`t0zTZ`+iAX9#yG(%OmH zY5Q(1iW=Ls8&f4%C~A+^IjMZJsx}tYs%7?@y*FV8sT{UPn+pl@{T{7^Z{H-_d;xGz z*bjc8jV9y$-+Q%dS>N(aRMdOD$8w&m6oRdr5Bu0Sb|aOlz?%CW<#H+??Y+)pEq6Ks zx~HC8?Y+ihee}M3?n|xVKj7~0m)gOQ#9dAMaxq%?U5)+dW%A%x5KIrU5?3HvR=tP(-0_>(s>mX`+=vzll7VDy|yzKyH_3z~J1KLr-IO1B!?cV~I zZ*P|I2cdUi2Jd{(8M6roG01nwN>qZc#%wsKbv0;Ou@WT#(11>ghIy=R2Mo9uLEg8> ziHD#lpu5WtX)R*tg9f#o#NrEeGVw5`qdA*p$HQ7y>OgN7574CcOw;lXArN;4#rXTn zNr!>N5Vuj=UTk5mX+O_{MteMBP`Gh3Jo=1*j7J{CALM!7HTjZ(}T4f~hI9;!b%Op-JzsXG} zmEYuFCoy&>^C(E}EYe~_xVXh9xfTCN- z3k{JPo|4a@)7@u?_PpL}%s+99>?ox=MM0(xmpl?z!gjGoMdIFEnuV7}iHVrRvpnKz z<3T6|Sfao**+{9tSQ~3cKOvS8S4ZqtgMU^2dVk67}w>xcyT4}q7Nj96nsgc zLxNbAP~spVg08^|*Jqzj5Fe0cx-}U$*Fshq4aAWDj3{R|5KsIArT0t~PdP+F8)k;f zpHfB7a3h*>9oJBPSSb!szEX-o`J>asOzI$gBmm!raJ~{SBwhGp!aZ?$)U4V-w|~ zfGEn?~Y6QeW!wzwRgFE;b_J7qzEP|LC?{P;h8q(J_o-(9eP9;(UJpE}7Q?#u_lMI=eg?hmGd75Gl=SiK>QqFpT3V{Uqrvw5LmL|Dx+Pb7<=~{QCY2 z{?$r!$bV~>GJl*Q%XQhiLSy7uL(9XjV2LHWbENUg|?yzOD#do5Uy&6Pc5FXLFXcQtR1#Xosfm?MKad#Nlg>9@PY$8 z_%Hy@YoH{pcMWfk4S6Tzo$b;13Av)ZI4`ea&siORV9!|{zdQVjj-QsP9mInKSM4`U z`gm#q`B66RD27q`qHi#Z&g&?W$hukH5f^hWlkasDy=t8aDV;=~af&D~PCkF02*?4J z5b}mjnCMV`S|>r@NLkuRbk22VI4~Vp4F|7?={ST0Zu>vJyNXU6hTmjtXHg0fe|u+K z7!Gu==^}=Ohn4mkk=Y#@R@!hyuc2WD^QvL(cAj`TOz7b(A!b!sUfL-mip64b35>byHL21C}`NpSZHwRU()SAs(S%3w^duHH^>J1xmyl z9S_-kj>8*cN+VD2Plcs*GDuXC=Q-4#u*R(5sqsl3%d#B zNdoW*@|HfrFTGubFA9@5zB+V8aqcK=Elc55$9F=oEJ}7<6q<(Gm>$T~9Fz!QfsHCf~_hdWp;w2n-a+ z)lTA<Wx{opPbuU1Q7XZZ_yV1P!t$%9R&8`B}z^Id$tu zkt;8R#74@u7m6+h5KjsQ%BK+iT=n7a_KSdQAo+=lAgxZxy%$09gE2xB-}+)P;=iUM zzkjh6_M0lzY)0gKKn9s=PBmk z>4@qcBtdA%RSqa4hFp7@xU+tH7vE}etk8Mbs1LrOEiu;)!X*5gy>gJi=CvpPP{^lU z5us{B9ZkAiToRsw!a_PU1%)MWXbMt-@U;Bb)9Zo>%6>5)Ul z1Ju70L&ehCSqBm}TfRF?e1F~?99)K)1}7QqPb(LfnbDX7ZKdKIU7j zKAma8qqUf>@dmXScOFtC09>mZErG-f!1RxgfI)Urt{EYk^F2F>!MgBA4iOhB9#W{j zYoy4^1h?Z4-yQ`&VCGU{prm~6k=?f`U8d^WQfz;<}(s-+(2=3Xsj!g7w`1PI!UIPrH2NkE9gW%!TSKa^s@M(!UgtUw=Zc#i7k9He$bKZ-OxX{J97_rR%G z=CN~bz{gx#2MoF$1ACVz;#ld87MlPigep7Ad~T%F{+ZCaa4VU~`ujZgo^j$07Np~_ zpfH?@Q_=W7w7UKa+mKRB+R+?rB;T9><*14Lbb@%)-w3>c$S5eKw4=OM*zU{W}D zB*92!DVyKPooF_eyKWVeJdI2}l+r{FnIiHMvrB`K7XU9QX1E^>(1pjQh;iZWCe{={ zcZ0IyZDQnDU_27X*vXou>%VAe8SX&;Q#f@Mz)i0K7Y%6?1P%6~Q*0z{703Om{h@pl z8gNpJS&2A>iHnP@ji(@!;NfcT>MIEI{H>8&=yugYGQfC5<@qz`sU=w=Dq4upEc=h9zaMQrSO)7BHd#cFJ zYGQ`F+Q>`` zOV>Ba-BU%rX5b?fo;yVMvRt~M39E&w9H`zj#^6H}Kx`xd2qgO(!#E@Gbh_Uz7h7mm zptkBoz^NpA?;YYp zo`#z*>9cr{QTQ?&EuvxxRS8I}p>DYo%9avz#@*u6+|MApoD&fcpN=4d5CdI7aQShH z9YG3?0YiM%#E{?VeWnjs7yZo`5JL#JEtBR`rU zW;b=Fqari~_6J$}UsEkP=mB0#gV2LTukY;#?-SeWeA@Nu2SjU{TjoFD=*L*pUWx^p zNi#*A_3XE1iY6KF96if5^TyFy*UYM;QhQL$r8)D_2gMIHlck*dkZAJ{KC^Eh!ralt zzGRkI!faoeaagcvvU5>H20yt|HlJ?P9*aG=uf~*HG2LjJvGLeh0975U1!(m#36JbG z1kjj!jC}UIoOh3r*#LusbEe=12uer>pbEzAK03j=9l7f4HdWu2bMTDoYOq2si*GSn zvbA#3Ek-A*b=_nmUcP&aQJ4k&1J`$&>~?(nvaMERMmVO2PJwBymGP5}_UwFl!DOQl z-q)#-zrq)D>^SXxKKM&N zrc-~C(Bd9{-a>CY;h9=pm8Mq|$(1cUzzc@aV!(p2mkgrWq9F_KeP=3)9sx_HU1iZg z`GWp~fX8ZkWx*Vn{K}$lx?QX!j3q8rxNu1mGUC7uKX)2-2S%y5C?Yjf!2YQs`T?b? zRmE7WgqN#|+6u~FS4}(~h?EKk6~HS|!bkrzq!jf304XKkhLk)I&nk5s4wvM1Z?&$u z*Ij&0s+!29mnm>7)YXR9;a^|z1Tj-aZbJ?LEc2xKQ&N9#_T_>_?|D{_R^R)KJ{zee z#b3J;P?!-=7~RBYb^g_YYQd!)_KGtZ)|Nb$BFX22&?# z%SvvOuyj)OhQi1Ppe+X+71etZ$A$xpdV0L2t**$JsYEKf{j?Iew}TW2Wq-*sCH~F_ zV+9Tv@~P=$?K!N24U@Gc2%emxO;fg$`Zhp&YByhlx3#`1ScvmUE2k`@J%q6UWAP^f z1+tUOsoG||`u0xMDyhmr`eT~b6^RdiZa`mrx>iD2?i)2-YpK-pH(5*N)d8E$+zPF~ zH)xn_0@|u@XF4J}4`#_^6031HW@u?>Rmx258LpRRYRO`!!kgSsa!-XP=F4+658axn z4N|tzpjlcH5>J?=#UofSOH1=R4#M>xprz$>XqNV#C&wB-jRgf=ane)IXp**J#*`G* zOqmV)9?L0x4ywr&Ib1YXE9q}TpMo}2P?q@;=3$JGF>}6#R~j&1 zOXT$9=W8V~R*U9q52KB@=40gGjA?-ug8{3%KzkfHXn}TwlMY#^B_Pd&g|Z)u7Xs5S z^PO6#9cDrOn#Ecg8|DH<=Y+xtMv1i+6!$XUrNt>1DCwX~ ztdVbD&}$E!cpvbA%q>4Cm;um=FayT($>@U>1RF$3%cyX&W6_^tF^Km(rURtHm=sHqWFueu?w~Jm0Y8> zaPrsQ>*acRWxY0pUw@aczPJrq`(S>5ax*Nj?4*gCwee8pi{7FQRwA}5o5H$Qk zs}0q|VP9xN@pk45trdc*htSR4)a{TqHv9r+9UKcVQROXax^zf;8HGOmrPeRt8)#Xe zocu3=Ci8u-9M;yV`gglGIp8$OOZR@QRV=wGNOnP>8w#Vs?BGH%>Tc!ykAOu!yrc=e5W1{pNXK>3mAK z04Uo|BQI!mslyMLzI@910YHKTKWGn_TmWpb;WS5A4jN!t{;0Lbw{1UaooV?6Em=jY zJ$*U$w&QlyQ)fY8kMUHAonRmSQ@b`XRwu5C`aQy6y&nc(_0eD^=2Q3M z+MoE=^@Mic9pBcR&`v4)eKWq*o?}3YIjyBQrNxd&|7EdA|5+o(6Gic7wGBA6b!Z}! zdA`~=w0KqdksAN0#rV$us@)&tYkyN47i=t=0{FV>1b`iNiaB5fz8EAvK~OVT^i?j< zj9~Fp(}FZOQ~#4^kJT^llr@$p9S_u66Pw_mEkp<=E87V17&Nk$2oa_rcC{`_EBDZG zUBouD{N~`S#RN)sE9l?}VgmnOyjh={S@B@ndV-(Au~5ns-SsKm0I~Qb4KPF}r2%a* zL`#(JG7$;0Ii|Q@xwL4SDOBYmO%D)eKwyWBT=o)T1K`;w_1}JCGJIZuPCt%vsp13<$p!rM2jt@0%x%3Onnuk7+Got zeHtS&-igHsU7`lD!iV6OSn*yWMw=zLe0YYjXaPX6p{=~lmK`*5&h4n zj!7Z|k#8k&r0;r?cui3%(kmrJhpfQ<{NH-EAy={l)FR+qaP?TG@;#Iy5)`y;h{x_z z83I439-S(*;vwb#dnb055vkmXb7e8kTc}bw zk&$q>!JM+j_i{NbV_LAu#!c_~>23^sF=GgM`R`Gk7nDoxs8MnWeKuQh05 zrl=MWcQ8|o;`VfCDiS#y*i<~r;g3y4Sq{USi3;WX%?d7P7N2uuvmCC~rqc=PASlbL zQi;pX1l&A}N0lo*GqI%(5WW^|T{UsR0Cdl4U{bijKI z_mN=^9)sY%4{KiWI!Ai1!9uq()VpHi7C2bpbl#tl-UT!NeA@PAX9qD?T=8lnz1`X4 z=}B=PSp7lXotu!Mio=1Z&m3)FEhot99O2D-X|pT_Eb?BkQZtfy|3NTDa33t21$h^L zX65l}a2CuZHW@k$pKm$aNF9=#@yKiyS%*a?vc#N;vP5nTgiGK(A!n1J%U^k^12>B< z`plRtFq0Kn8b>h#57{@JL%sS)@UqAMu?Y-Dpf6|+d(q2OA?<9c@EMXSjWfXkLmJ%7 zKvan0RjwN9D{QS1eh6E^ioF5hJs8m70Ube6uu$PdD=dW<2z$VcR>3up;OCC;ZsBiRzDZ2wR+_SG9`GxTd%63(@8$!IorpWA16 z<3@Pno`y>{98(+~!HvlB7$6zhBq@uZkWzTJ+_c=CS=mtvdd%!qX)u`mhzk@pOy+8j zMq$=-KeaY?^i>&-RtL#4&>dDd5T0)N9TeA2q8%l_vC3afh zvZ1$%x7F6$E{A+uY`vWn{D!gpK$YBiCk!crwU2i5APB(oZIj4dNk#AOK8aa>JBtD} z&4y?P6YhQa*4<~Z$RujTO(N&NV-jD^lCihV;=Jt5|8^GrlW0u`rf?3HQVX>DzfWNn zW*%TwFmar-=)@`P)SB?QX!7J$--|Uw zc_q?P!K{ZN0=uggf#9+s9;;o<3qjiw@f|Yn@9Wf3<^>%ed9QM6Fbww%0;1lXv zn0;|wu`$Np(3ou;u&0fxCx+hbThKkC9hdXKJ)#+h@7^OSB>Hy*Cw2th6qQuo5kOL5 zr}BN9Yu*a-J=je24@!|jtzewkc~QX=GFBZ6At7Vun2+iBz2Y-Z7uMak#Dx&$vC-DF zFksWPNEYfvc1-l`XeCalb~2W$+R0eLSeR^kTM?=>&VlVJy8^HOB}^{yZ2kh~R^W^E zMK%*w+TGoKCEAMy z5hz2GiPKmi3=S{Dy>mv()(utPd!19jkp&k=m!0|eK` zk69O01Z)eR=?0{*zWZ~^3DkL;@jyuest@p*QfiAAT%SYS@ROazOAcP? zTLI1tEU{r}!GKYzuMP*a@U@nh%7Neq*!V=EmKa0Oh`d+;Q6-)NKU&5jt^{ARVf(ij zQ>A}aS}58c#-7j^p6WXoh*?yPPH?YWa!8PiOG5YLzQ=9x*B}c?GoV=^<1F%sh0k(0 zKqER*VKts*32AUEhDxBK!j(WxM^+Njib+My0#$zykwVR(80NfauyOB12mSvj`7u3~PChCOkiO6$k`N616OPu%t_2LSTp$wT z0}Fw%b^F-*Rd;N}CTn7K8@nW_5ER1-L1A)1w35m{F_!WVFHfE>22J1>OZ_K?)qk)v z%Z4Dkk{WZT{!a|+|L_9Cu*$WS=0ZV$Sd_tj*|1sj1Y6kAKfxGBSrdFhU?xy1)P+LQ z{gasr^n5pkp%_bHC`Kv_Q9?K2sbQ%FMZ%>v>l8`i1M@3~zKB}TW-Ji?LIb*qxGVzz z&5cM61F!)TS);9^BOn^|0tCy;O5%0+&9UK=F$$71&oC638EhC0g)j~S$YG22=Do-y zfPdM@l?JoGRvv7osJ2R)1WJ3%xL#{TU?uT*!50vl753Lj>5q$O#h@0Ci^-{|7HWHF zbFkHB4kSSE!JV5$e?BhSa55%?ic4mp0_xLUv~PoCI8qlTlN%p{7q}??21~iC-*oWb zk*IX5yI3BF0?`nww_FZ3535yMdx)B8vQ@mZ`&X{88jmcn8f&GCe?p7_T4W?+HGxaP ziNoI-j{t8&0d4|7;sAsPNt4LiEyYo@FfIeYkkqW;=`Vb-zQ`W=SL@HgN;pdK&yaTMzBO$Li6E6E$E-j6Qu0Jw1qK|07lIS)TE z(zahqqjdwNtiv3QX4iT08@;XHLKbr18=&vC--WpVPsMy?O4vtiH)RU|zeJqC` z^Z0@l#ttG?2y5ln)x7igYuU-s+>aIbg!65=VWI|_-DQ|a_7*goyJt0saFJ>L=^tbFb=ompoP$8(qY+{dg4Cx)ZD~glJKy3RC^iZ+WVKgu z-=M)yqeC}n?$cs264x0i^DGz%sJKK&M~eAjx6duT{)|XcF8P)|BbqDfid?$#tcb6E zV3}WzRj3r?&Cd15owYyCu^(11qXy53l1dbHc}}D^uz(l_2~@rwdWPp_Dl+@0DXxxs zm8ZjEPn_gg2Y=!ihqxoU?K#oNHHWLJ!+TFIg+4FFLnQdl^P;l?!Re(J#6Zl~V=syw zez~8#FYke^YN|O3f}wrBo1?@n1;cqWOH^T<_bS<WY1oF-A1xoTJBpxq`)8eXNM4bz?+hj=VlbNDVkdwuD6I zxv^rZ@|!Q>B@wSHZ&Bq5qIt+Rt}Ikm=Ab6oBEF0p3cwID8l+S(V-VhlIEb|S;J#}A34g_iH%30KY5@!Ed z->FF=LQxN`@%{D|-j$2K*QSVfI81#90yTt>kZ8v!dC^qybqR)B9CTE^I6fXX4PK*3 z?+TV}pL|!;L=ZJiRIGe;pO+5+Lf+!5=JBzdz&OwkK$&*c4l&o7{4# zCv|Kl#J~`L&Jx2AXtN=V%%^U%#a?9vRh}a%glDQ5YKFI9L9=m=$e{5~tlt;rV0n$D z59f#$#cR|ROgTlrhvj(^elP(<-`}9o?}<6wCC^-OKfjNdE80LeFK?~|W53PCw$_%) z%oA0DzW_`n)3-m18l~WkG?%GkYwKZcA8(HED_1M*p5DEHa_5OSE*UneBI)aS7%?BU zo)1{PM5pINkh6un3q(2X@E8;uM+cUQiZpeBaC4UG=fGh4W`RhsuPSz5CQ6d$oCu<% zg~BLE^6)|tuFgM8eHV%{d^eVI77EMA?pzdbYoSP!v85M@HunYqdcb4ukN!IV0dar- zNWMj)och&GI=M(lTXnLrZ5N9K_2L-1yhNmtXSr|{v~k}lq0|1wB2nJK%U=w=K)Z*X zmWb*}nb^xjU1tuo*)7Fdd9`nj)5}-(t}GF?>Btfh<1f2`K6WgIE8hJf)m$p-IdPMd z1}znjI_K@%MBgnERp`&9LS8qOt*W<7q^XC;(4)&REOT+GYq5yeaH*1Sw+&q?U=nnh zh~(zvotM*GDpx$1ylkvoQMNsfd1DJP)bz15C07t~_^K=yPblhFduh`9Agb2TqW94O z#DDg_SinXV2CopYjaDlF48RI-s|_nh_%R10uwQu;TbiYe50%lJAoh94)OuKf>geGW zqIsMJW_DH(z>1git)ZG9ig{YzObkg3wO=R7G3l;&FJm{9w-_-9arEhK{K@!8v{et! zq&GgYCJh}oml|a5z=#7<-d|vT=x)N+&#YuZsiE3HU_2%1QscE1wJbVuV zZ+fZ+Zz=3m25)>Vk`;w}Ju(#xCwLOA zD33oX5m5~#H zi$^RG+W!f_N~P~V5g*4K#st?xDE;XvZZ}=?x&v-l3KoM0EtuZIG1iM;m0- zr#48%p43nAEuS9vRMcl}Oso#)eexzFFfv4U@6daniYmyw|5K5O=AZu*J8wRf+9=8N zM>eA3e44fqdJ_5c%|le9kWc6HpfHqA?oFbqq=|$5CpN`9 zNAw4=*>RIBe&8nIDc+KK0Wb%^_3e+Bp~5cj`K`uUKtK5E=vSLSFhD(QvtTXNH#bA$ zg*z!X8C)NlN^3TQE^9^+Tf~6SxijQEOUh*$P1quq@HE%i3hj?8G<&PaE4;YzP3l{agRV9p9a?c%i~yto#08NcH4!gr6d`_>%+OI0!-zlC3uil zk*>b2D_H(43TGLY>9}7WV=+1)XK;ZQ%j~9OD2`DdZx^kUtMu1)oR+RosU2cql=-s9 z#g)QQpj9b&u{3{2(Mm5X;AbK&;2&CfR;B(d%vcivmEwE~mIa@ptxCN7DxxlG<& zpvf-N)4RmIRw^uPq+$)FB&6EEODxoGGG>Ms#{Jm63)Y4oCs$IY(z)HxG{oPR<1Fg;1s35Zn*9Zi^V_LyoDol_zQ8h*b=RRrhXA8feH!dQL?j7 zIxIW+{$bh4V~2st^6AE5(L5$#i<|FvvgVyXjUN6=^hS~mUy1lifu-`64YJUCNRB#o zX{U8rKsFftQI3c@NiT5K*t;S9#9evbt|Tp#;$BI&PV^*7M{L7{bzimFMt6Tn0Wh(>N3 z)3j)@r-C(*V~&akCBT$Me8KR3e^j(BTuJvF6N!ayj~>H;G@o8LCLXtK2Od0wg>dtj zsK9kf5~SSMA_}+BIv*Dg7UcA;JTBHLNa7p%Esg?!t}`b^Wg`<@>S-*Nq0uKrN9z9_ za%NK2cOvQExg^-}omdRbs3E6>w5u`elxSMD4|u?tF!=$-itM!2MP3ttj3RS^6KMEp z9Bk1ANndq3Eo!L0PN&ySL#-+xQW9N)em;%Gluu!2fWY6TYG*`Qw{6H6M2XXFgt(|` zgfpSyf8QT$n4=|UK-U5$_MQ=yB*)6@=WJNwB@3t)QHk%xNK`%kd+d{2Xvg>BQM{G@ z0eCBuI{zS^kF#zSO2UGtI>?$@(3R(Y5X+$r{NXctBrW?Co;_7eu!5J~hgRqDDS-$`{Yrw;fsefmf&hwj*?sD>!i5@mxMsR6A1Ni()f3-)`zK zr4@a2N%X>u#$LuQvV{6v1~^W>NYgHhk?Mkrd`yd`kaHr28eOrDj*`0SdIhNW3Qf8K zP14JhdqvWIsXv1@%A`kr78UHV!7-^8t^XO6<_7xaXVK&d8whVFU9wrHgTa|u(K-CW zLM46)NPh$tG315wfVg5F>4jfJsRC?33x5Fv`YjssE4uLOBH^ZttHK?v1|Y~4igyc4 z7GtN)x+;=s`tL$&+~G_JCJ>H_U9JLekD=$UT8HB`SH%uxj1L7qrl?o<(#hY1v_=#C zI}U+6sM+sW+*WjXE~_*%q&EEy&LGAedGDi^*PtP}VxMo*HSvfut(YEI7kdl3?rV5M zM5szby6>h~1itg{H^m`EY54XY{Tt<5TBPVTI$9jNK(_OE5FKDUD_9)R8_2;W7(S}V zdlUHNy=LJi)hp96%ml``f2E45zQ1XnWWQ!B$Z0WWaXMn&Ec22r)+`Q4cm{$@ ztXt^R>%i~Bai?A>Hd_kSb;u7aM+q`zwn`~MdPNmsn;<=ujyupUK;Q0;s)QprplrEu3|(T zJ3%d~?mf75pqKMA{+W`NtdJutgliS1Cno)_a98r2sSaR%sDY}1Jh|*JJqDaO3e%e< zU*7A*9Z?`Y3!|OgD``RO7Zn^Q_tLd6y(T(cIb5IYuWOEE?{gy@5Hfrou8%3i0$tsD zTFOod&MfJ%p!qCX!r**{!^MBl47VPq`Q-|0-Fig`RlaxYRg6NG;hYFPn$kGk+xCM`g+DS4Px{R zqdyJ4^3O5)geEW*VA&)Hfz7u9ymA|M1x0y>kr*2_`PRqkxPaK0-0^yC$R=9E>+`_U zKNqjx8-&{`HB0KH)RU8_b4fiJB7~78^(qAhCRLUow8b#l1}0T+JgXks;sXz!Ksdt# zC<_mcl+W8rnznZ2$iQrNih9RFqOX>0Tnf{YlSJ+Z03kzFsX%2+o)?4-lu1SQ0 zzt$Gty_DV!#cV94^Bve@D6Onjnw1V~qCkjs0B2;9sYb)vttx6AB zK^k?gtjBP>hE&GN3}|qMdT>A8s;ocS{eRP-;@47O>=8(Xs^}|$sfJY5uYnNhS50Sf z!8fa#-nvj8M3>Wbd6XJlU5{7yD3;5q5AfngZf7MTg@jrn(xcV&L`>)J)%7Y;?4x?~ zdUAY-`$`iu5m27TR=$^3@3fp$Vj4#b@Z13(Ie`@NqZxj zQ&*3TZ0s?47sDS$?mP&Me7oxEy&)R&rQf6XRTvjftFJd@2$0SExxRkC@*6d8pywjZ z&kgh-1&$qlZ>WFI9u$r@*01Vt&17Obdsf~C^<8M9|Dq(=7|~CmomuA>sX}D;hgYAk z9HLp7dII{rCQ~1TbyL2n&etBNHq|q^>SImyI0!g@ZK^L|3(C`508`aFD@Uh%!RWvs z4&(n1Pt zt(QWj)m!UZ1K{qjHhO&4An7xTt$sn#!?ttmwQOIy-$3mcU8uxJ&Ny!3fXyiVyMT1c z%)&)S_#=RA8cz_|L?FI`9!#`kvTj!94z_gVvz2iWocgVf`II28%U_@8sjM_-X&5+8 zW!)C^0{jbU9R&m-Z+nhOyu<0i1haPZdN2C?w>*Ls0K80-yYaOBp^h z0NdeE#radU3YpN*m-;i%!C|I9^qUwbJ3$fMF7WkjdjPl{!3p$N7k!^kX{TRc zIJ?+hpA&?+e)9pnu5Wi&{V+%}-`wu{WyR*M%gz;Y*X>>2&s~?hJh z5#X-p^wa|k?Huh1#J!L*dh0Qi-pktOt~kv|da0LQ^Wk?um%@MuvtJZYsJypG>+F7B z9rWIZq_R&Qe84ce`+(c10FQbc-k-o(w~Sr@@}P>u3w;M-09SAi8QNQ~Vb#ipS0?t> z%T)SehF?O!2%>^xx5YV@lpbEU*spkAN5^_&Ex@DPw4hku6Mgiy0nj(JkrC

    `8r_ z0+GO*{ZLINZSJSHu*9wn@IwKS+N9oRV>a^u=g( zmBDheZ#`J=-__der^>DUhQDQKbqVedWQCAA;SW9+bcbJLyd6`*8^*VJphzea7Jj4f zAv*Kcst(cnA(%Qu&n*XgA_d6`t1FC4_m9m}Lv^-NFkvX@CmS2m%AtC#N@r(D8Ild< zKg^O4VvoZKi*+l<;V^A@LVt)ZC&D%W#-h*!a)UVk1#@p%@9oqm{WMHJX$vS+2Dxc; zc(}fj^G_V1KUvt8>m&3^Huy-S_}{>@2W1 zsnbY3`}QXJPLI?z=~79W7~1(~fsq-uP2>6eGkcZErNsv|Z@9JIu#EElqKBT<(<$^x zs8_V%MF>+xxiC%>zh^uv-*8M+|I8p3^vR8R{CSeLYv#W$Kf9#u8i8BmalU@f>+7IBLSF80>pd?+@h)sOY)sK>Ig zL*~=7+4_3qtUX4rfZ*{ldM^Z9$LPZm)EkRa|3w-+77e>dUyRj{Bg2O;>0jdQ)p2?? z1io?lFa#A}*2jmPD5rnN3@(v&p^bCYiU#b5^9j;DfCjyyH&h1F zvRCvzVi3j%ccAFL@p=YzepTP445m`!b=b9|&&KO;Ax4+S>(GMcZI82;SLwZZY9iJB z4~~UH=!yU6`$DTj0*hOqe1LX8MU7t5oA;A$9aC{Dym=@K+2l8<{;~}?sLfQ7k}N1o zs|g{A;1z@2;Z<9PRzONOmy#x}v!rrv=B0A2d{cmPgMU-e!(u8ccQ8%bt41NJum!{3 znV?_Fg2QDuunSPpQH&Ov6ATj-kLO*<`u@;3cX*B<^*caQB8z)rN5U zb&!54U4LEgNnH=9u38?>l4PagVqk>!uBC9rfu(%*hTeu^530j_ue_-{6|12YVglR9 zl!-N&GseMT0xj8sl-_(sg=M}hC&a=6<1wMxhyu228FD`Hudl@vbWcAv< zUO|gl8^Qs?^@B^urV!@PGe=O1^E8*pjmy^Nt?od+BY^Uc5iZsF_psIGRH^ z)V@jIkab3tob0%%dWJg3M?Gs>EU^Fq#B zG;@~T(zcKnpY!(Jww=V;`VQ73aGexNkThFE2Yt>41TQM_zNT~ZeokdEEuW{C)6Txb zW%y<+)VHa0Y#s=_d5^#A0&Hf;x=?@9 z_hGL7mkMVZAAF#9p&mpR&t!FVpK= z&neV@naXjc;DF4JMyhkjdzE#nuenX8ZX87uVAAh-;SU5Py^n zo~5T&>AzOa*&3ilQ^7HQ>utj8Z2J`i$+ays@e>?9C(%7Vy+_TbffsN@PfUa1V_wXm zlBgcP?Y8_c*{{fdeJkztS*Py)t9ACJT4@bV?`^5`8k}}7(WW&Rx=VC^4R$N|WM8Y- zXm&|WgIZ@xzV9V)lgR+%dfv88K>Xe)915@zwFs>cQqkpIu~kOKvNSUYX9T#32q_Ob z&>ip1p^0ntvZ1C>a55L;r_!LZmC&9Fgpd9QR}hBkZi_!y`6e`E1h32nJ1Q4jC}_{ zg0%Iu+n`TimAS7!)pG#T{Wk(qIPLp+`ukqA73zL+U|HzE*2$|l{?$Cq+@wE)369>Z zzkoB!q|N%NWdFqQ4$YLPe_|AV#>C`o(T6H|q;A!}iOu9OjQ3)cLsHn#j27Z{d2hT+ zziid-`EQ!0t+(lw3d!10+i)7WL|<%^6Z_XTIkDxpV?kY_uG;~`mwfMR*FRLuDG;e( zLvca*r{hk2tGZ*GFZMIE9Ve?X>%m)sE5`SCStm#7TSSiHGnBYnf6wliP4*UnxUYBP zxR6Ip_vj;;W)yE>Y)$`kM&O9>i!g_TB%v4!wH|+-lJ7FZ2pEq%aeTJlrB&;IZ~C zDb&Pu7TL_&MVd!t59tpBx<(%YGWm(7AJXGRF!N$^1S8g#AD=Y9o&`B;_--B6uc+$$ z9O`Zw6)5W=!$32AWxvr6s@e%3IDK){v5ZlM?Io}piWDkWIS#?WZ$6rITu)G!?xp3& z^%mOqH}Y7S?!(STm2z$^bQbP06nE8unCAi%o)Zl5M!OSwL+1WYIH615WgAcEo%lWW zTV3k%zTOooI0L@LM{r!{e5+UDw(b2^@2G;gmU0SQat&(6P{8GC%lJHJ^tp1h? z#AVW!p}oCJ&eP}L>xYyNe2ae2moZcBfwOv|s!mX7@HstS8R2{Eyq>N?dFhROeUEa- zNaS47lbp!4{AWEmY9chxcBG;BhZKb6tPN`6@KEuUyw3b)LVT zM;&hHZPZ)&H1mf3khXx83qt9=8+tiP`AZMux~u*5PwJMm&FQ~T$x@2Ash8oKN_455 z5l6m1!E5S!Q?DWwlAP?$01&YP3Jb^ld=&V~gQq%){_#;pQ{GJ}1UYe2FB#oD9_fUyjda{Zz{g!@8ySmzj-12W{7_5Q)c6+0TGV$#dMv~I!?Y+hg zXz%V)j21HX`6IHV zVZ^CcG0F6?FxuQ+mZ=-3U_2~eH~Ly-#lT>k(GUeLF^Uv;#4tKZ55f-bz8tD!8s+^< zgu%!+)il~G(hrp4&COxZ_NK9M5*-`8j*Y&G#2b*K>Xw#Xc!-e-BwRhjNLDg^_k|c$ zS<*N=(x^xmYf98ZABP$+jY+3Njpo3LF#TU&+se+U;%QQZQIFmWGp=AcP7XJYC?E<4 zlrRWXPf&zWCyp;NwZ%namir%)E+0T-xV+!e{Sn4J%6Z?!2qVH@omBci5{c^Dl88cu z*;F^mXl=WfK}~S+5@kq$`ouUJ^f;k0wnm}qWsC$CA+(G!3h~^G7^6BXZtagT7|+p-7^9JT?l{cP z8P%a%I55_z+@_D*cjP&iFRub82ir<~E^n+wmkb0rhD$=?@3kGz#2T#am=K5JrM6=S z>}oDkd98{~a5xdP$5q2JY>Wa$dKVG)9N;+K^DN2S~1c zijjj&|JxK}U?85?2_~Ulu)T!Ixv!OqS#0ckJk`MA6MmN_rWsN^xjoG&X>U2eibOC`z}_2D+JZ5czVpnumIsB?B1qXpuAC}VsYH6JD){b+-O9L0<46syY`QY!sZ zS&YC|iYsSaW`BNWc|*!7B^~@gd84he#5bqBF^Oro8WoLl$_ihXibh3MNvHDFAQ5}7 zve651S`{PJANQm>>l>O>%@~pZ;U54Ynr&`{4hb0ycm!7go)vemp~Q5#WP79=DOkB< z(xGH}iRPvo?0|T8x)HC;^?jdiq$|~zDAExlmS}6hDs%j+IsDfC?cL08?O*O@u=d}g zhH--zOtYHSg2}FFv{t`5Mtf>nYvqrc#vjUj`lXgp29?FvHcE&2owUgkmhbhosck%@ zsC&-)=GHOVDgO?z66+atm^7Nx2CfIwpDl_lSt$_~0==4lFtJAdCyn;IH%Sw|SF@TJHpKl)3`_Tw4vVw*QI zW0wEZjU0a^c}x8dE9}JojfcROz~wc7+Y<&myftAnwRc0Kf#=xqziaW;)s)xJh%Yye z%^7loZ!bue6A=4OBcpgliWZHG06jbw_0;?Ok^&07{n0}m#;7rrTvs>fXd@%7SiKE* zW1~TU#}ODgeeYf)mIgI8Rsk4FH!oSf0NsATU*KD%Z z;XQvokJn*YmNNz-7Wz+9BaD%tJZR)L1?kb2b~ZJh#fj6C*QkT%%0($JMcokr95MMHF;qw#W=@1asOLrJSGOp?h1S zJY8&KNF7`hm`>H&8ddF2bN-&j_9eG7o>fX^h9v(tkfzn`jW(Fwp!}G&u5b#wJYf9jk8MR0A2b>}(^5Ln-Us2y0BN;{j8?b@-Qgi?mwOGb>@*33 zniHIw3Q0DY#;N%4Vd|=cC-ud&G*5{KVf``8*|kYSdtq$_HK^ts302i9jB&aq8^~TH>d! zMg}(xuW{7$QEdHR(rb?zuS-u#36B|45wPQ9lGe$7%&2zHoaKJhUOZMjY2VksWut0*bI?9W$wOh&?pSXF=2p?UlTR8sW$bo1 zERiEvfGl!kHCs@+w$l#jXCpob+ZU6+cZx2hw~iTp=PWCi_-^$zf-3=02Tw6ZX$W7M zX8e_aaLg)0XP+CdePWysQzrRFZZlp~FtxvIHx7lqWhoj+*4qR+w8MA|N*6VD8uJyf z`M>%Mr>4oYb{7cdMs#5pVkgt2-A0Y5H>FBTj%u4q0n@TReYM*dT&6w~>|kQzZ(M)( zB-Ine1_I4Y)w+)+W7FxWJ;uX+TOLz=kL@*DDuqnu5f&r+vwa3z)tK}p5LU(gMoDPv zx7rWVEtiJw$C-9Fy|Ev3<4#(!A0$vd9o~->Et7jF;{Z^?ZhD4;e0u+Y(aUcs;j+AB z0rSE)WVv9jxRa z*a#2%76@^{QR6vOoN~-4+c;Ma+evhq-H$lW20?}gQ6|oNirX5YBi6U_>aidg1jZOG zkYn_S9HW+_HOCO&wS{EG-U&yy841FGO(nyQOcte!v44EYBV=ZdM zolEmh8f|aO2QekxJZa3sz|H+m!t<{0jCQvrVE`?A%9x9iQ9}}ae+uXL_vzXxqb$9) zObew-rzOPpI&E}7F{@59fclP~#v#TJQJ&_ZEx1dit*6tSB& zevi4^P2YWw1-6q4zg408e*p0$8<0Q~`FS_x{$Q{s#MvL@K>MLE<3|aFU4Asu@NLwO zI6#7{@}t2v_HX`Z)J48JXMxLi)2Op@J+3^9^GH6aKN&L-%=t;?+rq&C`r#+JF}62VILF=28&CR^9I%rdQlV7<)ke8O zcGIczz;wGQy{5%ayLEC!Ta=1KEQf6?a9YjAE2xG zMi$;iT*TXMnsE`7WiD;Ih^;A?u3iLtWjB?+g!5NEJ%7nyZxK&lHjb6D;4Pg6)|i`G zX;NFEt0lZ)7=%9=8gWHV&%0NQrYPk26}hx-$w*)6pADE`-%UM#F^)oEuE|wnw2s$L zZvg&x(wQ4Fr|}ntcewB2zl@1Wq;;H1N5`?pR7P-ht?##+*h!1~LX8!3&D}o0?Y3%; zQJT_+s#!|eNMEXESE}kX1Ii};0<#QW+2owhx6+gm-(x5fu0F5*%!=DA?7m( zdW4!S{G%Cg>*wlPS{rJ9uO7<*XU~jO@%~Aexm#?|)L^LK&|BeVMY{2T8ciF*%}Vvc zA@7p5lHCwHYTi#S!9X>%QsC?`$kI`CwtyC9FtcDSQ_#>LWs~IOahp+1az&vGlx7o5)C~WzG?qw5;FfoSfH*6Rix{y*8CKxTa zjDnzR;k^oB16M4~jeE0N>D9~q!TQJ8`4m@)Tw z4l)?hL8H{GJT~Av%OoJw0+R5+2&?v!vN5dj7wiJrFT5#Mg&}OO&#n+XWz|q_NFEv<41f=4 zrUSWd;?qUci#*-@y@dhpAZr@4J*ftWejZ}}qeH|ir#Jf~V(f`V{r)x=-!1MHdaY6Q z2(vN-iW4Hts{p_3NRvhXCn6>Ib&4|U;@cZh=3~V|;ms&BH`>AvD|8D%CKae+q4ic)1@jGqXgXFs=%s6vZVC1 zP+kWr+5@ADoW&!xpTj&MfN3i^yaHs@b$V!TtT_-zz6Nn-nR~e#1)r^$x1s4+jEv@QlOq^Mv3Ov(rff-POW;@92W|`H( z9IPW0lsN{fT<*H6oru0d7QNt2k2jOE>^G}k%dySJ+#8(kYpXa=aw9TWGfY{|N=Vwc zRLvU7(u@!B(F2r-^amWQF|L6#@8S<&TD!dO9)x5F7TjRYMY=W#@!Pmi{HRXx(&aih z1|D}}7;d?m2>=~eRyg3mN)|l!inS7aPNRr7Ld04X9 z4OxAIlFcm!vP`l(mosM{WEWKQOH`Kbx2?)XH7 zTyW~=@ZIx@IXwtU#9zK*M!{N}yENz`z*9zxs4nTN6U z&V1P%j3D$C(*sW+A3SNkq9|RcZa-`;U3^{pnVAZ_LCxxKwopJc^c!HNQ}h6{1fI(c zFuhh32g|Itd@HCn(A4o#WmNh#UVM$5p05Pn#tgth7I{ z@NXP1IBJ({HRF)|YBghz{c1I1 ztNn^*tpASAKWCPv10zg9Uyd{fhh?8C?EatM(R-so3B34>*{s+P*Y5UV#ItwFartf^ z20UjrYp}?!-0H_1`_<~lRQuKHM~?l9evCiG{TNhiBPTs?HcS55?zENny#0#2r@y1h zS?Fcb3ua8Q1@wQxoD;SxptcWAS>uxVqIsj(93w}W!~RK?)kfc?%2CCC81(mr`p}QE zO0g|^E&DDt9l6_wvSaR&V+20@eLJl2Jb1SPQpVn;=Sh1HyV{e|3s6zVq zMXFcN+*ZJ?fC7F$P3@oX*UOWwmYd?K9&0HGxwUtz5jPUts8Z+H&^~f$e z&I0sp_NxWx8|+sLSXbGvC}6qu>;$zV?=;zGg)-Jg`YWYOFrNhWA3wpA?E1A6%!YWq zHo+{%TWRVY=`rSGL&((-!Jf5r@^$l(=p#R2vpz02YwtV!3~82^+P`5w z9J%@mZ(E!P*L^w9v9-R{ZdtfllBCSP>zHp46*!B^K`l;;9}X^m*=43q5%ti8+Ut24|Dt+5Bf zb2uKIWp<AH=zN~n8p4r*={2cR|f*0>X_|$4dug*0eM)2)iw675<^UQV#?we=UYLN{R4#fE$ zSbPg+vK}%(@mR^sHI1_;3{jHj+;EC_^c@$TuBlFZN6SnTkIq+(}uk|XNjk7HH z^dJo?m)FtZ5=R=fkOeTot$?1A3}Am@(tnxax~9SdVZpsguXJt2bXT0WoNQtm2wZ@n zyM*chQ43-pukP=;H6i|EDO#Atvj$2Tj1_s)5?4c@uA7~`)zLB)Cs-^3c0p2j5aA~* zBAoslP`FA3SAi9HSy#{565h(>2`|+NekF^b*{z2+2wu#*PBysUF~fo#&Y)m{8FHis zd;dcIWLDPYngzU{u}GfbQoCrXRhZ` zsnMsVP|o<8e+p_&`ISa(G`A_g`kLl}Jp(&&!#11UB7cER5I*E#%yGbl%P03$-|5Y8 z`WQNYk5k2AFgwrTdUcZT#ul@lQvQirHSeicr+U3wPt@yEt9N>@IyGzduGgb?^}6Y` z`lR=+eov3yJ!_`-e4++Dy3I@|(Rc8`-qi;77}m4j;A+Eq4;eh%_vSV;%+MYFpKs4h znCg4}ZvI@Y+OVgGkLX$LACKU~Yi8enUUkwRW@80|+++CD!=CeW7(C*^g6Cm_G4eeI z46k;_biCc!)$8pIu6tUy*FlPd?z?72|MQ#}&UmV=xqhM9!WB(Z zg{ybugZ&2f9zLSSz#*Py{dzq#q*sp-y(vR?#Z%}lvk#rPX(rP6KTUTr!}{T$W(%6B zyBg4>TV~CF-iqR3^X(M4lDT7u=x5!PM$NCAtti{&>VnZ~D2DeQ@%U4{pY!z&an(|N zbHZH7itpNWbErz62fKRG({9&9Dlc4*QvaLgJnC@GjB5W+XT93+VLhu2==VgA0Rsm2 ztTwWD&#J?UnKzmf;Yy|)-4*JKGF$`HT5>)8TL8Nd?)vAjO+0lGcY=^Fv4m@YQp~ua ziKXw1_8pIKMJfM}*TVWJ*Xtp!fT^U0wOuvnKdG*_?rf374b&mc743T>&Gkjlzi!)r za<0z*9QH1hb5*^w5x$z`T}z!F{RW^cWo*T#g?e$N{{P3XylVUhFjP@5LSFM>bQm~;rI|3OG))y2dT?7 z)BNY-mvoQo0(on>E=2qHklTy&VWwLuq}O+Cpw|zWsdsjO(9lRqXy7{kZ)e)qu%YW* zkgroqS8TAaiq}9EEJySJw?&p5G)X^1N(Tznevm@#v zhQy|A^Du1qRPej}I;G$5D%tHC;++Mt4oAitcg{=@AS%e8rmV{vZhqAfAMB6sd%xS^ z!E;x9ukDX}IGJ+qccm$PY5)DMSOh=b?@GzqgBk*BJQGkOXPkx-Y+MwzuCO)y?LyJC zT?%`672oVua@wdj3-gZX;g+Z`IK)jaKj2EvvLo!UQCDkq+TkKJqB0682V7YSp~RI4 z|AYTL;yEF1M?At62=7I>4v{?UHg3I!czc#OJ^$3Of{tl2qA6{B(2r%ePAbG6Hbih5 zJMV4`wY|VOJ|OF%|B^Kv)dm#q&w3BnawZ__RXp3Z+2KpwtYPCC`ImyCO45f-T~S%c zeIp=uac!Q8+>D6q(mD>X#+XZLgpzDT#Cb#B3TUE#X>mIHcQ4Y1;l(a1E3mMl=<~ld ztP=`j2(t_8iFe*0`FHX004Tb9!!oVZ`1^d3mIXF!JiamX$R7$z3hX6)@UAP7Mt5?R z4qk?I!)e_tR|;+K! zFF#9${Kv)^X~sm-}Z)ks)-d?X;(E%G%bsUgY*!v#?Mj~)(+Mog( zNd%5~bHrPV%i(C)%%Xp|b)6A!L)am7z^<6TT`e+VeY23*-kOUh4w_Opyc4=x1=R&$ zbI*&0pQD@%#4kn21lKbNYX-dA$fYQ<$g;6WyAo~(3_UnH<3G>Qib%KP9)#TyGS;z? z{pASjoj~64ip#)v#!hxR8#~$QW+EN0CjR||wDw5yJIDvB-rf~0iNA5v>_Kxlrr_BI z6g&J4nYlvy7eM^Y2*{dSOjbvf+Yx2wLl}^CWkA-g#bk{_*1%fp(xvHsJh~?!>#<_8 zmMl`Mg-0dv7c#xDuV;$MS_4@l0~*{siaI>%ijm`VA)wkDc(&J#Jx+gvz5}bBvE|Mo zZjWm3g87pIT3i{=c5QaprASt5oFwMo6Ogr5F`D+9JtPIHA5YP5% zvMYWEsR3dIKmSlkIytcBM~kU>HuCb$V3!q0jxG%>7wza3(2fy!E;{TVBYnWGaXX#7 z2_Fk)9ED8@C~RCnVRkPLB0Wz;aSdx;q+x+&%|}^Q9?;45?>I8pc#7j*qO8aKARIWj zxdnL(>phLEfzW@KtXqr8nvbmZy60N&0uaS*8P}0D5DY~$a9ROC97ARH??OPuc3d^2 zE==KYG>Mi6Cyi^mI-LeQ>M9xC9%%|l0%Uvy?Eh_~qd!1Agh{z1g|MYtXzqb+== zr#rdgv#Q~xDk94wyc*|bO&rILSV`e5ps7I z#<(4iBMinnA6fz%#p(ORxKkV%cxaD=aYYi8#(Rwz8qwWVHtQV5k~fT^1*||kH#ji9 zBHo`xd_9ExtC3iU3J%RITx9$$Xx8oT9M=TtZ9Ex;??4WP1jPtM*hdCyQ8*m;2UIWv z-|cuVY-PZ^$`SZIj`TJ#tPl9k-wxs3CPM6Ra3Tl_8|*IxB;X9SW*26#(byAbY$TDnSZ%OGHk`W-BX(eTp7@yqUjF>q}Qz? z9nYo~jxyuSEE^f`dA#t0o?_8-ZX{*`qc1{xSby{sj@WhNu~+`X$%Ui!LPHDaxz1ma z-mW7s{Y}J!ZnXMuSGXG$bA_ewkyi&?XiM_QMmvk}o`HD&1vc0&I2-xfSf3p);@O@y z`+EZ7O7i#TtnSoH$#OfI`7``kvaqFrJ#ZqEJ)ibjma_yl!0tc-%6J6dh9m5U@EAf_ zA)a4NDlErtP?szW8)x_!Au|_3k-^?wiyP93D1=AmEW!>5>mgqXLjDC-U{ko&k**WI z#Uo@iunq9?V8FW^|52D<8^0#)CEWgUU!_HSGb@EgqNe7|5Mp{fZJ76i~pWusQWB?*u~r~=Zj9NRrb;&xmhN>C2#hhpcj0p!I6GScuh+ z_mWYF?F2Dxxddkl_2$ZqV4a!EYuEz$#*Y1c;#zJl6&{(6$=?#%528GsQheHazeU}l zz1MZMX@72q%Enzpc_8)SI-)q^DIGggUa);-rQfDJiTY`jVi4-^l9f4vc4^y*QYNw* z<+ha1Z&zI;)Zw?J{TsB;pd4u*E>|R>$LVwkz#f$1MAs2r>TA$Gt*2cEx(i;4ZL7m? zLH!8YhkDv&g41Z%+DYw%0 zm-=47ewtE_^&yly3Np_PbGvdetXE+UQfO5l`ZS(yR$}k$fRiWo}%6+Ko)Nmhl*)H9# zQ_D-;Ra48_!S1EI-=6a;b$ORxT>y#<$bi#>itw3~GN2~RYu}x;X#tY@!$IlamOkpl zrIp}H`vX7ha#aiYQ{d|3DKIs6V9grp^Pp-JUH%1B9SI3)&8GhWaQ(bJ3hFzcY7HcC zA2#DYrl5z@bHez`f0}c8(&7h7{PkK)K3r90{Vw{p?_EE@57u{okzXCDbltV@H+K!IsKY%(zmQu*X;)YuX(b9egvc&@lL$9OQ0zfc#Z%; z2T9x3`lWArt*$4Q1Fz+>7k(e$HC-*4YaUwj2I|?21=G5cuQmB?Q!9#ggd>TgD%^8&i(F4>i$ZY!bDFJk4Y@>cY zWb~JD_j%XrlS4O3N-kY={d(0EG)I^|AfiymeftKv z#M*55oIR@CZe13|&&@~L_okHO@&w9lDdXMy`;MplDdj9mi_)ZAhjL5GIvp{HZ!jM@ zp7PXX^}=PPyi|%xI=@FlFHgVCpj!4M$kGfF_y=lr-F`Ljdi#1qpjT_~dYoHl4tLM5 z=JYH+w;}ff%P6&3tsf3;H(p>cK2ldc5A&{fNqU!c^aHXWJjy%>F z`%j|zG9s?mq|0AGLYp8VSr_X!YDZ$sP5+GhP;DuKTZwfk6D`2?GyW#^>KD1#lzoo& z{OA3gO#7O&ize;e=cgEArx8NO0i#!YSZzAeJ%_rsD+g-;oIuYkh?ML@ zaOF9Lx`ZBgQwrO+-mCh+;@OlkF|F&ar5;P2$Ahpocw=tv@)w}6+${f%;SITP9n_8KqU z-fO&cd#~|&odM){>h_a(7pr+U?Xt}q&#wem_s^kiSOA6r5Ob_MPUc_gy{ zIK;Ys6!jgcYwNlQIN^reipYLnxPN7yuR)%-sMW6>sn4cgysdXX!Tt+de~Sdkk(x-y zzLcMVXPegQ|HHfZ7rK85@3PWu4yabtqLfcOJPy8?dH#1!d8S<2MWSX>iW7V&r37-t zNPY1E=mg0GeU=6hK)s^F53C}~FVP0AmF=IS-KQ=(L)!Ze8VO}7_o1r&g{2>>>h(`Q zy>n96+JEmSBkx)#u6avWP=u~L=Rs6w1~#N$wnRUtQP&EqoCqED&(7A(%4naR6*}h~ zQoF9bh>GlqJU`}L50=lVe2$xF+mAk73fv%VdJ=WdTL|m+I^C;l?IU!n^^Z2-7g_zG zGRlZfc!Bz)TD^I2mCQYaQgW|nQi`s4ic(y3o58e_TIbMi5F{kVQ?Dkdjyl#@x4Njh zts>`jwsq17@J$E)A@|NkfZttQ_8wK^4k>NC{?(ltm8GRFEOnIO+vo?*x zYP2c$&Ew%3Ej{O{z>8)ap*5ke zekHRHojYhqh&_FqT6#8q-v7^)PJQ>ruorsLy8I+#2qSd8z8Ia(ET_QuBj=zx)8j`W zb}__6qiJH7QP;wMBkx-22xsbo;X+G08G`%hQPuUuk0~couRAE)OG4xlIwsL^ETyCx z>i}ZO#?pQO<&#HNdOo8(r3X$tW1n_WE`Kt+U16*-oBlz|Fd++KG!?8 zq<%E*W>34==B;QK%he12{^6tNo_+$i76Wh7zmReXr5Gi7R{2c#oI6%EEMKFp*vQ!8k!|N{dIVaSN{z7@*esx-+@hUj!@R+Mhu`;Ee}>yi3j2fKtHs;%-l-t}U%O85b7;>?uiZ{Z!h;~g_-vsPUn+T~qmoaJa@#J|Q&gw0b`nX?|TUm}T^}cTb ztP>W!p99*l0xsdSTdhl-KYAW~NzLeXU4EZ-eZw^Kn6B_nyHh6A9e<_sP>#Ys`vI&c zbQr*OIT58(e-5q@&Vbd@U&8dj9to`8|7`f*0MDue{~OrdXLZ><=U+@%yA;B?8L~qC zX(g?%weaY=E_H;XgNoAgReOKI*k)Ka^*X)UNxtj2>f&f7!wGW^IKFa@-#fPYNZEU| zi755cz6+&pZvw1EOy3vKT|VanJL2A`Uk(}Tlm>VDUEQ5IhUzpeA2{%efleTJhBX`_8M7{8s`k)av?Z;@ztr-}(X2 ztgY*xkz3E|c-0lw8VIR`U-H!3>#VDPxKU@-1^&bS*Uc(P^n1Fxs#I?o4SI$`WP2u{ zC29_R`d#`ire5dDzGidKUxBakIIH=F- z1|#(meK6eDd+?u6R*iP2r&S(s7NtbR`r=nBj^(tAvvUo9vW;(2moqn&zxQ|-`y%;- zk7Sj$mPM^S^1iF6_cj$#x4ZGT@kqyX-Y4-c0gkL{GVkL33uks6f!TxiJ$aV_L~9)| z^1dhUIvKwg@A4c?pAMG#@2kn1?Ei+fhR*{i8s-GbEd`V3o4jj#a7FE1`c|9U?YnNI zPq-k@a_ZW;YEEe3y`4VM?4|r^)@bv4_eiG@(X7(u{h^UTq)&5BpOB|&c$$;474p1D zpZ2OWXPH1be%~u}YW8SW>zRL0BdS@ixiKd1u2649m5L)xSL@STqmSP>`l0B#^J~scVzldqU1Up*m5QQ_7M40)LXJA2_kf*qfAMF?<9` zL_(jm^hCUINm$*%p9tA^KVGGItl5>V&S(>avuPLM)$Mae+IOLS$6EXU^1eTRtI;0T z+L!RYJ%7(YciUR~cSKxl8oo$}lzM=Bc$a}spnaQK`@_7;KCjh7=tD zt<2-qo_T008uut@i5!pAKeqC7?*gc^ekBsb?)*2z=0HrJV!=6hPWRI_|863ufU8xG z;MP7OQ|IL$n1Y_WF3%W!*fPWO?}j}W-1;_*O!@zWdvVW{FPqc7cI^9*J=Amlb`S3N z!Tq|iep~jezmBU;{kk!Ez1sj6aTJ-CN67f{|F^dpSQo`2*=+qxnkyfVDG9A2Nag?j z9^P&Q?Egm{3Cf;~(i*{C-lMJ_uGRJW4hCLt=hNN(%4)pPZCL4)9SMToi1%y#GUm9a zyPGbjS)Lqtec;B|`lZjU)kTZQGZ%Pc#A@|Ts{u&oVYRxpi4V=|28sG0ETe5>LEssx z^`FkWxF=gs9$fa4U9R1&+ zaY1ESHlh@%JRG8ezYldx)o`Eg*q`M}$Mlo?`{q*K$zPkli3?X%)SE7(f1kfDn z?<*)bN76Q+{DAhYD3iq%+z_QWd>*CfqTMJ(u^(EtBY#VI(eA_(ysy-?oV@z;@H1VZ zllDKB1V$iwV4tqRu5(H?p|^pTG|P1AaveU4a(9vcL-><(d^-(0QNBhgEBk=5ltF9YBCnM!zHr<4^P4OJ=ifDr?4 zO?{9Ol)e)vSEuaKn_A7t9wDe%buNH#xo-ibOz>c4Bf_Zbds5$4O`2((pzd2@Tt2Yk ztm+!9{~V?ZV*j}}ocSH&cVmVxr(+_B;>*aU>-x65Pps9&NvikDk(At=hToC*iTvpa z>J|4hk#Y+ke5^5MUOYE%-1%7Jt!Cf4`DsIg$sG0DD~wasH?K6tjhUC9y5^UkYK-q+ ztL$5_aQ3{R!No&Gc*Esa8uJ_dvFk;?=f-IqnPFgtYQojVas5Hzo2FOfSrPFimR_pP zzuGu{z;@FxOLNc3Bj5M)VzW=HNmm;ist49;wbaBP82b$bMOuVWp4xeo`+gcsm|ugq z{0GL=f!sC|+X;f$$y_T)orygVtE&xuX!vcn$n&D`Q@2RW*zzXL5jqppr+#ScG7#ln zVi##<`c`1OPO*7OVh=TTsWHCaNmI{^{3wtw=FCh>OGVXefu};6~ zT5%SHewaFim8QNr<{D$`{@jjJ-!1qz$b&G+)J4}Ao3w+ZNMk!Qz0h~!$V;|U6R$Ro z?S!sx2YzmQ7Sm&G+wVP1?RFhs3i-urjY;i1aZ)eItU}n}yZH`k#kI!Vc3_%;ofHl` zX6I%c?x=RX4rtR!iXeh|5`WXHBu?EFb}>$OI_NjiV- z+}T4@rkt2txn;vK4=xm0;!pm#I{98>1GVEit&PrXvcw@rD-0fR$^yS=(y_99~nX0^<&E^+$eDZCrW+KR%iX0Z>$?$r!}_inReu| z$+qpVu*~w+!9O-OYbUA0>hr|R9LMycJW$sdtw|l^z;ewZvaC1{irfnK?Xq~2jro4i zp&TY8mMaqB+Brf3%cDcoq_>SpYQhb07HM;{JkAm~_PxxCr&Q}l%sqHg6rsazTmIB? zMI9SnxpA1rv75U^98EiuA4_}D*g*{}Gxl6ROzkuef*>uDB8swXmp!H(vp7_f?={Q; z6OJZU7%M7b+`FU*frL$JZ0Wh6-H#PP~;}ZiGOmcEW z74EX%*7V&}<7Q)`y6Hw^Y&(cuC-DnA;MBRU<;+k|-e^o12-C>nTm*$J1Lnc*Q`Cyr zjg8e-HyQl{SsWy$pZI=}WO)`ldrTFA<0lmh^L&u+<&5X0!Zq6s?A(n~o2AB1=+2y0 zf~m`IGTQxSmU?y^#j%M*B=Mf=)|>d&$0&{>--^;GD!e%HqrEP@*>KyY>G)3O;M++}d<7m3^H( z?*!(UvHCEHJu689le4s+nz7v2cAS@6E^>=PvduiUtdH(H?Qpf==X^QR#~(Gu!)VLP zlPtAjR$%+Z{%XO!#%=>n8hJ5$>T~Y-5@729S4Q1*qdD=S6B#Q+_tup zTa^Sp-=ON7i60&uR(Sol7_ByEJ3}CnFe^gWOS41NPPZ5lYSe>YNm}?}o||rRs6KF+ zm$@Ft!DQ<#=P-5VpONv<4`M%eJcn(|q9{IGJ#mY%Z#%c*Fz`7(cHuf^;2fbIT(h;2 z+W)7Z=@=Sa+)P!5QO%zYVwoDgo(w%`Ev*7&d(Ol5wZ0WhcP`)5_2pZ z=eWZK%2ww+Zge_U!Z$d37?(Wu3(xhA|9(T6Pa2!4dmlGWZ|7O&pN zA}VEb#X_uh=!S`zJ1ErHH~k_=)y_{EdknZqkrhQk7wSxG;57AMtF?*x#*;?7ZO4A# zMy{LqvF})kmy3PbNNH|67@#DwiWs|8SVl)u6_aKOpa7$ppo15TD{&)&7d{NZzkF@RErU=bB^ zjJ(MH_#PGJpH~>0_TxT8dBS^p0is_uEUK8j%b8VN+XGJLFJe;ql{fv`c7M&2=!op&XjDv@cek;Ydh!nA zc+Q}h7{1@!V{x9FouMv#$T)5wL@gqkj_Y8oO)L3SjcnWDRH1DX)AEZVOU+MLQ!#VC z4c(0++i`=qNd4g&P6sQL#8DoiO3((L&yRntoJvc5?-#~;odn-4!tLQ;C#f0b@-uzq z7BbsbDXbm*yA=I|J<5EXhUh=}xg$WfQqi5pt{o4bGY>3mxCtREJ-cyo)%$}xjcJ{z zuraEhpA{IH%(2dC3{}08eu>Vvk`PA=UFJuLm1pUHHPp$!H0E@QG!4x>%#tWE-6#vr zZ7dY5ZPfaA8B;sC?ML`NdFgpXiTjzx85Pa*?lSfp8z*)YrH+GnwXO3S>iN5jq7%d( zE_A>*$)nK&GyW{U#h_QYK?g02f6ZBdGUqt`oMzM2cN>#BOfj~d$j@=n&}hl$8)=1$ zkQ-{kM_Tr{EDr;;UF60IHa4)%ZyeX-UyN60-h*tU7QRA}W3){d1L%B#U(nL?;D@2^ zF~)XmGe~i@@HMdKR#tpbgZ%v-{BT@w?2zTTxfgRHE>J&t0~?P$Lic2uEIKHn_TL2S7fsTKEf1Oizp2A*KRLW|~KlIBgTy^g~Whta{UjggEv{xbX3 zcmNfB{C&n=owUfAzGWx5hb!S(7dK9-dLOyZ*rnsSZY-{Lf~UnQ@=F?vtKL2CH})Qf zpjts#Flv%>qJv8t@d%F&YPPn%w9#6xT@<;4M}&VHc@e(5QvbN$NIDt%JcF%y;Cntk z(N`LCE4p8Lz}T%5WHxpf-_%6P*rTsD=2gAT2aV~S!V9d(4O|PB;chsWHBPB|7d>d~ z(+S{A;)Xu%3a*f6{dZ$`)wqv?{Kp544cc~sQ7B>@a}E~)(brV_A!F-KW?7DpP!fT- z2!8lKjhPiv{*bXz+e)RG4A+)S-sat<# z%xqh1U7Wj?ozs>S?zhziuMiC217cOI%t3|={Fx}>gU6`{mSHx>{*L((%N1^5S!otvRHOWV8;7h6WG1M!AHh2yD zuDcy%d5%{aa8?P1-S~Uz(npLX>v2|WD@1P;xa)B0`;Aq7L@)8|AhpcE3;YZ}@(Q)! z8RK*9JTgrSRCw=4oTDq%3(p#p+m09KA=WlX0z3>ayh=@a&KPWSRES{kkqg|q%=fQW z7d=PFC8jfsVq_Up&$51??taeLq2Kd}5zLGb$3_IBAF92cM}LKRTBLazVrx-HvAMJn zsu|B1{>PXDdVz^%kNqwMQ$dj zn1X${u5pF3o-(#p&8LmUZS=2Wira_qfE!=0jAwCwTszBf(`-B%{6R1Hk=pxN0z?$2 z_Ie~L_bznK5J~%cC1XiU%vNW9kMG zav!56{eUADW$BHLy{0X8?C!=BSq6?{rNl=x57FP}EHZ?mOnZShEnC!NB) zMXmlk`^v5nRuN9vk>~UCA3s&atA^Vl9*$BkXKb_$W@QD+ylZ}O*3cHjyDn;hV|eQ- zy~v~KWLPq!oxSycrh8v~-slVvp_0YmKwvPjwzqLrS-O=czJP?YDl}}ylsxzq`?rgd zoiPwwsLVJ-2JI-c?K>I=s>^RTb{x_7W?U4ug$$D)APW0=!&PVf*qFGU+2bAVjE?$6 zNwB{NjoBR{N8E9oO7>BV{jVC+su1Yv-=k&C$V6`!oMIa%H8LMo z3;tm2I7xmuW6{w3h4Bdzi=<&Bv5$+=3^H`~BaMHGY1lBLP0}xZYLO{P9u+!MI#!HD z$zz-%S5%|@SYuc+JGolEMr-X(5|Y5yLQY$PUQ{%PTBmm%>h;l;$1DmkcdlI8S0Ij|2ujwQHi4$wxdT{X1;} z&3qx<7P%`gjKEDzay0JKcq=Q1SEv8UXm>0(#v>L5iXqAi|CwHpwblK9GS=v%C~G_= zykwkubk?(teQTt~zC_F>nH>zekHebd%|_4lg0wbF=P&pK^I}UAqJ6Rlb_7@A=hg6^ zjV=2z8YyZf_3bb<^A{TGtZ}U^)QZ30T^{fk!{}J3&%*SB$R-a&==Ea5Q#W^7TMnE^ zW=+y!MQn@p38P;N!OaI;NiAe#!dN>BqWDdhwB?I6m3r`~(n zSk$)3B|2t7ycWhulKH<^cfE|V_dO@gZHdMM2T6|qP|mVLD%Iqti^w{V+A>4$kBuE= zSsRUGfRN+>350^fV4HU4|4IGy6=UnRgAOFofbR5D-we~2)Pz?Uz`+DMM1y1&NY2K| z%j%$4%4`p6#g7A9t zy)jTW<)`K8;vo`Q{JhLbZ{V1dp4&)$@T!Gy zZfIw3HG(Qz_R4FcozyPrz}QTzq#Z)%;t8crL#NB9IsPy#_3SZ}L?|4Lj%76)pi z!QhFR`r$ij#b1q++sGCPEiWT+X$7qFUA6n`#z}3GJ{E?LgHC*2q~3e#me-AK+W2RY zN%&1}0SlVB@2j_7H>UTem}lGMAwP(k{6OvX24OL2ER3~_3dH$9*Zf^w^oFs)djDv& z56FjNerqTmMCQtuGcS3e<+kGj-D<}$8x0=%`B`d4f9vozrjPVJ%GoLKAT94dt7bGP zqEFU{oCPA_ovrSB)7Y$Wj{5VP#-?Nbt6589ZdJO_CLUg9*$5>`9}S1$s=MDZb{g}!<{e$#f1>)---skU%nJcC$JislaIDXN`QX*JXq^A$ zQ&yk2@fVuw%~-rJp0Qx|;G#M6hXyk$Lx{r{n`QXg_ApE-nTZH5oB%kyK+Sr`*iv0_ zJ&BF~eutCmIWB@KaXcOwHy#%@YpEGBcaj0*WTeEBp?6UacDo=`A4m8Oq?3JIvM&k1 zacw+ZQ7o24h5*}~ep%i3juD|&67C9!h#cPyVCcooDeATN@k4@ljdeO)9uO{tXugEx zUv6L0oKf`-y=#m^En>__oH0eSh#mLR=5AH*vUiOE@dgXn?Y!fe{a7=D$xYIzX|Bo_1 zAbLt{LTM75ZfIuYlC7^d!)k~!wn!814u}@ASQ1fQ_6_yy2gWqqOQH>u?KqP1vuoz% zYKOlQ;bn1DpW?I~=IOz{o>Fxw%FG;2Zct^46+1?MEc{#Ch zA8GB*1W&TV3t)Fy#RRL>sx*^ksxNsGEfg52(LmzEI`ht7}HrmM9UbV!tvyujXz^(C`* zLvx|HT;tX9)mnRX9Jp<>ZgLU?g+aQkS@*JIZXX zNCFs;OrqK3p5{Si`eIt;8qQyULzv|Y^J2=BnNl3EcnGhsY#E%pST1r+&*YvP(+WRv zpMravhpkM2?8HqrDOgu(fX^rpTfTdVhJR+{s zNhvSHB3~DQjNJ6eW_uw&XE~VUC(NEVxOm>Fv*%?` zHP;>-TzJA@`P+q0H(Oi;+xeH!xt~EHg zIGcUS&}`?m=9+^XoH@MywQS~kkoVWs7uIWSJ$^P0+u))TB|s*=C4fVAeEuQAdqW_s nHv3QVhAYbe6M`51rn-N<)?w?d{Ef?rHp#x7Olv30+V1}WzsK$8 delta 99774 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 r{DL4fTuS@Adxx+}5?b -- GitLab From bdce5427fa9567db654b655c801df5da8252b6aa Mon Sep 17 00:00:00 2001 From: gabriel klawitter Date: Wed, 16 Jan 2019 12:17:57 +0100 Subject: [PATCH 070/349] [CI] Publish rustdoc (#1446) * build rust docs and publish them on s3 * fix yaml anchors * debug i * debug fix * typo * add doc build caching * cache doc artifacts * test caching * more caching, aws tuning * debug i * debug ii * rework caching * send to substrate_service/index.html per default --- .gitlab-ci.yml | 94 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 79 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6b5f331216..bc3b831389 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,7 @@ # .gitlab-ci.yml -# + + + stages: - test - build @@ -19,8 +21,8 @@ variables: cache: key: "${CI_JOB_NAME}" paths: - - ./.cargo/ - + - ${CARGO_HOME} + - ./target .collect_artifacts: &collect_artifacts artifacts: @@ -65,21 +67,26 @@ test:rust:stable: &test -#### stage: build -build:rust:linux:release: &build - stage: build - <<: *collect_artifacts +.build_only: &build_only only: - master - tags - web + + +#### stage: build + +build:rust:linux:release: &build + stage: build + <<: *collect_artifacts + <<: *build_only tags: - linux-docker before_script: - ./scripts/build.sh script: - - time cargo build --release --verbose; + - time cargo build --release --verbose - mkdir -p ./artifacts - mv ./target/release/substrate ./artifacts/. - echo -n "Substrate version = " @@ -90,22 +97,42 @@ build:rust:linux:release: &build +build:rust:doc:release: &build + stage: build + artifacts: + name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc" + when: on_success + expire_in: 7 days + paths: + - ./crate-docs + only: + - master + - tags + - web + - publish-rustdoc + tags: + - linux-docker + script: + - time cargo doc --release --verbose + - cp -R ./target/doc ./crate-docs + - echo "" > ./crate-docs/index.html + + + #### stage: publish -.publish: &publish +.publish_build: &publish_build stage: publish dependencies: - build:rust:linux:release cache: {} - only: - - master - - tags - - web + <<: *build_only + publish:docker:release: - <<: *publish + <<: *publish_build tags: - shell variables: @@ -126,7 +153,7 @@ publish:docker:release: publish:s3:release: - <<: *publish + <<: *publish_build image: parity/awscli:latest variables: GIT_STRATEGY: none @@ -141,3 +168,40 @@ publish:s3:release: +publish:s3:doc: + stage: publish + dependencies: + - build:rust:doc:release + cache: {} + only: + - master + - tags + - web + - publish-rustdoc + variables: + GIT_STRATEGY: none + BUCKET: "releases.parity.io" + PREFIX: "substrate-rustdoc" + before_script: + - mkdir -p ${HOME}/.aws + - | + cat > ${HOME}/.aws/config < Date: Wed, 16 Jan 2019 15:57:19 +0100 Subject: [PATCH 071/349] Split Indices module from Balances (#1404) * Indices module * Remove indices stuff from balances * Rejob node, move Lookup into system. * Fix up some modules. * Fix democracy tests * Fix staking tests * Fix more tests * Final test fixes * Bump runtime versions * Assets uses compact dispatchers * Contracts module uses indexed addressing * Democracy has more compact encoding * Example now demonstrates compact eencoding * Sudo uses indexed address * Upgrade key also uses indexed lookups * Assets more compact types. * Fix test * Rebuild runtime, whitespace * Remove TOODs * Remove TODOs * Add a couple of tests back to balances. * Update lib.rs * Update lib.rs --- Cargo.lock | 28 +++ Cargo.toml | 21 +- core/executor/src/native_executor.rs | 2 +- core/sr-primitives/src/traits.rs | 29 ++- core/test-runtime/wasm/Cargo.lock | 8 +- .../substrate_test_runtime.compact.wasm | Bin 46029 -> 46029 bytes node/cli/src/chain_spec.rs | 10 +- node/executor/Cargo.toml | 1 + node/executor/src/lib.rs | 46 ++-- node/runtime/Cargo.toml | 10 +- node/runtime/src/lib.rs | 26 +- node/runtime/wasm/Cargo.lock | 29 ++- .../release/node_runtime.compact.wasm | Bin 791516 -> 805748 bytes srml/assets/src/lib.rs | 63 +++-- srml/aura/src/mock.rs | 3 +- srml/balances/src/lib.rs | 221 ++--------------- srml/balances/src/mock.rs | 6 +- srml/balances/src/tests.rs | 219 ++++------------- srml/consensus/src/mock.rs | 3 +- srml/contract/src/lib.rs | 5 +- srml/contract/src/tests.rs | 14 +- srml/council/src/lib.rs | 6 +- srml/council/src/motions.rs | 22 +- srml/council/src/seats.rs | 124 +++++----- srml/council/src/voting.rs | 2 +- srml/democracy/src/lib.rs | 14 +- srml/example/src/lib.rs | 10 +- srml/executive/Cargo.toml | 1 + srml/executive/src/lib.rs | 16 +- srml/grandpa/src/mock.rs | 3 +- srml/indices/Cargo.toml | 37 +++ srml/{balances => indices}/src/address.rs | 0 srml/indices/src/lib.rs | 222 ++++++++++++++++++ srml/indices/src/mock.rs | 102 ++++++++ srml/indices/src/tests.rs | 80 +++++++ srml/session/src/lib.rs | 3 +- srml/staking/src/lib.rs | 14 +- srml/staking/src/mock.rs | 7 +- srml/staking/src/tests.rs | 22 +- srml/sudo/src/lib.rs | 4 +- srml/system/src/lib.rs | 34 ++- srml/timestamp/src/lib.rs | 3 +- srml/treasury/src/lib.rs | 32 +-- srml/upgrade-key/src/lib.rs | 4 +- 44 files changed, 897 insertions(+), 609 deletions(-) create mode 100644 srml/indices/Cargo.toml rename srml/{balances => indices}/src/address.rs (100%) create mode 100644 srml/indices/src/lib.rs create mode 100644 srml/indices/src/mock.rs create mode 100644 srml/indices/src/tests.rs diff --git a/Cargo.lock b/Cargo.lock index ecea328f3c..d61a4f1235 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1752,6 +1752,7 @@ dependencies = [ "srml-consensus 0.1.0", "srml-contract 0.1.0", "srml-grandpa 0.1.0", + "srml-indices 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", "srml-support 0.1.0", @@ -1805,6 +1806,7 @@ dependencies = [ "srml-democracy 0.1.0", "srml-executive 0.1.0", "srml-grandpa 0.1.0", + "srml-indices 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", "srml-sudo 0.1.0", @@ -2344,6 +2346,11 @@ dependencies = [ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ref_thread_local" +version = "0.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "regex" version = "0.2.11" @@ -2871,6 +2878,7 @@ dependencies = [ "sr-primitives 0.1.0", "sr-std 0.1.0", "srml-balances 0.1.0", + "srml-indices 0.1.0", "srml-support 0.1.0", "srml-system 0.1.0", "substrate-primitives 0.1.0", @@ -2895,6 +2903,25 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-indices" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", + "ref_thread_local 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-support 0.1.0", + "srml-system 0.1.0", + "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-metadata" version = "0.1.0" @@ -4693,6 +4720,7 @@ dependencies = [ "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" +"checksum ref_thread_local 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d813022b2e00774a48eaf43caaa3c20b45f040ba8cbf398e2e8911a06668dbe6" "checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" "checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" diff --git a/Cargo.toml b/Cargo.toml index 2cff897a07..d67f32ed3c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,10 +33,20 @@ members = [ "core/primitives", "core/rpc", "core/rpc-servers", + "core/serializer", + "core/service", + "core/service/test", + "core/sr-api-macros", "core/sr-io", + "core/sr-primitives", "core/sr-sandbox", "core/sr-std", "core/sr-version", + "core/state-machine", + "core/test-runtime", + "core/telemetry", + "core/trie", + "core/keystore", "core/transaction-pool", "core/transaction-pool/graph", "srml/support", @@ -53,8 +63,8 @@ members = [ "srml/example", "srml/executive", "srml/grandpa", + "srml/indices", "srml/metadata", - "core/sr-primitives", "srml/session", "srml/staking", "srml/sudo", @@ -62,15 +72,6 @@ members = [ "srml/timestamp", "srml/treasury", "srml/upgrade-key", - "core/serializer", - "core/service", - "core/service/test", - "core/sr-api-macros", - "core/state-machine", - "core/test-runtime", - "core/telemetry", - "core/trie", - "core/keystore", "node/cli", "node/executor", "node/primitives", diff --git a/core/executor/src/native_executor.rs b/core/executor/src/native_executor.rs index 09606bc904..b9a7187d4c 100644 --- a/core/executor/src/native_executor.rs +++ b/core/executor/src/native_executor.rs @@ -28,7 +28,7 @@ use primitives::Blake2Hasher; use primitives::storage::well_known_keys; /// Default num of pages for the heap -const DEFAULT_HEAP_PAGES :u64 = 1024; +const DEFAULT_HEAP_PAGES: u64 = 1024; // For the internal Runtime Cache: // Is it compatible enough to run this natively or do we need to fall back on the WasmModule diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index ac15df0881..05f4e8122b 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -17,7 +17,7 @@ //! Primitives for the runtime modules. use rstd::prelude::*; -use rstd::{self, result}; +use rstd::{self, result, marker::PhantomData}; use runtime_io; #[cfg(feature = "std")] use std::fmt::{Debug, Display}; #[cfg(feature = "std")] use serde::{Serialize, de::DeserializeOwned}; @@ -54,7 +54,7 @@ pub trait Verify { /// Some sort of check on the origin is performed by this object. pub trait EnsureOrigin { type Success; - fn ensure_origin(o: OuterOrigin) -> Result; + fn ensure_origin(o: OuterOrigin) -> result::Result; } /// Means of changing one type into another in a manner dependent on the source type. @@ -67,6 +67,31 @@ pub trait Lookup { fn lookup(&self, s: Self::Source) -> result::Result; } +/// Means of changing one type into another in a manner dependent on the source type. +/// This variant is different to `Lookup` in that it doesn't (can cannot) require any +/// context. +pub trait StaticLookup { + /// Type to lookup from. + type Source: Codec + Clone + PartialEq + MaybeDebug; + /// Type to lookup into. + type Target; + /// Attempt a lookup. + fn lookup(s: Self::Source) -> result::Result; +} + +#[derive(Default)] +pub struct IdentityLookup(PhantomData); +impl StaticLookup for IdentityLookup { + type Source = T; + type Target = T; + fn lookup(x: T) -> result::Result { Ok(x) } +} +impl Lookup for IdentityLookup { + type Source = T; + type Target = T; + fn lookup(&self, x: T) -> result::Result { Ok(x) } +} + /// Get the "current" block number. pub trait CurrentHeight { /// The type of the block number. diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index cb033b3aae..f5d3724241 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -1085,7 +1085,7 @@ dependencies = [ "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1118,7 +1118,7 @@ dependencies = [ "sr-std 0.1.0", "twox-hash 1.1.2 (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)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1487,7 +1487,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasmi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1696,7 +1696,7 @@ dependencies = [ "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 wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 5e5f1f72c994f2463583f4bdb037b6019da949c5..6fc6c1fbd0f5d3a63b525e1d2080d8fe5d379bd5 100644 GIT binary patch delta 2362 zcmZWpeQXuS5x;%!`QzCim{=SahUE6y4I(qi(P}0y!mPL<|dCA20_eTd) z^*PaC;ZI4rOes`TYA!8OLC6aSEk0b}+g_Ir@&HX4zN~6z;mgE)1 z?zw83#+X*~Xj!zZ;&p9)Qlu>EsDCPj zcYWOS12P)zXZ1PI)AmqQCsrpGUpa75>26Y#7DZ8$*~hvu!SR9ZYHoLy^kuKWLHhvt z8!VPPaX%ni3Su5g_Hlyz{~+th75J}QL1*PCR7rL;TGy=Rl5*HvQ3`LGTcW?VT_bZI z|K3FHGfJWjFH4|+kX)5XAh9{!OA|^JQFEuIRhe8grlyPv8mFb) z_DoVmRVA=%qnRe%ctX0fYV^*=Bl)Bt+Wz3?BpH2r`+RucSqSSP2PQkN+%}}0pU)`& zDxY`~tK#%dr7$~NjIO#P2{HLH$>V3laaFqKW|Z7$0~L zrE0WHCaEG3@4*#kFwnkqmVN6@`z7?lKguot&YSjk(SI?@Q<)I~R~lCXR!}m_eih}^ zZTrBjfE%AbxMhz^j03J=qDI7pxm1~hSc{0&DX$_HA^sMz9Pv|RAGa!QiHf)uu^2HA zSNy|tNaichl}**Y2iH=i#O=@7xu@TgM0C z{^vXY-@F7qdA>4z%Nxp0oPocbSPo-DtD$Wu1zkfbOq{5KCx-9?phROs`$*iPsObfh z%=`SOxd7ToH9UKABh^fUX|CsaZs2IT<-(1VHB@M!#eH3H;c=mf0N5#;+IAo;O1noayE>ChvmF*_^VhU)*<-h;9a~}Va0OgEm4^FIQ7VM1Sv=rQ=<1qd zOVCblpu%L#_CjeePj~?@gX^bji==INe&ARR*K}KYW;q-_y{^QSLJvI_GTjb&5Eu)- z-U{o_l){QL%_T-)Yldd|k_+ycI z&4cjl%3^67Iws{l3oOSB7CuWL`_ck<`|M8Y_@?GcjCC+8b1k^{94lo)_jHXJfzYJO zWU!dEF0F%~4S#|9T=^d=BAjcm$&(Z8Y%k zZ7oA+o?&z5dGOgtD;1$-SsvF-W(7!u!Rqtf#bMl3lQ|)G8Q$bBTQ}9V_s-X}gsvR~ zp@Rb@4OjZIsm{ZhZf@>%dbWAr*w)i|Q^az8A(%8B;kp|4O(vqdF8qiT*`^*!%P@o^ zy)X;{4(AgMz+T)#rDO0=_p$HX#m9D|S6;kCuoN>eEFC)$xQ^!;(czc=OsMZ$w(m%$ zb63~~lklyVPtLP&KAGin&(?HlhtM$ILLJ9tn$&IEuq-1KHhgouiduoMd!ZvWh9fF0 z8%D-!sqLDcrX$}FgH6|g_s0#Y84ed=h=VK~Q`iiuqZ;bDmW9vb+Ge0xu4lpK=xe2p U?}mY=>r&P6uhOXLjha>WKgbJ%d;kCd delta 2352 zcmZuxeN0x@8NcW9^6>(%9za0Q*(;%dB680?_Y-L4T>={0v|2QsPR7pt5|{{8+-TOx zTpOFk)sH@E*Tw1zRzYn`x$GlLv$&0QAF;-5vDp^0nI^@|ImOQW@A9}qnK zXL)T5E0>$OWq3#z;Yy)Xb~=X^&N`>ixv%POf|N!bwcknLGk5C0PbQ*Q)Y?o^0td>9 zqpQZSykhF`WvRPfk{TsR$w=?-#t^3lcPUxjY0{sbf+O}}@;6xF^x}TlY0Qn8Na=49 zB>xAemQ2BaoON_Tj68*;C!(hslq~qM@m%!R=DQ^S#cyAh(g{VTMd_ELKYf0yOpZtO zEvpH+0oz+QBd1HPxdh=y>o>||66B2xcYWhEG-W<6jTquggU5GA8ECCSbB zjEn*TS)Y=T66sd5a7!!j-8Q2>zq>}3DhQfprS+)Zi;2_G-Sd|$6p>AlH%v{%BQ81hcGKnS4(;6g<>@2j>=>Ljs{zi z_*Bq_O4QK#ON=|d>xl$r@nl~WW(y6StKgN+x@7v_2Qd&$Pei|eZU(c2t9#$a<3s)1 z(D#%6MC^Ne-&#@}m3{RFDlxmo_KZCzj)W>csQ7mz=D|{qd7E zcys4TCHe8eLzBNfdhO+ZL`P3@xxF=$N;@P;n!%NcD@Uf%V~F#1natVsY>HM%`URfL zi0>d4Bi_oGJO3E<6zac1T!wfrK_v&2*ZE)vN|k7t$)Hjb;$~cN1Pkpo3+(Op?N`tb zKamIiJMY_Xp#KV#XCos5t|Tsw85AwBPobQ6XdirV;okoqJg~a~dPA;z`bhBssEL%jrXGqQ>wp4VGYk1ICci}`yL?QuN(t9a?Mly@h7YxcLd zvn!0QeQ%l+boTZH^*v&b*VS9UC+O?l3s+Aagtj+2|L@64xcx?X-hw-jI{g;xI8y=R zryqw;Pxrw7Gc_=MdP6jQrin!Qn`-z(^Tf9!|m+hAB0D%QJ1&4@}MTJrM#syQ$D)exO^SjxVT|%S+mu zVESw^+&pU)ILzUOs%o003E>N^6po#(E>d+Se9Ja%kB7|j%%xwRzws!(R9wUZ(-FGG zbw{|KYWrnl1b%n%5xDr)fkGC9z8?zRrtecjc32ezD7iyhB(15I-R(^U=MaaX8KHLKufBcG$p zuwB)2F-gM;x$eUU=PN0u9;yc8zH4K-Jq_-if27d$xWh%@sy^qc;RGw!!1PF2QA0zg zt=Y_Q^$?q&shV%Xvm;w+AOsS3Y**Np@C**`k5o{LTaFP1_*59^p>M(6k!tGsoH?!$ z3Jt4k*$zB9T3x_YhnudeF*V>ibAoE<8Cge#!$Qwxj^TPN@I4zYjW$!;bGYYYOwG0o zEwJFT(I%=}*b9~GUf|nyXt}WALU*BWI*#o#hiQ)PI*zyYsoApKxKPz-saB}EjQQxS zsg_y4%In<|G&J;y-Cf>Sx_0lpFJiiu8+tf8IMk4@rSH(kwgE$nCXgSW2`s&l4lo-3Fs42K0~bnM+f6N)CBQC%}N%h5w! zz}Md!T8xveF#{XN)gTZ7tQl{l*aKI^mIxEuY6}g%HeNw-3IijsJnmb<^bG?>$E&Gk z3htY#W*}vzTMpbD*Qtr4Y-+a4@N+PkZ9!#JMOkR60-w=5p$eQ!*dBeU*o~WrF1n(r M%&AjZ9b>Eh3x7?A(*OVf diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index ebf35a7491..78e6d92341 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; + SudoConfig, ContractConfig, GrandpaConfig, IndicesConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; @@ -68,7 +68,9 @@ fn staging_testnet_config_genesis() -> GenesisConfig { existential_deposit: 1 * DOLLARS, transfer_fee: 1 * CENTS, creation_fee: 1 * CENTS, - reclaim_rebate: 1 * CENTS, + }), + indices: Some(IndicesConfig { + ids: endowed_accounts.clone(), }), session: Some(SessionConfig { validators: initial_authorities.iter().cloned().map(Into::into).collect(), @@ -184,13 +186,15 @@ pub fn testnet_genesis( authorities: initial_authorities.clone(), }), system: None, + indices: Some(IndicesConfig { + ids: endowed_accounts.iter().map(|x| x.0.into()).collect(), + }), balances: Some(BalancesConfig { transaction_base_fee: 1, transaction_byte_fee: 0, existential_deposit: 500, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, balances: endowed_accounts.iter().map(|&k| (k.into(), (1 << 60))).collect(), }), session: Some(SessionConfig { diff --git a/node/executor/Cargo.toml b/node/executor/Cargo.toml index 35e1d87200..0f53831e73 100644 --- a/node/executor/Cargo.toml +++ b/node/executor/Cargo.toml @@ -29,6 +29,7 @@ srml-timestamp = { path = "../../srml/timestamp" } srml-treasury = { path = "../../srml/treasury" } srml-contract = { path = "../../srml/contract" } srml-grandpa = { path = "../../srml/grandpa" } +srml-indices = { path = "../../srml/indices" } wabt = "~0.7.4" [features] diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index b8d459689b..15499ba31f 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -37,6 +37,7 @@ extern crate node_runtime; #[cfg(test)] extern crate srml_treasury as treasury; #[cfg(test)] extern crate srml_contract as contract; #[cfg(test)] extern crate srml_grandpa as grandpa; +#[cfg(test)] extern crate srml_indices as indices; #[cfg(test)] extern crate node_primitives; #[cfg(test)] extern crate parity_codec as codec; #[cfg(test)] extern crate sr_io as runtime_io; @@ -62,12 +63,12 @@ mod tests { use node_primitives::{Hash, BlockNumber, AccountId}; use runtime_primitives::traits::{Header as HeaderT, Digest as DigestT}; use runtime_primitives::{generic, generic::Era, ApplyOutcome, ApplyError, ApplyResult, Perbill}; - use {balances, staking, session, system, consensus, timestamp, treasury, contract}; + use {balances, indices, staking, session, system, consensus, timestamp, treasury, contract}; use contract::ContractAddressFor; use system::{EventRecord, Phase}; use node_runtime::{Header, Block, UncheckedExtrinsic, CheckedExtrinsic, Call, Runtime, Balances, BuildStorage, GenesisConfig, BalancesConfig, SessionConfig, StakingConfig, System, - SystemConfig, GrandpaConfig, Event, Log}; + SystemConfig, GrandpaConfig, IndicesConfig, Event, Log}; use wabt; const BLOATY_CODE: &[u8] = include_bytes!("../../runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.wasm"); @@ -94,7 +95,7 @@ mod tests { let pair = Pair::from(Keyring::from_public(Public::from_raw(signed.clone().into())).unwrap()); let signature = pair.sign(&payload.encode()).into(); UncheckedExtrinsic { - signature: Some((balances::address::Address::Id(signed), signature, payload.0, era)), + signature: Some((indices::address::Address::Id(signed), signature, payload.0, era)), function: payload.1, } } @@ -130,7 +131,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); @@ -151,7 +152,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); @@ -172,7 +173,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); @@ -197,7 +198,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); @@ -224,6 +225,9 @@ mod tests { }) } else { None }, ..Default::default() }), + indices: Some(IndicesConfig { + ids: vec![alice(), charlie()], + }), balances: Some(BalancesConfig { balances: vec![ (alice(), 111), @@ -234,7 +238,6 @@ mod tests { existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, }), session: Some(SessionConfig { session_length: 2, @@ -312,13 +315,13 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("22e7fc466d555b9dce285425081d89751b2063243684979df3840b3ac7e8ecdc").into() + hex!("e2dc1ed62a3878e084c49baef3eed4bc462caaa1ee9db0763eaa8d39d1affc7e").into() } else { - hex!("7395363e53e682984f817fb1d5a862c5ce8b817375c06270d7a39be7097ad953").into() + hex!("7dad66de05ab6391ece9db092288cb39ba723f7f5d0b69b507b753fc92c98b8e").into() }, if support_changes_trie { vec![changes_trie_log( - hex!("cda28e5c630db8eb0e4309b58ce504597c6cbb59bda43fd65e96bb2be73a4586").into(), + hex!("f254b62df0bfef049e010a7a0d6f176d73cc5d9710fa945b4e48f519c8d3a291").into(), )] } else { vec![] @@ -340,7 +343,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("66b9625c9c824de867815215528fe43014d50af7fb95c8da120910c220a46f6b").into(), + hex!("f085a4077d071d3334f7553bcc3f10d97fd612e25c6df5c8f94151bbe557e24a").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -369,7 +372,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("66dfdf3a0ef93ec49ec36c0a65fe328d085a865c2382397b2cd6468e391f2f51").into(), + hex!("1d47422645f5fa3d79cff9ab5cd69ee62919c909860f063bdaf18eda834baa05").into(), vec![], vec![ CheckedExtrinsic { @@ -400,7 +403,14 @@ mod tests { }, EventRecord { phase: Phase::ApplyExtrinsic(1), - event: Event::balances(balances::RawEvent::NewAccount(bob(), 2, balances::NewAccountOutcome::NoHint)) + event: Event::indices(indices::RawEvent::NewAccountIndex(bob(), 2)) + }, + EventRecord { + phase: Phase::ApplyExtrinsic(1), + event: Event::balances(balances::RawEvent::NewAccount( + hex!["d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9"].into(), + 69 + )) }, EventRecord { phase: Phase::ApplyExtrinsic(1), @@ -659,7 +669,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("8197608e90fff1f7d92b35381169242d081779b1718c910689f2589a8ac09b44").into(), + hex!("c442a475a16805d20c326f1134fe5a9656511ed7e1a7f0c7dae2dfc8612e418b").into(), vec![], vec![ CheckedExtrinsic { @@ -675,7 +685,7 @@ mod tests { CheckedExtrinsic { signed: Some((charlie(), 1)), function: Call::Contract( - contract::Call::call::(addr, 10.into(), 10_000.into(), vec![0x00, 0x01, 0x02, 0x03]) + contract::Call::call::(indices::address::Address::Id(addr), 10.into(), 10_000.into(), vec![0x00, 0x01, 0x02, 0x03]) ), }, ] @@ -741,7 +751,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); @@ -763,7 +773,7 @@ mod tests { twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(>::key()).to_vec() => vec![0u8; 16], - twox_128(>::key()).to_vec() => vec![0u8; 16], + twox_128(>::key()).to_vec() => vec![0u8; 16], twox_128(&>::key_for(0)).to_vec() => vec![0u8; 32] ]); diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index a400609f83..2385a8e0ec 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -11,6 +11,8 @@ parity-codec = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } substrate-client = { path = "../../core/client", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } +sr-primitives = { path = "../../core/sr-primitives", default-features = false } +sr-version = { path = "../../core/sr-version", default-features = false } srml-support = { path = "../../srml/support", default-features = false } srml-aura = { path = "../../srml/aura", default-features = false } srml-balances = { path = "../../srml/balances", default-features = false } @@ -19,7 +21,8 @@ srml-contract = { path = "../../srml/contract", default-features = false } srml-council = { path = "../../srml/council", default-features = false } srml-democracy = { path = "../../srml/democracy", default-features = false } srml-executive = { path = "../../srml/executive", default-features = false } -sr-primitives = { path = "../../core/sr-primitives", default-features = false } +srml-grandpa = { path = "../../srml/grandpa", default-features = false } +srml-indices = { path = "../../srml/indices", default-features = false } srml-session = { path = "../../srml/session", default-features = false } srml-staking = { path = "../../srml/staking", default-features = false } srml-system = { path = "../../srml/system", default-features = false } @@ -27,8 +30,6 @@ srml-timestamp = { path = "../../srml/timestamp", default-features = false } srml-treasury = { path = "../../srml/treasury", default-features = false } srml-sudo = { path = "../../srml/sudo", default-features = false } srml-upgrade-key = { path = "../../srml/upgrade-key", default-features = false } -srml-grandpa = { path = "../../srml/grandpa", default-features = false } -sr-version = { path = "../../core/sr-version", default-features = false } node-primitives = { path = "../primitives", default-features = false } substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives", default-features = false } rustc-hex = { version = "1.0", optional = true } @@ -42,6 +43,7 @@ std = [ "parity-codec/std", "substrate-primitives/std", "sr-std/std", + "sr-primitives/std", "srml-support/std", "srml-balances/std", "srml-consensus/std", @@ -50,7 +52,7 @@ std = [ "srml-democracy/std", "srml-executive/std", "srml-grandpa/std", - "sr-primitives/std", + "srml-indices/std", "srml-session/std", "srml-staking/std", "srml-system/std", diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 3567edbbf6..ad6595cbd5 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -45,6 +45,7 @@ extern crate srml_council as council; extern crate srml_democracy as democracy; extern crate srml_executive as executive; extern crate srml_grandpa as grandpa; +extern crate srml_indices as indices; extern crate srml_session as session; extern crate srml_staking as staking; extern crate srml_sudo as sudo; @@ -69,7 +70,8 @@ use runtime_primitives::{ApplyResult, CheckInherentError, BasicInherentData}; use runtime_primitives::transaction_validity::TransactionValidity; use runtime_primitives::generic; use runtime_primitives::traits::{ - Convert, BlakeTwo256, Block as BlockT, DigestFor, NumberFor, ProvideInherent + Convert, BlakeTwo256, Block as BlockT, DigestFor, NumberFor, ProvideInherent, + StaticLookup }; use version::RuntimeVersion; use council::{motions as council_motions, voting as council_voting}; @@ -96,8 +98,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("node"), impl_name: create_runtime_str!("substrate-node"), authoring_version: 10, - spec_version: 15, - impl_version: 15, + spec_version: 16, + impl_version: 16, apis: RUNTIME_API_VERSIONS, }; @@ -118,6 +120,7 @@ impl system::Trait for Runtime { type Hashing = BlakeTwo256; type Digest = generic::Digest; type AccountId = AccountId; + type Lookup = Indices; type Header = generic::Header; type Event = Event; type Log = Log; @@ -127,10 +130,17 @@ impl aura::Trait for Runtime { type HandleReport = aura::StakingSlasher; } +impl indices::Trait for Runtime { + type AccountIndex = AccountIndex; + type IsDeadAccount = Balances; + type ResolveHint = indices::SimpleResolveHint; + type Event = Event; +} + impl balances::Trait for Runtime { type Balance = Balance; - type AccountIndex = AccountIndex; type OnFreeBalanceZero = ((Staking, Contract), Democracy); + type OnNewAccount = Indices; type EnsureAccountLiquid = (Staking, Democracy); type Event = Event; } @@ -222,6 +232,7 @@ construct_runtime!( Aura: aura::{Module}, Timestamp: timestamp::{Module, Call, Storage, Config, Inherent}, Consensus: consensus::{Module, Call, Storage, Config, Log(AuthoritiesChange), Inherent}, + Indices: indices, Balances: balances, Session: session, Staking: staking, @@ -238,10 +249,7 @@ construct_runtime!( ); /// The address format for describing accounts. -pub use balances::address::Address as RawAddress; - -/// The address format for describing accounts. -pub type Address = balances::Address; +pub type Address = ::Source; /// Block header type as expected by this runtime. pub type Header = generic::Header; /// Block type as expected by this runtime. @@ -255,7 +263,7 @@ pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; /// Executive: handles dispatch to the various modules. -pub type Executive = executive::Executive, Balances, AllModules>; +pub type Executive = executive::Executive, Balances, AllModules>; impl_runtime_apis! { impl client_api::Core for Runtime { diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index dcadee72d8..d7f72b4eda 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -499,6 +499,7 @@ dependencies = [ "srml-democracy 0.1.0", "srml-executive 0.1.0", "srml-grandpa 0.1.0", + "srml-indices 0.1.0", "srml-session 0.1.0", "srml-staking 0.1.0", "srml-sudo 0.1.0", @@ -1010,7 +1011,7 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1175,6 +1176,24 @@ dependencies = [ "substrate-primitives 0.1.0", ] +[[package]] +name = "srml-indices" +version = "0.1.0" +dependencies = [ + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", + "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", + "sr-io 0.1.0", + "sr-primitives 0.1.0", + "sr-std 0.1.0", + "srml-support 0.1.0", + "srml-system 0.1.0", + "substrate-keyring 0.1.0", + "substrate-primitives 0.1.0", +] + [[package]] name = "srml-metadata" version = "0.1.0" @@ -1445,7 +1464,7 @@ dependencies = [ "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", - "wasmi 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1490,7 +1509,7 @@ dependencies = [ "sr-std 0.1.0", "twox-hash 1.1.2 (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)", + "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1831,7 +1850,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wasmi" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2043,7 +2062,7 @@ dependencies = [ "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 wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 1caae1e872cde01def5fbf43dd82919afed226cd..3b424afdf5e27319f666c238806930e92860d2b1 100644 GIT binary patch literal 805748 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 bH$t9pU5}1P7XqshAs{2FB%YpldV2f=E6|~L literal 791516 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௤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 MZ;;vh~$R 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 diff --git a/srml/assets/src/lib.rs b/srml/assets/src/lib.rs index dd6446c958..4e234c846c 100644 --- a/srml/assets/src/lib.rs +++ b/srml/assets/src/lib.rs @@ -46,7 +46,8 @@ extern crate sr_primitives as primitives; extern crate srml_system as system; use runtime_support::{StorageValue, StorageMap, Parameter}; -use primitives::traits::{Member, SimpleArithmetic, Zero}; +use codec::{Compact, HasCompact}; +use primitives::traits::{Member, SimpleArithmetic, Zero, StaticLookup}; use system::ensure_signed; pub trait Trait: system::Trait { @@ -66,8 +67,9 @@ decl_module! { /// Issue a new class of fungible assets. There are, and will only ever be, `total` /// such assets and they'll all belong to the `origin` initially. It will have an /// identifier `AssetId` instance: this will be specified in the `Issued` event. - fn issue(origin, total: T::Balance) { + fn issue(origin, total: ::Type) { let origin = ensure_signed(origin)?; + let total = total.into(); let id = Self::next_asset_id(); >::mutate(|id| *id += 1); @@ -79,10 +81,17 @@ decl_module! { } /// Move some assets from one holder to another. - fn transfer(origin, id: AssetId, target: T::AccountId, amount: T::Balance) { + fn transfer(origin, + id: Compact, + target: ::Source, + amount: ::Type + ) { let origin = ensure_signed(origin)?; + let id = id.into(); let origin_account = (id, origin.clone()); let origin_balance = >::get(&origin_account); + let target = T::Lookup::lookup(target)?; + let amount = amount.into(); ensure!(!amount.is_zero(), "transfer amount should be non-zero"); ensure!(origin_balance >= amount, "origin account balance must be greater than or equal to the transfer amount"); @@ -92,8 +101,9 @@ decl_module! { } /// Destroy any assets of `id` owned by `origin`. - fn destroy(origin, id: AssetId) { + fn destroy(origin, id: Compact) { let origin = ensure_signed(origin)?; + let id = id.into(); let balance = >::take((id, origin.clone())); ensure!(!balance.is_zero(), "origin balance should be non-zero"); @@ -151,7 +161,11 @@ mod tests { use substrate_primitives::{H256, Blake2Hasher}; // The testing primitives are very useful for avoiding having to work with signatures // or public keys. `u64` is used as the `AccountId` and no `Signature`s are required. - use primitives::{BuildStorage, traits::{BlakeTwo256}, testing::{Digest, DigestItem, Header}}; + use primitives::{ + BuildStorage, + traits::{BlakeTwo256, IdentityLookup}, + testing::{Digest, DigestItem, Header} + }; impl_outer_origin! { pub enum Origin for Test {} @@ -170,6 +184,7 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; @@ -189,7 +204,7 @@ mod tests { #[test] fn issuing_asset_units_to_issuer_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); }); } @@ -197,16 +212,16 @@ mod tests { #[test] fn querying_total_supply_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_ok!(Assets::transfer(Origin::signed(1), 0, 2, 50)); + assert_ok!(Assets::transfer(Origin::signed(1), 0.into(), 2, 50.into())); assert_eq!(Assets::balance(0, 1), 50); assert_eq!(Assets::balance(0, 2), 50); - assert_ok!(Assets::transfer(Origin::signed(2), 0, 3, 31)); + assert_ok!(Assets::transfer(Origin::signed(2), 0.into(), 3, 31.into())); assert_eq!(Assets::balance(0, 1), 50); assert_eq!(Assets::balance(0, 2), 19); assert_eq!(Assets::balance(0, 3), 31); - assert_ok!(Assets::destroy(Origin::signed(3), 0)); + assert_ok!(Assets::destroy(Origin::signed(3), 0.into())); assert_eq!(Assets::total_supply(0), 69); }); } @@ -214,9 +229,9 @@ mod tests { #[test] fn transferring_amount_above_available_balance_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_ok!(Assets::transfer(Origin::signed(1), 0, 2, 50)); + assert_ok!(Assets::transfer(Origin::signed(1), 0.into(), 2, 50.into())); assert_eq!(Assets::balance(0, 1), 50); assert_eq!(Assets::balance(0, 2), 50); }); @@ -225,50 +240,50 @@ mod tests { #[test] fn transferring_amount_less_than_available_balance_should_not_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_ok!(Assets::transfer(Origin::signed(1), 0, 2, 50)); + assert_ok!(Assets::transfer(Origin::signed(1), 0.into(), 2, 50.into())); assert_eq!(Assets::balance(0, 1), 50); assert_eq!(Assets::balance(0, 2), 50); - assert_ok!(Assets::destroy(Origin::signed(1), 0)); + assert_ok!(Assets::destroy(Origin::signed(1), 0.into())); assert_eq!(Assets::balance(0, 1), 0); - assert_noop!(Assets::transfer(Origin::signed(1), 0, 1, 50), "origin account balance must be greater than or equal to the transfer amount"); + assert_noop!(Assets::transfer(Origin::signed(1), 0.into(), 1, 50.into()), "origin account balance must be greater than or equal to the transfer amount"); }); } #[test] fn transferring_less_than_one_unit_should_not_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_noop!(Assets::transfer(Origin::signed(1), 0, 2, 0), "transfer amount should be non-zero"); + assert_noop!(Assets::transfer(Origin::signed(1), 0.into(), 2, 0.into()), "transfer amount should be non-zero"); }); } #[test] fn transferring_more_units_than_total_supply_should_not_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_noop!(Assets::transfer(Origin::signed(1), 0, 2, 101), "origin account balance must be greater than or equal to the transfer amount"); + assert_noop!(Assets::transfer(Origin::signed(1), 0.into(), 2, 101.into()), "origin account balance must be greater than or equal to the transfer amount"); }); } #[test] fn destroying_asset_balance_with_positive_balance_should_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 1), 100); - assert_ok!(Assets::destroy(Origin::signed(1), 0)); + assert_ok!(Assets::destroy(Origin::signed(1), 0.into())); }); } #[test] fn destroying_asset_balance_with_zero_balance_should_not_work() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Assets::issue(Origin::signed(1), 100)); + assert_ok!(Assets::issue(Origin::signed(1), 100.into())); assert_eq!(Assets::balance(0, 2), 0); - assert_noop!(Assets::destroy(Origin::signed(2), 0), "origin balance should be non-zero"); + assert_noop!(Assets::destroy(Origin::signed(2), 0.into()), "origin balance should be non-zero"); }); } } diff --git a/srml/aura/src/mock.rs b/srml/aura/src/mock.rs index eb1fc9756b..6ff33e6c51 100644 --- a/srml/aura/src/mock.rs +++ b/srml/aura/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; +use primitives::{BuildStorage, traits::IdentityLookup, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {Trait, Module, consensus, system, timestamp}; @@ -46,6 +46,7 @@ impl system::Trait for Test { type Hashing = ::primitives::traits::BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; diff --git a/srml/balances/src/lib.rs b/srml/balances/src/lib.rs index c6e5d7729a..7dda538a61 100644 --- a/srml/balances/src/lib.rs +++ b/srml/balances/src/lib.rs @@ -43,27 +43,16 @@ extern crate substrate_primitives; use rstd::prelude::*; use rstd::{cmp, result}; -use codec::{Encode, Decode, Codec, Input, Output, HasCompact}; +use codec::{Codec, HasCompact}; use runtime_support::{StorageValue, StorageMap, Parameter}; use runtime_support::dispatch::Result; -use primitives::traits::{Zero, One, SimpleArithmetic, MakePayment, - As, Lookup, Member, CheckedAdd, CheckedSub, CurrentHeight, BlockNumberToHash}; -use address::Address as RawAddress; -use system::ensure_signed; +use primitives::traits::{Zero, SimpleArithmetic, MakePayment, + As, StaticLookup, Member, CheckedAdd, CheckedSub}; +use system::{IsDeadAccount, OnNewAccount, ensure_signed}; mod mock; - -pub mod address; mod tests; -/// Number of account IDs stored per enum set. -const ENUM_SET_SIZE: usize = 64; - -/// The byte to identify intention to reclaim an existing account index. -const RECLAIM_INDEX_MAGIC: usize = 0x69; - -pub type Address = RawAddress<::AccountId, ::AccountIndex>; - /// The account with the given id was killed. pub trait OnFreeBalanceZero { /// The account was the given id was killed. @@ -117,16 +106,17 @@ impl EnsureAccountLiquid for () { pub trait Trait: system::Trait { /// The balance of an account. - type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As + As + As; - /// Type used for storing an account's index; implies the maximum number of accounts the system - /// can hold. - type AccountIndex: Parameter + Member + Codec + Default + SimpleArithmetic + As + As + As + As + As + Copy; + type Balance: Parameter + Member + SimpleArithmetic + Codec + Default + Copy + As + As; + /// A function which is invoked when the free-balance has fallen below the existential deposit and /// has been reduced to zero. /// /// Gives a chance to clean up resources associated with the given account. type OnFreeBalanceZero: OnFreeBalanceZero; + /// Handler for when a new account is created. + type OnNewAccount: OnNewAccount; + /// A function that returns true iff a given account can transfer its funds to another account. type EnsureAccountLiquid: EnsureAccountLiquid; @@ -141,12 +131,12 @@ decl_module! { /// Transfer some liquid free balance to another staker. pub fn transfer( origin, - dest: RawAddress, + dest: ::Source, value: ::Type ) { let transactor = ensure_signed(origin)?; - let dest = Self::lookup(dest)?; + let dest = T::Lookup::lookup(dest)?; let value = value.into(); let from_balance = Self::free_balance(&transactor); let to_balance = Self::free_balance(&dest); @@ -183,11 +173,11 @@ decl_module! { /// Set the balances of a given account. fn set_balance( - who: RawAddress, + who: ::Source, free: ::Type, reserved: ::Type ) { - let who = Self::lookup(who)?; + let who = T::Lookup::lookup(who)?; Self::set_free_balance(&who, free.into()); Self::set_reserved_balance(&who, reserved.into()); } @@ -197,11 +187,10 @@ decl_module! { decl_event!( pub enum Event where ::AccountId, - ::AccountIndex, ::Balance { /// A new account was created. - NewAccount(AccountId, AccountIndex, NewAccountOutcome), + NewAccount(AccountId, Balance), /// An account was reaped. ReapedAccount(AccountId), /// Transfer succeeded (from, to, value, fees). @@ -217,20 +206,11 @@ decl_storage! { }): T::Balance; /// The minimum amount allowed to keep an account open. pub ExistentialDeposit get(existential_deposit) config(): T::Balance; - /// The amount credited to a destination's account whose index was reclaimed. - pub ReclaimRebate get(reclaim_rebate) config(): T::Balance; /// The fee required to make a transfer. pub TransferFee get(transfer_fee) config(): T::Balance; /// The fee required to create an account. At least as big as ReclaimRebate. pub CreationFee get(creation_fee) config(): T::Balance; - /// The next free enumeration set. - pub NextEnumSet get(next_enum_set) build(|config: &GenesisConfig| { - T::AccountIndex::sa(config.balances.len() / ENUM_SET_SIZE) - }): T::AccountIndex; - /// The enumeration sets. - pub EnumSet get(enum_set): map T::AccountIndex => Vec; - /// The 'free' balance of a given account. /// /// This is the only balance that matters in terms of most operations on tokens. It is @@ -268,25 +248,9 @@ decl_storage! { } add_extra_genesis { config(balances): Vec<(T::AccountId, T::Balance)>; - build(|storage: &mut primitives::StorageMap, _: &mut primitives::ChildrenStorageMap, config: &GenesisConfig| { - let ids: Vec<_> = config.balances.iter().map(|x| x.0.clone()).collect(); - for i in 0..(ids.len() + ENUM_SET_SIZE - 1) / ENUM_SET_SIZE { - storage.insert(GenesisConfig::::hash(&>::key_for(T::AccountIndex::sa(i))).to_vec(), - ids[i * ENUM_SET_SIZE..ids.len().min((i + 1) * ENUM_SET_SIZE)].to_owned().encode()); - } - }); } } -/// Whatever happened about the hint given when creating the new account. -#[cfg_attr(feature = "std", derive(Debug))] -#[derive(Encode, Decode, PartialEq, Eq, Clone, Copy)] -pub enum NewAccountOutcome { - NoHint, - GoodHint, - BadHint, -} - /// Outcome of a balance update. pub enum UpdateBalanceOutcome { /// Account balance was simply updated. @@ -319,30 +283,6 @@ impl Module { } } - /// Lookup an T::AccountIndex to get an Id, if there's one there. - pub fn lookup_index(index: T::AccountIndex) -> Option { - let enum_set_size = Self::enum_set_size(); - let set = Self::enum_set(index / enum_set_size); - let i: usize = (index % enum_set_size).as_(); - set.get(i).map(|x| x.clone()) - } - - /// `true` if the account `index` is ready for reclaim. - pub fn can_reclaim(try_index: T::AccountIndex) -> bool { - let enum_set_size = Self::enum_set_size(); - let try_set = Self::enum_set(try_index / enum_set_size); - let i = (try_index % enum_set_size).as_(); - i < try_set.len() && Self::total_balance(&try_set[i]).is_zero() - } - - /// Lookup an address to get an Id, if there's one there. - pub fn lookup_address(a: address::Address) -> Option { - match a { - address::Address::Id(i) => Some(i), - address::Address::Index(i) => Self::lookup_index(i), - } - } - //PUBLIC MUTABLES (DANGEROUS) /// Set the free balance of an account to some new value. @@ -399,22 +339,14 @@ impl Module { // account is reaped). // NOTE: This is orthogonal to the `Bondage` value that an account has, a high // value of which makes even the `free_balance` unspendable. - // TODO: enforce this for the other balance-altering functions. if balance < ed { Self::set_free_balance(who, balance); UpdateBalanceOutcome::AccountKilled } else { if !>::exists(who) { - let outcome = Self::new_account(&who, balance); - let credit = match outcome { - NewAccountOutcome::GoodHint => balance + >::reclaim_rebate(), - _ => balance, - }; - Self::set_free_balance(who, credit); - Self::increase_total_stake_by(credit - balance); - } else { - Self::set_free_balance(who, balance); + Self::new_account(&who, balance); } + Self::set_free_balance(who, balance); UpdateBalanceOutcome::Updated } @@ -550,82 +482,10 @@ impl Module { } } - fn enum_set_size() -> T::AccountIndex { - T::AccountIndex::sa(ENUM_SET_SIZE) - } - /// Register a new account (with existential balance). - fn new_account(who: &T::AccountId, balance: T::Balance) -> NewAccountOutcome { - let enum_set_size = Self::enum_set_size(); - let next_set_index = Self::next_enum_set(); - let reclaim_index_magic = T::AccountIndex::sa(RECLAIM_INDEX_MAGIC); - let reclaim_index_modulus = T::AccountIndex::sa(256usize); - let quantization = T::AccountIndex::sa(256usize); - - // A little easter-egg for reclaiming dead indexes.. - let ret = { - // we quantise the number of accounts so it stays constant over a reasonable - // period of time. - let quantized_account_count: T::AccountIndex = (next_set_index * enum_set_size / quantization + One::one()) * quantization; - // then modify the starting balance to be modulo this to allow it to potentially - // identify an account index for reuse. - let maybe_try_index = balance % >::sa(quantized_account_count * reclaim_index_modulus); - let maybe_try_index = As::::as_(maybe_try_index); - - // this identifier must end with magic byte 0x69 to trigger this check (a minor - // optimisation to ensure we don't check most unintended account creations). - if maybe_try_index % reclaim_index_modulus == reclaim_index_magic { - // reuse is probably intended. first, remove magic byte. - let try_index = maybe_try_index / reclaim_index_modulus; - - // then check to see if this balance identifies a dead account index. - let set_index = try_index / enum_set_size; - let mut try_set = Self::enum_set(set_index); - let item_index = (try_index % enum_set_size).as_(); - if item_index < try_set.len() { - if Self::total_balance(&try_set[item_index]).is_zero() { - // yup - this index refers to a dead account. can be reused. - try_set[item_index] = who.clone(); - >::insert(set_index, try_set); - - Self::deposit_event(RawEvent::NewAccount(who.clone(), try_index, NewAccountOutcome::GoodHint)); - - return NewAccountOutcome::GoodHint - } - } - NewAccountOutcome::BadHint - } else { - NewAccountOutcome::NoHint - } - }; - - // insert normally as a back up - let mut set_index = next_set_index; - // defensive only: this loop should never iterate since we keep NextEnumSet up to date later. - let mut set = loop { - let set = Self::enum_set(set_index); - if set.len() < ENUM_SET_SIZE { - break set; - } - set_index += One::one(); - }; - - let index = T::AccountIndex::sa(set_index.as_() * ENUM_SET_SIZE + set.len()); - - // update set. - set.push(who.clone()); - - // keep NextEnumSet up to date - if set.len() == ENUM_SET_SIZE { - >::put(set_index + One::one()); - } - - // write set. - >::insert(set_index, set); - - Self::deposit_event(RawEvent::NewAccount(who.clone(), index, ret)); - - ret + fn new_account(who: &T::AccountId, balance: T::Balance) { + T::OnNewAccount::on_new_account(&who); + Self::deposit_event(RawEvent::NewAccount(who.clone(), balance.clone())); } fn reap_account(who: &T::AccountId) { @@ -667,43 +527,6 @@ impl Module { >::put(v); } } - - pub fn lookup(a: address::Address) -> result::Result { - match a { - address::Address::Id(i) => Ok(i), - address::Address::Index(i) => >::lookup_index(i).ok_or("invalid account index"), - } - } -} - -pub struct ChainContext(::rstd::marker::PhantomData); -impl Default for ChainContext { - fn default() -> Self { - ChainContext(::rstd::marker::PhantomData) - } -} - -impl Lookup for ChainContext { - type Source = address::Address; - type Target = T::AccountId; - fn lookup(&self, a: Self::Source) -> result::Result { - >::lookup(a) - } -} - -impl CurrentHeight for ChainContext { - type BlockNumber = T::BlockNumber; - fn current_height(&self) -> Self::BlockNumber { - >::block_number() - } -} - -impl BlockNumberToHash for ChainContext { - type BlockNumber = T::BlockNumber; - type Hash = T::Hash; - fn block_number_to_hash(&self, n: Self::BlockNumber) -> Option { - Some(>::block_hash(n)) - } } impl MakePayment for Module { @@ -718,3 +541,9 @@ impl MakePayment for Module { Ok(()) } } + +impl IsDeadAccount for Module { + fn is_dead_account(who: &T::AccountId) -> bool { + Self::total_balance(who).is_zero() + } +} diff --git a/srml/balances/src/mock.rs b/srml/balances/src/mock.rs index 8b9dbce3d4..1ff7a03073 100644 --- a/srml/balances/src/mock.rs +++ b/srml/balances/src/mock.rs @@ -19,7 +19,7 @@ #![cfg(test)] use primitives::BuildStorage; -use primitives::testing::{Digest, DigestItem, Header}; +use primitives::{traits::{IdentityLookup}, testing::{Digest, DigestItem, Header}}; use substrate_primitives::{H256, Blake2Hasher}; use runtime_io; use {GenesisConfig, Module, Trait, system}; @@ -39,14 +39,15 @@ impl system::Trait for Runtime { type Hashing = ::primitives::traits::BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; } impl Trait for Runtime { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = (); + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = (); } @@ -103,7 +104,6 @@ impl ExtBuilder { existential_deposit: self.existential_deposit, transfer_fee: self.transfer_fee, creation_fee: self.creation_fee, - reclaim_rebate: 0, }.build_storage().unwrap().0); t.into() } diff --git a/srml/balances/src/tests.rs b/srml/balances/src/tests.rs index 9ad100fe61..1d0b64e447 100644 --- a/srml/balances/src/tests.rs +++ b/srml/balances/src/tests.rs @@ -22,67 +22,6 @@ use super::*; use mock::{Balances, ExtBuilder, Runtime, System}; use runtime_io::with_externalities; -#[test] -fn reward_should_work() { - with_externalities(&mut ExtBuilder::default().monied(true).build(), || { - assert_eq!(Balances::total_balance(&1), 10); - assert_ok!(Balances::reward(&1, 10)); - assert_eq!(Balances::total_balance(&1), 20); - assert_eq!(>::get(), 110); - }); -} - -#[test] -fn indexing_lookup_should_work() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(10) - .monied(true) - .build(), - || { - assert_eq!(Balances::lookup_index(0), Some(1)); - assert_eq!(Balances::lookup_index(1), Some(2)); - assert_eq!(Balances::lookup_index(2), Some(3)); - assert_eq!(Balances::lookup_index(3), Some(4)); - assert_eq!(Balances::lookup_index(4), None); - }, - ); -} - -#[test] -fn default_indexing_on_new_accounts_should_work() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(10) - .monied(true) - .build(), - || { - assert_eq!(Balances::lookup_index(4), None); - assert_ok!(Balances::transfer(Some(1).into(), 5.into(), 10.into())); - assert_eq!(Balances::lookup_index(4), Some(5)); - }, - ); -} - -#[test] -fn default_indexing_on_new_accounts_should_work2() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(10) - .creation_fee(50) - .monied(true) - .build(), - || { - assert_eq!(Balances::lookup_index(4), None); - // account 1 has 256 * 10 = 2560, account 5 is not exist, ext_deposit is 10, value is 10 - assert_ok!(Balances::transfer(Some(1).into(), 5.into(), 10.into())); - assert_eq!(Balances::lookup_index(4), Some(5)); - - assert_eq!(Balances::free_balance(&1), 256 * 10 - 10 - 50); // 10 is value, 50 is creation_free - }, - ); -} - #[test] fn default_indexing_on_new_accounts_should_not_work2() { with_externalities( @@ -92,166 +31,100 @@ fn default_indexing_on_new_accounts_should_not_work2() { .monied(true) .build(), || { - assert_eq!(Balances::lookup_index(4), None); + assert_eq!(Balances::is_dead_account(&5), true); // account 5 should not exist // account 1 has 256 * 10 = 2560, account 5 is not exist, ext_deposit is 10, value is 9, not satisfies for ext_deposit assert_noop!( - Balances::transfer(Some(1).into(), 5.into(), 9.into()), + Balances::transfer(Some(1).into(), 5, 9.into()), "value too low to create account" ); - assert_eq!(Balances::lookup_index(4), None); // account 5 should not exist + assert_eq!(Balances::is_dead_account(&5), true); // account 5 should not exist assert_eq!(Balances::free_balance(&1), 256 * 10); }, ); } #[test] -fn dust_account_removal_should_work() { +fn reserved_balance_should_prevent_reclaim_count() { with_externalities( &mut ExtBuilder::default() - .existential_deposit(256 * 10) + .existential_deposit(256 * 1) .monied(true) .build(), || { System::inc_account_nonce(&2); - assert_eq!(System::account_nonce(&2), 1); + assert_eq!(Balances::is_dead_account(&2), false); + assert_eq!(Balances::is_dead_account(&5), true); assert_eq!(Balances::total_balance(&2), 256 * 20); - assert_ok!(Balances::transfer(Some(2).into(), 5.into(), (256 * 10 + 1).into())); // index 1 (account 2) becomes zombie - assert_eq!(Balances::total_balance(&2), 0); - assert_eq!(Balances::total_balance(&5), 256 * 10 + 1); - assert_eq!(System::account_nonce(&2), 0); - }, - ); -} - -#[test] -fn dust_account_removal_should_work2() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(256 * 10) - .creation_fee(50) - .monied(true) - .build(), - || { - System::inc_account_nonce(&2); + assert_ok!(Balances::reserve(&2, 256 * 19 + 1)); // account 2 becomes mostly reserved + assert_eq!(Balances::free_balance(&2), 0); // "free" account deleted." + assert_eq!(Balances::total_balance(&2), 256 * 19 + 1); // reserve still exists. + assert_eq!(Balances::is_dead_account(&2), false); assert_eq!(System::account_nonce(&2), 1); - assert_eq!(Balances::total_balance(&2), 256 * 20); - assert_ok!(Balances::transfer(Some(2).into(), 5.into(), (256 * 10).into())); // index 1 (account 2) becomes zombie for 256*10 + 50(fee) < 256 * 10 (ext_deposit) - assert_eq!(Balances::total_balance(&2), 0); - assert_eq!(Balances::total_balance(&5), 256 * 10); - assert_eq!(System::account_nonce(&2), 0); - }, - ); -} -#[test] -fn reclaim_indexing_on_new_accounts_should_work() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(256 * 1) - .monied(true) - .build(), - || { - assert_eq!(Balances::lookup_index(1), Some(2)); - assert_eq!(Balances::lookup_index(4), None); - assert_eq!(Balances::total_balance(&2), 256 * 20); + assert_ok!(Balances::transfer(Some(4).into(), 5, (256 * 1 + 0x69).into())); // account 4 tries to take index 1 for account 5. + assert_eq!(Balances::total_balance(&5), 256 * 1 + 0x69); + assert_eq!(Balances::is_dead_account(&5), false); - assert_ok!(Balances::transfer(Some(2).into(), 5.into(), (256 * 20).into())); // account 2 becomes zombie freeing index 1 for reclaim) - assert_eq!(Balances::total_balance(&2), 0); + assert_eq!(Balances::slash(&2, 256 * 18 + 2), None); // account 2 gets slashed + assert_eq!(Balances::total_balance(&2), 0); // "reserve" account reduced to 255 (below ED) so account deleted + assert_eq!(System::account_nonce(&2), 0); // nonce zero + assert_eq!(Balances::is_dead_account(&2), true); - assert_ok!(Balances::transfer(Some(5).into(), 6.into(), (256 * 1 + 0x69).into())); // account 6 takes index 1. + assert_ok!(Balances::transfer(Some(4).into(), 6, (256 * 1 + 0x69).into())); // account 4 tries to take index 1 again for account 6. assert_eq!(Balances::total_balance(&6), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(6)); + assert_eq!(Balances::is_dead_account(&6), false); }, ); } -#[test] -fn reclaim_indexing_on_new_accounts_should_work2() { - with_externalities( - &mut ExtBuilder::default() - .existential_deposit(256 * 1) - .monied(true) - .build(), - || { - assert_eq!(Balances::lookup_index(1), Some(2)); - assert_eq!(Balances::lookup_index(4), None); - assert_eq!(Balances::total_balance(&2), 256 * 20); - assert_ok!(Balances::transfer(Some(2).into(), 5.into(), (256 * 20 - 50).into())); // account 2 becomes zombie freeing index 1 for reclaim) 50 is creation fee - assert_eq!(Balances::total_balance(&2), 0); - - assert_ok!(Balances::transfer(Some(5).into(), 6.into(), (256 * 1 + 0x69).into())); // account 6 takes index 1. - assert_eq!(Balances::total_balance(&6), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(6)); - }, - ); +#[test] +fn reward_should_work() { + with_externalities(&mut ExtBuilder::default().monied(true).build(), || { + assert_eq!(Balances::total_balance(&1), 10); + assert_ok!(Balances::reward(&1, 10)); + assert_eq!(Balances::total_balance(&1), 20); + assert_eq!(>::get(), 110); + }); } #[test] -fn reserved_balance_should_prevent_reclaim_count() { +fn dust_account_removal_should_work() { with_externalities( &mut ExtBuilder::default() - .existential_deposit(256 * 1) + .existential_deposit(256 * 10) .monied(true) .build(), || { System::inc_account_nonce(&2); - assert_eq!(Balances::lookup_index(1), Some(2)); - assert_eq!(Balances::lookup_index(4), None); - assert_eq!(Balances::total_balance(&2), 256 * 20); - - assert_ok!(Balances::reserve(&2, 256 * 19 + 1)); // account 2 becomes mostly reserved - assert_eq!(Balances::free_balance(&2), 0); // "free" account deleted." - assert_eq!(Balances::total_balance(&2), 256 * 19 + 1); // reserve still exists. - assert_eq!(System::account_nonce(&2), 1); - - assert_ok!(Balances::transfer(Some(4).into(), 5.into(), (256 * 1 + 0x69).into())); // account 4 tries to take index 1 for account 5. - assert_eq!(Balances::total_balance(&5), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(2)); // but fails. assert_eq!(System::account_nonce(&2), 1); + assert_eq!(Balances::total_balance(&2), 256 * 20); - assert_eq!(Balances::slash(&2, 256 * 18 + 2), None); // account 2 gets slashed - assert_eq!(Balances::total_balance(&2), 0); // "free" account deleted." + assert_ok!(Balances::transfer(Some(2).into(), 5, (256 * 10 + 1).into())); // index 1 (account 2) becomes zombie + assert_eq!(Balances::total_balance(&2), 0); + assert_eq!(Balances::total_balance(&5), 256 * 10 + 1); assert_eq!(System::account_nonce(&2), 0); - - assert_ok!(Balances::transfer(Some(4).into(), 6.into(), (256 * 1 + 0x69).into())); // account 4 tries to take index 1 again for account 6. - assert_eq!(Balances::total_balance(&6), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(6)); // and succeeds. }, ); } #[test] -fn reserved_balance_should_prevent_reclaim_count2() { +fn dust_account_removal_should_work2() { with_externalities( &mut ExtBuilder::default() - .existential_deposit(256 * 1) + .existential_deposit(256 * 10) + .creation_fee(50) .monied(true) .build(), || { System::inc_account_nonce(&2); - assert_eq!(Balances::lookup_index(1), Some(2)); - assert_eq!(Balances::lookup_index(4), None); - assert_eq!(Balances::total_balance(&2), 256 * 20); - - assert_ok!(Balances::reserve(&2, 256 * 19 + 1)); // account 2 becomes mostly reserved - assert_eq!(Balances::free_balance(&2), 0); // "free" account deleted." - assert_eq!(Balances::total_balance(&2), 256 * 19 + 1); // reserve still exists. - assert_eq!(System::account_nonce(&2), 1); - - assert_ok!(Balances::transfer(Some(4).into(), 5.into(), (256 * 1 + 0x69).into())); // account 4 tries to take index 1 for account 5. - assert_eq!(Balances::total_balance(&5), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(2)); // but fails. assert_eq!(System::account_nonce(&2), 1); - - assert_eq!(Balances::slash(&2, 256 * 18 + 2), None); // account 2 gets slashed - assert_eq!(Balances::total_balance(&2), 0); // "free" account deleted." + assert_eq!(Balances::total_balance(&2), 256 * 20); + assert_ok!(Balances::transfer(Some(2).into(), 5, (256 * 10).into())); // index 1 (account 2) becomes zombie for 256*10 + 50(fee) < 256 * 10 (ext_deposit) + assert_eq!(Balances::total_balance(&2), 0); + assert_eq!(Balances::total_balance(&5), 256 * 10); assert_eq!(System::account_nonce(&2), 0); - - assert_ok!(Balances::transfer(Some(4).into(), 6.into(), (256 * 1 + 0x69).into())); // account 4 tries to take index 1 again for account 6. - assert_eq!(Balances::total_balance(&6), 256 * 1 + 0x69); - assert_eq!(Balances::lookup_index(1), Some(6)); // and succeeds. }, ); } @@ -274,7 +147,7 @@ fn balance_transfer_works() { with_externalities(&mut ExtBuilder::default().build(), || { Balances::set_free_balance(&1, 111); Balances::increase_total_stake_by(111); - assert_ok!(Balances::transfer(Some(1).into(), 2.into(), 69.into())); + assert_ok!(Balances::transfer(Some(1).into(), 2, 69.into())); assert_eq!(Balances::total_balance(&1), 42); assert_eq!(Balances::total_balance(&2), 69); }); @@ -313,7 +186,7 @@ fn balance_transfer_when_reserved_should_not_work() { with_externalities(&mut ExtBuilder::default().build(), || { Balances::set_free_balance(&1, 111); assert_ok!(Balances::reserve(&1, 69)); - assert_noop!(Balances::transfer(Some(1).into(), 2.into(), 69.into()), "balance too low to send value"); + assert_noop!(Balances::transfer(Some(1).into(), 2, 69.into()), "balance too low to send value"); }); } @@ -444,7 +317,7 @@ fn transferring_too_high_value_should_not_panic() { >::insert(2, 1); assert_err!( - Balances::transfer(Some(1).into(), 2.into(), u64::max_value().into()), + Balances::transfer(Some(1).into(), 2, u64::max_value().into()), "destination balance too high to receive value" ); @@ -472,7 +345,7 @@ fn account_removal_on_free_too_low() { // Transfer funds from account 1 of such amount that after this transfer // the balance of account 1 will be below the exsistential threshold. // This should lead to the removal of all balance of this account. - assert_ok!(Balances::transfer(Some(1).into(), 2.into(), 20.into())); + assert_ok!(Balances::transfer(Some(1).into(), 2, 20.into())); // Verify free balance removal of account 1. assert_eq!(Balances::free_balance(&1), 0); @@ -492,7 +365,7 @@ fn transfer_overflow_isnt_exploitable() { let evil_value = u64::max_value() - 49; assert_err!( - Balances::transfer(Some(1).into(), 5.into(), evil_value.into()), + Balances::transfer(Some(1).into(), 5, evil_value.into()), "got overflow after adding a fee to value" ); } diff --git a/srml/consensus/src/mock.rs b/srml/consensus/src/mock.rs index 78351309ac..9bf81cd327 100644 --- a/srml/consensus/src/mock.rs +++ b/srml/consensus/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header, UintAuthorityId}}; +use primitives::{BuildStorage, traits::IdentityLookup, testing::{Digest, DigestItem, Header, UintAuthorityId}}; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; use {GenesisConfig, Trait, Module, system}; @@ -44,6 +44,7 @@ impl system::Trait for Test { type Hashing = ::primitives::traits::BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; diff --git a/srml/contract/src/lib.rs b/srml/contract/src/lib.rs index 199f005881..4bef3b1d8c 100644 --- a/srml/contract/src/lib.rs +++ b/srml/contract/src/lib.rs @@ -97,7 +97,7 @@ use account_db::{AccountDb, OverlayAccountDb}; use rstd::prelude::*; use rstd::marker::PhantomData; use codec::{Codec, HasCompact}; -use runtime_primitives::traits::{Hash, As, SimpleArithmetic}; +use runtime_primitives::traits::{Hash, As, SimpleArithmetic, StaticLookup}; use runtime_support::dispatch::Result; use runtime_support::{Parameter, StorageMap, StorageValue, StorageDoubleMap}; use system::ensure_signed; @@ -152,7 +152,7 @@ decl_module! { /// Make a call to a specified account, optionally transferring some balance. fn call( origin, - dest: T::AccountId, + dest: ::Source, value: ::Type, gas_limit: ::Type, data: Vec @@ -160,6 +160,7 @@ decl_module! { let origin = ensure_signed(origin)?; let value = value.into(); let gas_limit = gas_limit.into(); + let dest = T::Lookup::lookup(dest)?; // Pay for the gas upfront. // diff --git a/srml/contract/src/tests.rs b/srml/contract/src/tests.rs index b28bfcb82d..399004c6a4 100644 --- a/srml/contract/src/tests.rs +++ b/srml/contract/src/tests.rs @@ -16,7 +16,7 @@ use runtime_io::with_externalities; use runtime_primitives::testing::{Digest, DigestItem, H256, Header}; -use runtime_primitives::traits::{BlakeTwo256}; +use runtime_primitives::traits::{BlakeTwo256, IdentityLookup}; use runtime_primitives::BuildStorage; use runtime_support::{StorageMap, StorageDoubleMap}; use substrate_primitives::{Blake2Hasher}; @@ -50,14 +50,15 @@ impl system::Trait for Test { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = MetaEvent; type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = Contract; + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = MetaEvent; } @@ -129,7 +130,6 @@ impl ExtBuilder { existential_deposit: self.existential_deposit, transfer_fee: self.transfer_fee, creation_fee: self.creation_fee, - reclaim_rebate: 0, }.build_storage() .unwrap().0, ); @@ -224,8 +224,7 @@ fn contract_transfer() { event: MetaEvent::balances( balances::RawEvent::NewAccount( CONTRACT_SHOULD_TRANSFER_TO, - 0, - balances::NewAccountOutcome::NoHint + 6 ) ), }, @@ -544,8 +543,7 @@ fn contract_create() { event: MetaEvent::balances( balances::RawEvent::NewAccount( derived_address, - 0, - balances::NewAccountOutcome::NoHint + 3 ) ), }, @@ -704,7 +702,7 @@ fn account_removal_removes_storage() { // the balance of account 1 is will be below than exsistential threshold. // // This should lead to the removal of all storage associated with this account. - assert_ok!(Balances::transfer(Origin::signed(1), 2.into(), 20.into())); + assert_ok!(Balances::transfer(Origin::signed(1), 2, 20.into())); // Verify that all entries from account 1 is removed, while // entries from account 2 is in place. diff --git a/srml/council/src/lib.rs b/srml/council/src/lib.rs index 9d50445891..60320c0738 100644 --- a/srml/council/src/lib.rs +++ b/srml/council/src/lib.rs @@ -50,7 +50,7 @@ mod tests { pub use runtime_io::with_externalities; pub use substrate_primitives::H256; pub use primitives::BuildStorage; - pub use primitives::traits::{BlakeTwo256}; + pub use primitives::traits::{BlakeTwo256, IdentityLookup}; pub use primitives::testing::{Digest, DigestItem, Header}; pub use substrate_primitives::{Blake2Hasher}; pub use {seats, motions, voting}; @@ -85,14 +85,15 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = Event; type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = (); + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = Event; } @@ -121,7 +122,6 @@ mod tests { existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, }.build_storage().unwrap().0); t.extend(democracy::GenesisConfig::{ launch_period: 1, diff --git a/srml/council/src/motions.rs b/srml/council/src/motions.rs index ad0f5032cf..8e6f94fbd5 100644 --- a/srml/council/src/motions.rs +++ b/srml/council/src/motions.rs @@ -220,7 +220,7 @@ mod tests { } fn set_balance_proposal(value: u64) -> Call { - Call::Balances(balances::Call::set_balance(balances::address::Address::Id(42), value.into(), 0.into())) + Call::Balances(balances::Call::set_balance(42, value.into(), 0.into())) } #[test] @@ -237,7 +237,7 @@ mod tests { assert_eq!(System::events(), vec![ EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), 3)) + event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), 3)) } ]); }); @@ -290,11 +290,11 @@ mod tests { assert_eq!(System::events(), vec![ EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), 2)) + event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), 2)) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Voted(1, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), false, 0, 1)) + event: OuterEvent::motions(RawEvent::Voted(1, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), false, 0, 1)) } ]); }); @@ -312,15 +312,15 @@ mod tests { assert_eq!(System::events(), vec![ EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), 3)) + event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), 3)) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Voted(2, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), false, 1, 1)) + event: OuterEvent::motions(RawEvent::Voted(2, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), false, 1, 1)) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Disapproved(hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into())) + event: OuterEvent::motions(RawEvent::Disapproved(hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into())) } ]); }); @@ -338,19 +338,19 @@ mod tests { assert_eq!(System::events(), vec![ EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), 2)) + event: OuterEvent::motions(RawEvent::Proposed(1, 0, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), 2)) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Voted(2, hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), true, 2, 0)) + event: OuterEvent::motions(RawEvent::Voted(2, hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), true, 2, 0)) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Approved(hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into())) + event: OuterEvent::motions(RawEvent::Approved(hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into())) }, EventRecord { phase: Phase::ApplyExtrinsic(0), - event: OuterEvent::motions(RawEvent::Executed(hex!["35282aeb9f95795dc1be91b748cec2d210338f2c9c1a85d98e7a3619b6187d22"].into(), false)) + event: OuterEvent::motions(RawEvent::Executed(hex!["cd0b662a49f004093b80600415cf4126399af0d27ed6c185abeb1469c17eb5bf"].into(), false)) } ]); }); diff --git a/srml/council/src/seats.rs b/srml/council/src/seats.rs index 54579e356e..25c37b9b8e 100644 --- a/srml/council/src/seats.rs +++ b/srml/council/src/seats.rs @@ -18,11 +18,11 @@ use rstd::prelude::*; use codec::{Compact, HasCompact}; -use primitives::traits::{Zero, One, As}; +use primitives::traits::{Zero, One, As, StaticLookup}; use runtime_io::print; use srml_support::{StorageValue, StorageMap, dispatch::Result}; use democracy; -use balances::{self, address::Address}; +use balances; use system::{self, ensure_signed}; // no polynomial attacks: @@ -127,14 +127,14 @@ decl_module! { fn reap_inactive_voter( origin, reporter_index: Compact, - who: Address, + who: ::Source, who_index: Compact, assumed_vote_index: Compact ) { let reporter = ensure_signed(origin)?; let assumed_vote_index: VoteIndex = assumed_vote_index.into(); - let who = >::lookup(who)?; + let who = T::Lookup::lookup(who)?; ensure!(!Self::presentation_active(), "cannot reap during presentation period"); ensure!(Self::voter_last_active(&reporter).is_some(), "reporter must be a voter"); let last_active = Self::voter_last_active(&who).ok_or("target for inactivity cleanup must be active")?; @@ -226,7 +226,7 @@ decl_module! { /// `signed` should have at least fn present_winner( origin, - candidate: Address, + candidate: ::Source, total: ::Type, index: Compact ) -> Result { @@ -235,7 +235,7 @@ decl_module! { ensure!(!total.is_zero(), "stake deposited to present winner and be added to leaderboard should be non-zero"); let index: VoteIndex = index.into(); - let candidate = >::lookup(candidate)?; + let candidate = T::Lookup::lookup(candidate)?; ensure!(index == Self::vote_index(), "index not current"); let (_, _, expiring) = Self::next_finalise().ok_or("cannot present outside of presentation period")?; let stakes = Self::snapshoted_stakes(); @@ -288,8 +288,8 @@ decl_module! { /// Remove a particular member. A tally will happen instantly (if not already in a presentation /// period) to fill the seat if removal means that the desired members are not met. /// This is effective immediately. - fn remove_member(who: Address) { - let who = >::lookup(who)?; + fn remove_member(who: ::Source) { + let who = T::Lookup::lookup(who)?; let new_council: Vec<(T::AccountId, T::BlockNumber)> = Self::active_council() .into_iter() .filter(|i| i.0 != who) @@ -874,8 +874,8 @@ mod tests { System::set_block_number(6); assert!(Council::presentation_active()); - assert_eq!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into()), Ok(())); - assert_eq!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into()), Ok(())); + assert_eq!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into()), Ok(())); + assert_eq!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into()), Ok(())); assert_eq!(Council::leaderboard(), Some(vec![(0, 0), (0, 0), (20, 2), (50, 5)])); assert_ok!(Council::end_block(System::block_number())); @@ -900,7 +900,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 0.into(), 0.into()), "stake deposited to present winner and be added to leaderboard should be non-zero"); + assert_noop!(Council::present_winner(Origin::signed(4), 2, 0.into(), 0.into()), "stake deposited to present winner and be added to leaderboard should be non-zero"); }); } @@ -917,9 +917,9 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); - assert_eq!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into()), Err("duplicate presentation")); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); + assert_eq!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into()), Err("duplicate presentation")); assert_ok!(Council::end_block(System::block_number())); assert_eq!(Council::active_council(), vec![(5, 11), (2, 11)]); @@ -936,7 +936,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -945,12 +945,12 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert_ok!(Council::reap_inactive_voter(Origin::signed(5), (Council::voters().iter().position(|&i| i == 5).unwrap() as u32).into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2, (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() )); @@ -970,7 +970,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -979,7 +979,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 1.into()), "candidate must not form a duplicated member if elected"); + assert_noop!(Council::present_winner(Origin::signed(4), 2, 20.into(), 1.into()), "candidate must not form a duplicated member if elected"); }); } @@ -992,7 +992,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1001,7 +1001,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(11); @@ -1009,7 +1009,7 @@ mod tests { assert_ok!(Council::reap_inactive_voter(Origin::signed(5), (Council::voters().iter().position(|&i| i == 5).unwrap() as u32).into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2, (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() )); @@ -1029,7 +1029,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1038,12 +1038,12 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert_noop!(Council::reap_inactive_voter(Origin::signed(2), 42.into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2, (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() ), "bad reporter index"); }); @@ -1058,7 +1058,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1067,12 +1067,12 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert_noop!(Council::reap_inactive_voter(Origin::signed(2), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), - 2.into(), 42.into(), + 2, 42.into(), 2.into() ), "bad target index"); }); @@ -1093,10 +1093,10 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1104,8 +1104,8 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 1.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert_eq!(Council::vote_index(), 2); @@ -1115,7 +1115,7 @@ mod tests { assert_ok!(Council::reap_inactive_voter(Origin::signed(4), (Council::voters().iter().position(|&i| i == 4).unwrap() as u32).into(), - 2.into(), + 2, (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() )); @@ -1135,7 +1135,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1144,12 +1144,12 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert_noop!(Council::reap_inactive_voter(Origin::signed(4), 0.into(), - 2.into(), (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), + 2, (Council::voters().iter().position(|&i| i == 2).unwrap() as u32).into(), 2.into() ), "reporter must be a voter"); }); @@ -1172,10 +1172,10 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 1, 60.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); assert_eq!(Council::leaderboard(), Some(vec![ (30, 3), @@ -1184,7 +1184,7 @@ mod tests { (60, 1) ])); - assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into()), "candidate not worthy of leaderboard"); + assert_noop!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into()), "candidate not worthy of leaderboard"); }); } @@ -1205,11 +1205,11 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 2, 20.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 1, 60.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); assert_eq!(Council::leaderboard(), Some(vec![ (30, 3), @@ -1225,7 +1225,7 @@ mod tests { with_externalities(&mut new_test_ext(false), || { System::set_block_number(4); assert!(!Council::presentation_active()); - assert_noop!(Council::present_winner(Origin::signed(5), 5.into(), 1.into(), 0.into()), "cannot present outside of presentation period"); + assert_noop!(Council::present_winner(Origin::signed(5), 5, 1.into(), 0.into()), "cannot present outside of presentation period"); }); } @@ -1240,7 +1240,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_noop!(Council::present_winner(Origin::signed(4), 2.into(), 20.into(), 1.into()), "index not current"); + assert_noop!(Council::present_winner(Origin::signed(4), 2, 20.into(), 1.into()), "index not current"); }); } @@ -1259,7 +1259,7 @@ mod tests { System::set_block_number(6); assert_eq!(Balances::free_balance(&1), 1); assert_eq!(Balances::reserved_balance(&1), 9); - assert_noop!(Council::present_winner(Origin::signed(1), 1.into(), 20.into(), 0.into()), "presenter must have sufficient slashable funds"); + assert_noop!(Council::present_winner(Origin::signed(1), 1, 20.into(), 0.into()), "presenter must have sufficient slashable funds"); }); } @@ -1277,7 +1277,7 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_err!(Council::present_winner(Origin::signed(4), 2.into(), 80.into(), 0.into()), "incorrect total"); + assert_err!(Council::present_winner(Origin::signed(4), 2, 80.into(), 0.into()), "incorrect total"); assert_eq!(Balances::total_balance(&4), 38); }); @@ -1304,7 +1304,7 @@ mod tests { System::set_block_number(6); assert!(Council::presentation_active()); - assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 1, 60.into(), 0.into())); // leaderboard length is the empty seats plus the carry count (i.e. 5 + 2), where those // to be carried are the lowest and stored in lowest indexes assert_eq!(Council::leaderboard(), Some(vec![ @@ -1313,9 +1313,9 @@ mod tests { (0, 0), (60, 1) ])); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); assert_eq!(Council::leaderboard(), Some(vec![ (30, 3), (40, 4), @@ -1361,10 +1361,10 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(6); - assert_ok!(Council::present_winner(Origin::signed(4), 1.into(), 60.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 30.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 0.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 5.into(), 50.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 1, 60.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 30.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 0.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 5, 50.into(), 0.into())); assert_ok!(Council::end_block(System::block_number())); System::set_block_number(8); @@ -1373,8 +1373,8 @@ mod tests { assert_ok!(Council::end_block(System::block_number())); System::set_block_number(10); - assert_ok!(Council::present_winner(Origin::signed(4), 3.into(), 90.into(), 1.into())); - assert_ok!(Council::present_winner(Origin::signed(4), 4.into(), 40.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 3, 90.into(), 1.into())); + assert_ok!(Council::present_winner(Origin::signed(4), 4, 40.into(), 1.into())); assert_ok!(Council::end_block(System::block_number())); assert!(!Council::presentation_active()); diff --git a/srml/council/src/voting.rs b/srml/council/src/voting.rs index ffc340e4f9..4a69e4f560 100644 --- a/srml/council/src/voting.rs +++ b/srml/council/src/voting.rs @@ -259,7 +259,7 @@ mod tests { } fn set_balance_proposal(value: u64) -> Call { - Call::Balances(balances::Call::set_balance(balances::address::Address::Id(42), value.into(), 0.into())) + Call::Balances(balances::Call::set_balance(42, value.into(), 0.into())) } fn cancel_referendum_proposal(id: u32) -> Call { diff --git a/srml/democracy/src/lib.rs b/srml/democracy/src/lib.rs index 599e15b0c0..2c0a1bd888 100644 --- a/srml/democracy/src/lib.rs +++ b/srml/democracy/src/lib.rs @@ -154,9 +154,9 @@ decl_module! { } /// Cancel a proposal queued for enactment. - pub fn cancel_queued(when: T::BlockNumber, which: u32) -> Result { - let which = which as usize; - >::mutate(when, |items| if items.len() > which { items[which] = None }); + pub fn cancel_queued(when: ::Type, which: Compact) -> Result { + let which = u32::from(which) as usize; + >::mutate(when.into(), |items| if items.len() > which { items[which] = None }); Ok(()) } @@ -441,7 +441,7 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use primitives::BuildStorage; - use primitives::traits::{BlakeTwo256}; + use primitives::traits::{BlakeTwo256, IdentityLookup}; use primitives::testing::{Digest, DigestItem, Header}; const AYE: Vote = Vote(-1); @@ -469,14 +469,15 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = (); + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = (); } @@ -498,7 +499,6 @@ mod tests { existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, }.build_storage().unwrap().0); t.extend(GenesisConfig::{ launch_period: 1, @@ -555,7 +555,7 @@ mod tests { } fn set_balance_proposal(value: u64) -> Call { - Call::Balances(balances::Call::set_balance(balances::address::Address::Id(42), value.into(), 0.into())) + Call::Balances(balances::Call::set_balance(42, value.into(), 0.into())) } fn propose_set_balance(who: u64, value: u64, locked: u64) -> super::Result { diff --git a/srml/example/src/lib.rs b/srml/example/src/lib.rs index 8b14aae6ee..13ea7f9cdb 100644 --- a/srml/example/src/lib.rs +++ b/srml/example/src/lib.rs @@ -50,6 +50,7 @@ extern crate srml_system as system; // might find it useful). extern crate srml_balances as balances; +use codec::HasCompact; use support::{StorageValue, dispatch::Result}; use system::ensure_signed; @@ -177,9 +178,9 @@ decl_module! { // without worrying about gameability or attack scenarios. // If you not specify `Result` explicitly as return value, it will be added automatically // for you and `Ok(())` will be returned. - fn set_dummy(new_value: T::Balance) { + fn set_dummy(new_value: ::Type) { // Put the new value into storage. - >::put(new_value); + >::put(new_value.into()); } // The signature could also look like: `fn on_finalise()` @@ -269,7 +270,7 @@ mod tests { // The testing primitives are very useful for avoiding having to work with signatures // or public keys. `u64` is used as the `AccountId` and no `Signature`s are requried. use sr_primitives::{ - BuildStorage, traits::{BlakeTwo256, OnFinalise}, testing::{Digest, DigestItem, Header} + BuildStorage, traits::{BlakeTwo256, OnFinalise, IdentityLookup}, testing::{Digest, DigestItem, Header} }; impl_outer_origin! { @@ -289,14 +290,15 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = (); + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = (); } diff --git a/srml/executive/Cargo.toml b/srml/executive/Cargo.toml index ee956e9399..c51ab85c5c 100644 --- a/srml/executive/Cargo.toml +++ b/srml/executive/Cargo.toml @@ -16,6 +16,7 @@ srml-system = { path = "../system", default-features = false } [dev-dependencies] substrate-primitives = { path = "../../core/primitives" } +srml-indices = { path = "../indices" } srml-balances = { path = "../balances" } [features] diff --git a/srml/executive/src/lib.rs b/srml/executive/src/lib.rs index 005b8508db..35ea7c4a91 100644 --- a/srml/executive/src/lib.rs +++ b/srml/executive/src/lib.rs @@ -275,7 +275,7 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use primitives::BuildStorage; - use primitives::traits::{Header as HeaderT, BlakeTwo256}; + use primitives::traits::{Header as HeaderT, BlakeTwo256, IdentityLookup}; use primitives::testing::{Digest, DigestItem, Header, Block}; use system; @@ -301,20 +301,21 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = MetaEvent; type Log = DigestItem; } impl balances::Trait for Runtime { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = (); + type OnNewAccount = (); type EnsureAccountLiquid = (); type Event = MetaEvent; } type TestXt = primitives::testing::TestXt>; - type Executive = super::Executive, balances::ChainContext, balances::Module, ()>; + type Executive = super::Executive, system::ChainContext, balances::Module, ()>; #[test] fn balance_transfer_dispatch_works() { @@ -326,9 +327,8 @@ mod tests { existential_deposit: 0, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, }.build_storage().unwrap().0); - let xt = primitives::testing::TestXt(Some(1), 0, Call::transfer(2.into(), 69.into())); + let xt = primitives::testing::TestXt(Some(1), 0, Call::transfer(2, 69.into())); let mut t = runtime_io::TestExternalities::::new(t); with_externalities(&mut t, || { Executive::initialise_block(&Header::new(1, H256::default(), H256::default(), @@ -352,7 +352,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("d9e26179ed13b3df01e71ad0bf622d56f2066a63e04762a83c0ae9deeb4da1d0").into(), + state_root: hex!("49cd58a254ccf6abc4a023d9a22dcfc421e385527a250faec69f8ad0d8ed3e48").into(), extrinsics_root: hex!("03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314").into(), digest: Digest { logs: vec![], }, }, @@ -386,7 +386,7 @@ mod tests { header: Header { parent_hash: [69u8; 32].into(), number: 1, - state_root: hex!("d9e26179ed13b3df01e71ad0bf622d56f2066a63e04762a83c0ae9deeb4da1d0").into(), + state_root: hex!("49cd58a254ccf6abc4a023d9a22dcfc421e385527a250faec69f8ad0d8ed3e48").into(), extrinsics_root: [0u8; 32].into(), digest: Digest { logs: vec![], }, }, @@ -398,7 +398,7 @@ mod tests { #[test] fn bad_extrinsic_not_inserted() { let mut t = new_test_ext(); - let xt = primitives::testing::TestXt(Some(1), 42, Call::transfer(33.into(), 69.into())); + let xt = primitives::testing::TestXt(Some(1), 42, Call::transfer(33, 69.into())); with_externalities(&mut t, || { Executive::initialise_block(&Header::new(1, H256::default(), H256::default(), [69u8; 32].into(), Digest::default())); assert!(Executive::apply_extrinsic(xt).is_err()); diff --git a/srml/grandpa/src/mock.rs b/srml/grandpa/src/mock.rs index c263083892..380133ae80 100644 --- a/srml/grandpa/src/mock.rs +++ b/srml/grandpa/src/mock.rs @@ -18,7 +18,7 @@ #![cfg(test)] -use primitives::{BuildStorage, testing::{Digest, DigestItem, Header}}; +use primitives::{BuildStorage, traits::IdentityLookup, testing::{Digest, DigestItem, Header}}; use primitives::generic::DigestItem as GenDigestItem; use runtime_io; use substrate_primitives::{H256, Blake2Hasher}; @@ -51,6 +51,7 @@ impl system::Trait for Test { type Hashing = ::primitives::traits::BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = TestEvent; type Log = DigestItem; diff --git a/srml/indices/Cargo.toml b/srml/indices/Cargo.toml new file mode 100644 index 0000000000..6e51f6999f --- /dev/null +++ b/srml/indices/Cargo.toml @@ -0,0 +1,37 @@ +[package] +name = "srml-indices" +version = "0.1.0" +authors = ["Parity Technologies "] + +[dependencies] +hex-literal = "0.1.0" +serde = { version = "1.0", default-features = false } +safe-mix = { version = "1.0", default-features = false} +parity-codec = { version = "2.1", default-features = false } +parity-codec-derive = { version = "2.1", default-features = false } +substrate-keyring = { path = "../../core/keyring", optional = true } +substrate-primitives = { path = "../../core/primitives", default-features = false } +sr-std = { path = "../../core/sr-std", default-features = false } +sr-io = { path = "../../core/sr-io", default-features = false } +sr-primitives = { path = "../../core/sr-primitives", default-features = false } +srml-support = { path = "../support", default-features = false } +srml-system = { path = "../system", default-features = false } + +[dev-dependencies] +ref_thread_local = "0.0" + +[features] +default = ["std"] +std = [ + "serde/std", + "safe-mix/std", + "substrate-keyring", + "parity-codec/std", + "parity-codec-derive/std", + "substrate-primitives/std", + "sr-std/std", + "sr-io/std", + "srml-support/std", + "sr-primitives/std", + "srml-system/std", +] diff --git a/srml/balances/src/address.rs b/srml/indices/src/address.rs similarity index 100% rename from srml/balances/src/address.rs rename to srml/indices/src/address.rs diff --git a/srml/indices/src/lib.rs b/srml/indices/src/lib.rs new file mode 100644 index 0000000000..3aff9a555f --- /dev/null +++ b/srml/indices/src/lib.rs @@ -0,0 +1,222 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Balances: Handles setting and retrieval of free balance, +//! retrieving total balance, reserve and unreserve balance, +//! repatriating a reserved balance to a beneficiary account that exists, +//! transfering a balance between accounts (when not reserved), +//! slashing an account balance, account removal, rewards, +//! lookup of an index to reclaim an account (when not balance not reserved), +//! increasing total stake. + +#![cfg_attr(not(feature = "std"), no_std)] + +#[macro_use] +extern crate srml_support as runtime_support; + +extern crate sr_std as rstd; + +#[macro_use] +extern crate parity_codec_derive; + +extern crate parity_codec as codec; +extern crate sr_primitives as primitives; +extern crate srml_system as system; + +#[cfg(test)] +#[macro_use] +extern crate ref_thread_local; +#[cfg(test)] +extern crate sr_io as runtime_io; +#[cfg(test)] +extern crate substrate_primitives; + +use rstd::{prelude::*, result, marker::PhantomData}; +use codec::{Encode, Decode, Codec, Input, Output}; +use runtime_support::{StorageValue, StorageMap, Parameter}; +use primitives::traits::{One, SimpleArithmetic, As, StaticLookup, Member}; +use address::Address as RawAddress; +use system::{IsDeadAccount, OnNewAccount}; + +mod mock; + +pub mod address; +mod tests; + +/// Number of account IDs stored per enum set. +const ENUM_SET_SIZE: usize = 64; + +pub type Address = RawAddress<::AccountId, ::AccountIndex>; + +/// Turn an Id into an Index, or None for the purpose of getting +/// a hint at a possibly desired index. +pub trait ResolveHint> { + /// Turn an Id into an Index, or None for the purpose of getting + /// a hint at a possibly desired index. + fn resolve_hint(who: &AccountId) -> Option; +} + +/// Simple encode-based resolve hint implemenntation. +pub struct SimpleResolveHint(PhantomData<(AccountId, AccountIndex)>); +impl> ResolveHint for SimpleResolveHint { + fn resolve_hint(who: &AccountId) -> Option { + Some(AccountIndex::sa(who.using_encoded(|e| e[0] as usize + e[1] as usize * 256))) + } +} + +/// The module's config trait. +pub trait Trait: system::Trait { + /// Type used for storing an account's index; implies the maximum number of accounts the system + /// can hold. + type AccountIndex: Parameter + Member + Codec + Default + SimpleArithmetic + As + As + As + As + As + Copy; + + /// Whether an account is dead or not. + type IsDeadAccount: IsDeadAccount; + + /// How to turn an id into an index. + type ResolveHint: ResolveHint; + + /// The overarching event type. + type Event: From> + Into<::Event>; +} + +decl_module! { + pub struct Module for enum Call where origin: T::Origin { + fn deposit_event() = default; + } +} + +decl_event!( + pub enum Event where + ::AccountId, + ::AccountIndex + { + /// A new account was created. + NewAccountIndex(AccountId, AccountIndex), + } +); + +decl_storage! { + trait Store for Module as Indices { + /// The next free enumeration set. + pub NextEnumSet get(next_enum_set) build(|config: &GenesisConfig| { + T::AccountIndex::sa(config.ids.len() / ENUM_SET_SIZE) + }): T::AccountIndex; + + /// The enumeration sets. + pub EnumSet get(enum_set): map T::AccountIndex => Vec; + } + add_extra_genesis { + config(ids): Vec; + build(|storage: &mut primitives::StorageMap, _: &mut primitives::ChildrenStorageMap, config: &GenesisConfig| { + for i in 0..(config.ids.len() + ENUM_SET_SIZE - 1) / ENUM_SET_SIZE { + storage.insert(GenesisConfig::::hash(&>::key_for(T::AccountIndex::sa(i))).to_vec(), + config.ids[i * ENUM_SET_SIZE..config.ids.len().min((i + 1) * ENUM_SET_SIZE)].to_owned().encode()); + } + }); + } +} + +impl Module { + // PUBLIC IMMUTABLES + + /// Lookup an T::AccountIndex to get an Id, if there's one there. + pub fn lookup_index(index: T::AccountIndex) -> Option { + let enum_set_size = Self::enum_set_size(); + let set = Self::enum_set(index / enum_set_size); + let i: usize = (index % enum_set_size).as_(); + set.get(i).map(|x| x.clone()) + } + + /// `true` if the account `index` is ready for reclaim. + pub fn can_reclaim(try_index: T::AccountIndex) -> bool { + let enum_set_size = Self::enum_set_size(); + let try_set = Self::enum_set(try_index / enum_set_size); + let i = (try_index % enum_set_size).as_(); + i < try_set.len() && T::IsDeadAccount::is_dead_account(&try_set[i]) + } + + /// Lookup an address to get an Id, if there's one there. + pub fn lookup_address(a: address::Address) -> Option { + match a { + address::Address::Id(i) => Some(i), + address::Address::Index(i) => Self::lookup_index(i), + } + } + + // PUBLIC MUTABLES (DANGEROUS) + + fn enum_set_size() -> T::AccountIndex { + T::AccountIndex::sa(ENUM_SET_SIZE) + } +} + +impl OnNewAccount for Module { + fn on_new_account(who: &T::AccountId) { + let enum_set_size = Self::enum_set_size(); + let next_set_index = Self::next_enum_set(); + + if let Some(try_index) = T::ResolveHint::resolve_hint(who) { + // then check to see if this account id identifies a dead account index. + let set_index = try_index / enum_set_size; + let mut try_set = Self::enum_set(set_index); + let item_index = (try_index % enum_set_size).as_(); + if item_index < try_set.len() { + if T::IsDeadAccount::is_dead_account(&try_set[item_index]) { + // yup - this index refers to a dead account. can be reused. + try_set[item_index] = who.clone(); + >::insert(set_index, try_set); + + return + } + } + } + + // insert normally as a back up + let mut set_index = next_set_index; + // defensive only: this loop should never iterate since we keep NextEnumSet up to date later. + let mut set = loop { + let set = Self::enum_set(set_index); + if set.len() < ENUM_SET_SIZE { + break set; + } + set_index += One::one(); + }; + + let index = T::AccountIndex::sa(set_index.as_() * ENUM_SET_SIZE + set.len()); + + // update set. + set.push(who.clone()); + + // keep NextEnumSet up to date + if set.len() == ENUM_SET_SIZE { + >::put(set_index + One::one()); + } + + // write set. + >::insert(set_index, set); + + Self::deposit_event(RawEvent::NewAccountIndex(who.clone(), index)); + } +} + +impl StaticLookup for Module { + type Source = address::Address; + type Target = T::AccountId; + fn lookup(a: Self::Source) -> result::Result { + Self::lookup_address(a).ok_or("invalid account index") + } +} diff --git a/srml/indices/src/mock.rs b/srml/indices/src/mock.rs new file mode 100644 index 0000000000..8c8305fef8 --- /dev/null +++ b/srml/indices/src/mock.rs @@ -0,0 +1,102 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Test utilities + +#![cfg(test)] + +use std::collections::HashSet; +use ref_thread_local::RefThreadLocal; +use primitives::BuildStorage; +use primitives::testing::{Digest, DigestItem, Header}; +use substrate_primitives::{H256, Blake2Hasher}; +use runtime_io; +use {GenesisConfig, Module, Trait, system}; +use super::{IsDeadAccount, OnNewAccount, ResolveHint}; + +impl_outer_origin!{ + pub enum Origin for Runtime {} +} + +ref_thread_local! { + static managed ALIVE: HashSet = HashSet::new(); +} + +pub fn make_account(who: u64) { + ALIVE.borrow_mut().insert(who); + Indices::on_new_account(&who); +} + +pub fn kill_account(who: u64) { + ALIVE.borrow_mut().remove(&who); +} + +pub struct TestIsDeadAccount {} +impl IsDeadAccount for TestIsDeadAccount { + fn is_dead_account(who: &u64) -> bool { + !ALIVE.borrow_mut().contains(who) + } +} + +pub struct TestResolveHint; +impl ResolveHint for TestResolveHint { + fn resolve_hint(who: &u64) -> Option { + if *who < 256 { + None + } else { + Some(*who - 256) + } + } +} + +// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted. +#[derive(Clone, PartialEq, Eq, Debug)] +pub struct Runtime; +impl system::Trait for Runtime { + type Origin = Origin; + type Index = u64; + type BlockNumber = u64; + type Hash = H256; + type Hashing = ::primitives::traits::BlakeTwo256; + type Digest = Digest; + type AccountId = u64; + type Lookup = Indices; + type Header = Header; + type Event = (); + type Log = DigestItem; +} +impl Trait for Runtime { + type AccountIndex = u64; + type IsDeadAccount = TestIsDeadAccount; + type ResolveHint = TestResolveHint; + type Event = (); +} + +pub fn new_test_ext() -> runtime_io::TestExternalities { + { + let mut h = ALIVE.borrow_mut(); + h.clear(); + for i in 1..5 { h.insert(i); } + } + + let mut t = system::GenesisConfig::::default().build_storage().unwrap().0; + t.extend(GenesisConfig:: { + ids: vec![1, 2, 3, 4] + }.build_storage().unwrap().0); + t.into() +} + +pub type Indices = Module; diff --git a/srml/indices/src/tests.rs b/srml/indices/src/tests.rs new file mode 100644 index 0000000000..f16a93470d --- /dev/null +++ b/srml/indices/src/tests.rs @@ -0,0 +1,80 @@ +// Copyright 2017-2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! Tests for the module. + +#![cfg(test)] + +use super::*; +use mock::{Indices, new_test_ext, make_account, kill_account, TestIsDeadAccount}; +use runtime_io::with_externalities; + +#[test] +fn indexing_lookup_should_work() { + with_externalities( + &mut new_test_ext(), + || { + assert_eq!(Indices::lookup_index(0), Some(1)); + assert_eq!(Indices::lookup_index(1), Some(2)); + assert_eq!(Indices::lookup_index(2), Some(3)); + assert_eq!(Indices::lookup_index(3), Some(4)); + assert_eq!(Indices::lookup_index(4), None); + }, + ); +} + +#[test] +fn default_indexing_on_new_accounts_should_work() { + with_externalities( + &mut new_test_ext(), + || { + assert_eq!(Indices::lookup_index(4), None); + make_account(5); + assert_eq!(Indices::lookup_index(4), Some(5)); + }, + ); +} + +#[test] +fn reclaim_indexing_on_new_accounts_should_work() { + with_externalities( + &mut new_test_ext(), + || { + assert_eq!(Indices::lookup_index(1), Some(2)); + assert_eq!(Indices::lookup_index(4), None); + + kill_account(2); // index 1 no longer locked to id 2 + + make_account(1 + 256); // id 257 takes index 1. + assert_eq!(Indices::lookup_index(1), Some(257)); + }, + ); +} + +#[test] +fn alive_account_should_prevent_reclaim() { + with_externalities( + &mut new_test_ext(), + || { + assert!(!TestIsDeadAccount::is_dead_account(&2)); + assert_eq!(Indices::lookup_index(1), Some(2)); + assert_eq!(Indices::lookup_index(4), None); + + make_account(1 + 256); // id 257 takes index 1. + assert_eq!(Indices::lookup_index(4), Some(257)); + }, + ); +} diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index ea33395021..4e0c668f63 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -237,7 +237,7 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use primitives::BuildStorage; - use primitives::traits::BlakeTwo256; + use primitives::traits::{BlakeTwo256, IdentityLookup}; use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; impl_outer_origin!{ @@ -260,6 +260,7 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 70f71de152..031083b8c6 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -45,14 +45,12 @@ extern crate sr_io as runtime_io; #[cfg(test)] extern crate srml_timestamp as timestamp; -use rstd::prelude::*; -use rstd::cmp; +use rstd::{prelude::*, cmp}; use codec::{HasCompact, Compact}; -use runtime_support::{Parameter, StorageValue, StorageMap}; -use runtime_support::dispatch::Result; +use runtime_support::{Parameter, StorageValue, StorageMap, dispatch::Result}; use session::OnSessionChange; -use primitives::{Perbill, traits::{Zero, One, Bounded, As}}; -use balances::{address::Address, OnDilution}; +use primitives::{Perbill, traits::{Zero, One, Bounded, As, StaticLookup}}; +use balances::OnDilution; use system::ensure_signed; mod mock; @@ -130,9 +128,9 @@ decl_module! { Self::apply_unstake(&who, intentions_index as usize) } - fn nominate(origin, target: Address) { + fn nominate(origin, target: ::Source) { let who = ensure_signed(origin)?; - let target = >::lookup(target)?; + let target = T::Lookup::lookup(target)?; ensure!(Self::nominating(&who).is_none(), "Cannot nominate if already nominating."); ensure!(Self::intentions().iter().find(|&t| t == &who).is_none(), "Cannot nominate if already staked."); diff --git a/srml/staking/src/mock.rs b/srml/staking/src/mock.rs index b6efce154d..752922da03 100644 --- a/srml/staking/src/mock.rs +++ b/srml/staking/src/mock.rs @@ -18,8 +18,7 @@ #![cfg(test)] -use primitives::BuildStorage; -use primitives::Perbill; +use primitives::{traits::IdentityLookup, BuildStorage, Perbill}; use primitives::testing::{Digest, DigestItem, Header, UintAuthorityId, ConvertUintAuthorityId}; use substrate_primitives::{H256, Blake2Hasher}; use runtime_io; @@ -46,14 +45,15 @@ impl system::Trait for Test { type Hashing = ::primitives::traits::BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; type OnFreeBalanceZero = Staking; + type OnNewAccount = (); type EnsureAccountLiquid = Staking; type Event = (); } @@ -109,7 +109,6 @@ pub fn new_test_ext( existential_deposit: ext_deposit, transfer_fee: 0, creation_fee: 0, - reclaim_rebate: 0, }.build_storage().unwrap().0); t.extend(GenesisConfig::{ sessions_per_era, diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index fc3209bae3..5601cff5f6 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -38,7 +38,7 @@ fn note_null_offline_should_work() { #[test] fn invulnerability_should_work() { with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { - Staking::set_invulnerables(vec![10]); + assert_ok!(Staking::set_invulnerables(vec![10])); Balances::set_free_balance(&10, 70); assert_eq!(Staking::offline_slash_grace(), 0); assert_eq!(Staking::slash_count(&10), 0); @@ -284,7 +284,7 @@ fn staking_should_work() { // Block 5: Transfer stake from highest to lowest. No change yet. System::set_block_number(5); - assert_ok!(Balances::transfer(Origin::signed(4), 1.into(), 40.into())); + assert_ok!(Balances::transfer(Origin::signed(4), 1, 40.into())); Session::check_rotate_session(System::block_number()); // Block 6: Lowest now validator. @@ -317,7 +317,7 @@ fn nominating_and_rewards_should_work() { assert_ok!(Staking::stake(Origin::signed(1))); assert_ok!(Staking::stake(Origin::signed(2))); assert_ok!(Staking::stake(Origin::signed(3))); - assert_ok!(Staking::nominate(Origin::signed(4), 1.into())); + assert_ok!(Staking::nominate(Origin::signed(4), 1)); Session::check_rotate_session(System::block_number()); assert_eq!(Staking::current_era(), 1); assert_eq!(Session::validators(), vec![1, 3]); // 4 + 1, 3 @@ -339,7 +339,7 @@ fn nominating_and_rewards_should_work() { System::set_block_number(3); assert_ok!(Staking::stake(Origin::signed(4))); assert_ok!(Staking::unstake(Origin::signed(3), (Staking::intentions().iter().position(|&x| x == 3).unwrap() as u32).into())); - assert_ok!(Staking::nominate(Origin::signed(3), 1.into())); + assert_ok!(Staking::nominate(Origin::signed(3), 1)); Session::check_rotate_session(System::block_number()); assert_eq!(Session::validators(), vec![1, 4]); assert_eq!(Balances::total_balance(&1), 16); @@ -361,7 +361,7 @@ fn rewards_with_off_the_table_should_work() { with_externalities(&mut new_test_ext(0, 1, 1, 0, true, 10), || { System::set_block_number(1); assert_ok!(Staking::stake(Origin::signed(1))); - assert_ok!(Staking::nominate(Origin::signed(2), 1.into())); + assert_ok!(Staking::nominate(Origin::signed(2), 1)); assert_ok!(Staking::stake(Origin::signed(3))); Session::check_rotate_session(System::block_number()); assert_eq!(Session::validators(), vec![1, 3]); // 1 + 2, 3 @@ -397,8 +397,8 @@ fn nominating_slashes_should_work() { System::set_block_number(4); assert_ok!(Staking::stake(Origin::signed(1))); assert_ok!(Staking::stake(Origin::signed(3))); - assert_ok!(Staking::nominate(Origin::signed(2), 3.into())); - assert_ok!(Staking::nominate(Origin::signed(4), 1.into())); + assert_ok!(Staking::nominate(Origin::signed(2), 3)); + assert_ok!(Staking::nominate(Origin::signed(4), 1)); Session::check_rotate_session(System::block_number()); assert_eq!(Staking::current_era(), 1); @@ -426,10 +426,10 @@ fn double_staking_should_fail() { System::set_block_number(1); assert_ok!(Staking::stake(Origin::signed(1))); assert_noop!(Staking::stake(Origin::signed(1)), "Cannot stake if already staked."); - assert_noop!(Staking::nominate(Origin::signed(1), 1.into()), "Cannot nominate if already staked."); - assert_ok!(Staking::nominate(Origin::signed(2), 1.into())); + assert_noop!(Staking::nominate(Origin::signed(1), 1), "Cannot nominate if already staked."); + assert_ok!(Staking::nominate(Origin::signed(2), 1)); assert_noop!(Staking::stake(Origin::signed(2)), "Cannot stake if already nominating."); - assert_noop!(Staking::nominate(Origin::signed(2), 1.into()), "Cannot nominate if already nominating."); + assert_noop!(Staking::nominate(Origin::signed(2), 1), "Cannot nominate if already nominating."); }); } @@ -506,7 +506,7 @@ fn staking_balance_transfer_when_bonded_should_not_work() { with_externalities(&mut new_test_ext(0, 1, 3, 1, false, 0), || { Balances::set_free_balance(&1, 111); assert_ok!(Staking::stake(Origin::signed(1))); - assert_noop!(Balances::transfer(Origin::signed(1), 2.into(), 69.into()), "cannot transfer illiquid funds"); + assert_noop!(Balances::transfer(Origin::signed(1), 2, 69.into()), "cannot transfer illiquid funds"); }); } diff --git a/srml/sudo/src/lib.rs b/srml/sudo/src/lib.rs index ca4859a4d3..0ce66f3df6 100644 --- a/srml/sudo/src/lib.rs +++ b/srml/sudo/src/lib.rs @@ -35,6 +35,7 @@ extern crate srml_system as system; extern crate srml_consensus as consensus; use sr_std::prelude::*; +use sr_primitives::traits::StaticLookup; use support::{StorageValue, Parameter, Dispatchable}; use system::ensure_signed; @@ -60,10 +61,11 @@ decl_module! { Self::deposit_event(RawEvent::Sudid(ok)); } - fn set_key(origin, new: T::AccountId) { + fn set_key(origin, new: ::Source) { // This is a public call, so we ensure that the origin is some signed account. let sender = ensure_signed(origin)?; ensure!(sender == Self::key(), "only the current sudo key can change the sudo key"); + let new = T::Lookup::lookup(new)?; Self::deposit_event(RawEvent::KeyChanged(Self::key())); >::put(new); diff --git a/srml/system/src/lib.rs b/srml/system/src/lib.rs index 67b10e2639..93ccd85c67 100644 --- a/srml/system/src/lib.rs +++ b/srml/system/src/lib.rs @@ -38,7 +38,7 @@ extern crate safe_mix; use rstd::prelude::*; use primitives::traits::{self, CheckEqual, SimpleArithmetic, SimpleBitOps, Zero, One, Bounded, Lookup, Hash, Member, MaybeDisplay, EnsureOrigin, Digest as DigestT, As, CurrentHeight, BlockNumberToHash, - MaybeSerializeDebugButNotDeserialize, MaybeSerializeDebug}; + MaybeSerializeDebugButNotDeserialize, MaybeSerializeDebug, StaticLookup}; use substrate_primitives::storage::well_known_keys; use runtime_support::{storage, StorageValue, StorageMap, Parameter}; use safe_mix::TripletMix; @@ -52,6 +52,28 @@ use runtime_io::{twox_128, TestExternalities, Blake2Hasher}; #[cfg(any(feature = "std", test))] use substrate_primitives::ChangesTrieConfiguration; +/// Handler for when a new account has been created. +pub trait OnNewAccount { + /// A new account `who` has been registered. + fn on_new_account(who: &AccountId); +} + +impl OnNewAccount for () { + fn on_new_account(_who: &AccountId) {} +} + +/// Determinator to say whether a given account is unused. +pub trait IsDeadAccount { + /// Is the given account dead? + fn is_dead_account(who: &AccountId) -> bool; +} + +impl IsDeadAccount for () { + fn is_dead_account(_who: &AccountId) -> bool { + true + } +} + /// Compute the extrinsics root of a list of extrinsics. pub fn extrinsics_root(extrinsics: &[E]) -> H::Output { extrinsics_data_root::(extrinsics.iter().map(codec::Encode::encode).collect()) @@ -71,6 +93,7 @@ pub trait Trait: 'static + Eq + Clone { type Hashing: Hash; type Digest: Parameter + Member + MaybeSerializeDebugButNotDeserialize + Default + traits::Digest; type AccountId: Parameter + Member + MaybeSerializeDebug + MaybeDisplay + Ord + Default; + type Lookup: StaticLookup; type Header: Parameter + traits::Header< Number = Self::BlockNumber, Hash = Self::Hash, @@ -400,10 +423,10 @@ impl Default for ChainContext { } impl Lookup for ChainContext { - type Source = T::AccountId; - type Target = T::AccountId; + type Source = ::Source; + type Target = ::Target; fn lookup(&self, s: Self::Source) -> rstd::result::Result { - Ok(s) + ::lookup(s) } } @@ -428,7 +451,7 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::H256; use primitives::BuildStorage; - use primitives::traits::BlakeTwo256; + use primitives::traits::{BlakeTwo256, IdentityLookup}; use primitives::testing::{Digest, DigestItem, Header}; impl_outer_origin!{ @@ -445,6 +468,7 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = u16; type Log = DigestItem; diff --git a/srml/timestamp/src/lib.rs b/srml/timestamp/src/lib.rs index 27dcc81bab..71bf6ebded 100644 --- a/srml/timestamp/src/lib.rs +++ b/srml/timestamp/src/lib.rs @@ -195,7 +195,7 @@ mod tests { use runtime_io::{with_externalities, TestExternalities}; use substrate_primitives::H256; use runtime_primitives::BuildStorage; - use runtime_primitives::traits::BlakeTwo256; + use runtime_primitives::traits::{BlakeTwo256, IdentityLookup}; use runtime_primitives::testing::{Digest, DigestItem, Header, UintAuthorityId}; impl_outer_origin! { @@ -212,6 +212,7 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; diff --git a/srml/treasury/src/lib.rs b/srml/treasury/src/lib.rs index c919c5e959..3cc1a3c491 100644 --- a/srml/treasury/src/lib.rs +++ b/srml/treasury/src/lib.rs @@ -40,9 +40,9 @@ extern crate srml_balances as balances; use rstd::prelude::*; use runtime_support::{StorageValue, StorageMap}; -use runtime_primitives::{Permill, traits::{Zero, EnsureOrigin}}; +use runtime_primitives::{Permill, traits::{Zero, EnsureOrigin, StaticLookup}}; use codec::{HasCompact, Compact}; -use balances::{OnDilution, address::Address}; +use balances::OnDilution; use system::ensure_signed; /// Our module's configuration trait. All our types and consts go in here. If the @@ -75,10 +75,10 @@ decl_module! { fn propose_spend( origin, value: ::Type, - beneficiary: Address + beneficiary: ::Source ) { let proposer = ensure_signed(origin)?; - let beneficiary = >::lookup(beneficiary)?; + let beneficiary = T::Lookup::lookup(beneficiary)?; let value = value.into(); let bond = Self::calculate_bond(value); @@ -273,7 +273,7 @@ mod tests { use runtime_io::with_externalities; use substrate_primitives::{H256, Blake2Hasher}; use runtime_primitives::BuildStorage; - use runtime_primitives::traits::{BlakeTwo256, OnFinalise}; + use runtime_primitives::traits::{BlakeTwo256, OnFinalise, IdentityLookup}; use runtime_primitives::testing::{Digest, DigestItem, Header}; impl_outer_origin! { @@ -290,13 +290,14 @@ mod tests { type Hashing = BlakeTwo256; type Digest = Digest; type AccountId = u64; + type Lookup = IdentityLookup; type Header = Header; type Event = (); type Log = DigestItem; } impl balances::Trait for Test { type Balance = u64; - type AccountIndex = u64; + type OnNewAccount = (); type OnFreeBalanceZero = (); type EnsureAccountLiquid = (); type Event = (); @@ -318,7 +319,6 @@ mod tests { transfer_fee: 0, creation_fee: 0, existential_deposit: 0, - reclaim_rebate: 0, }.build_storage().unwrap().0); t.extend(GenesisConfig::{ proposal_bond: Permill::from_percent(5), @@ -353,7 +353,7 @@ mod tests { #[test] fn spend_proposal_takes_min_deposit() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Treasury::propose_spend(Origin::signed(0), 1.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 1.into(), 3)); assert_eq!(Balances::free_balance(&0), 99); assert_eq!(Balances::reserved_balance(&0), 1); }); @@ -362,7 +362,7 @@ mod tests { #[test] fn spend_proposal_takes_proportional_deposit() { with_externalities(&mut new_test_ext(), || { - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_eq!(Balances::free_balance(&0), 95); assert_eq!(Balances::reserved_balance(&0), 5); }); @@ -371,7 +371,7 @@ mod tests { #[test] fn spend_proposal_fails_when_proposer_poor() { with_externalities(&mut new_test_ext(), || { - assert_noop!(Treasury::propose_spend(Origin::signed(2), 100.into(), Address::Id(3)), "Proposer's balance too low"); + assert_noop!(Treasury::propose_spend(Origin::signed(2), 100.into(), 3), "Proposer's balance too low"); }); } @@ -380,7 +380,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_ok!(Treasury::approve_proposal(Origin::ROOT, 0.into())); >::on_finalise(1); @@ -404,7 +404,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_ok!(Treasury::reject_proposal(Origin::ROOT, 0.into())); >::on_finalise(2); @@ -418,7 +418,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_ok!(Treasury::reject_proposal(Origin::ROOT, 0.into())); assert_noop!(Treasury::reject_proposal(Origin::ROOT, 0.into()), "No proposal at that index"); }); @@ -443,7 +443,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_ok!(Treasury::reject_proposal(Origin::ROOT, 0.into())); assert_noop!(Treasury::approve_proposal(Origin::ROOT, 0.into()), "No proposal at that index"); }); @@ -454,7 +454,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 100.into(), 3)); assert_ok!(Treasury::approve_proposal(Origin::ROOT, 0.into())); >::on_finalise(2); @@ -468,7 +468,7 @@ mod tests { with_externalities(&mut new_test_ext(), || { Treasury::on_dilution(100, 100); - assert_ok!(Treasury::propose_spend(Origin::signed(0), 150.into(), Address::Id(3))); + assert_ok!(Treasury::propose_spend(Origin::signed(0), 150.into(), 3)); assert_ok!(Treasury::approve_proposal(Origin::ROOT, 0.into())); >::on_finalise(2); diff --git a/srml/upgrade-key/src/lib.rs b/srml/upgrade-key/src/lib.rs index 2b4470a9f3..1b10d3a3d3 100644 --- a/srml/upgrade-key/src/lib.rs +++ b/srml/upgrade-key/src/lib.rs @@ -35,6 +35,7 @@ extern crate srml_system as system; extern crate srml_consensus as consensus; use sr_std::prelude::*; +use sr_primitives::traits::StaticLookup; use support::StorageValue; use system::ensure_signed; @@ -56,10 +57,11 @@ decl_module! { Self::deposit_event(RawEvent::Upgraded); } - fn set_key(origin, new: T::AccountId) { + fn set_key(origin, new: ::Source) { // This is a public call, so we ensure that the origin is some signed account. let _sender = ensure_signed(origin)?; ensure!(_sender == Self::key(), "only the current upgrade key can use the upgrade_key module"); + let new = T::Lookup::lookup(new)?; Self::deposit_event(RawEvent::KeyChanged(Self::key())); >::put(new); -- GitLab From 553e78d0fe7f3dc29d56454de3b71f6893a16a1a Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Wed, 16 Jan 2019 16:59:24 +0100 Subject: [PATCH 072/349] Update libp2p-kad and libp2p-secio (#1447) * Update libp2p-kad and libp2p-secio * Fix concern --- Cargo.lock | 15 ++++++++------- core/network-libp2p/src/behaviour.rs | 16 ++++++++++++++-- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d61a4f1235..8678339ce2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1227,13 +1227,13 @@ dependencies = [ "libp2p-dns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-floodsub 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-identify 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-kad 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-kad 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-mdns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-mplex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-ping 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-plaintext 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-ratelimit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-secio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-secio 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-tcp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-uds 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-yamux 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1333,7 +1333,7 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1439,7 +1439,7 @@ dependencies = [ [[package]] name = "libp2p-secio" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1449,6 +1449,7 @@ dependencies = [ "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4185,7 +4186,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4625,13 +4626,13 @@ dependencies = [ "checksum libp2p-dns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f7ad92f9711efece48bb7ce30e3f1e662cd3524dc5d9f96b8f68b6e4e7cde96" "checksum libp2p-floodsub 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4feda0ff3afcf84dfee9ea088835293829d199a34491d7f0990a4ccfd627816c" "checksum libp2p-identify 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "548f9180101bd5846f4f60e060a00032ba3671a77fc735c48a85b7d1016d28ef" -"checksum libp2p-kad 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e06312d4a1655d2d531b2f9293039a66d6e89854e11ef3eac6d2f9137cae99f0" +"checksum libp2p-kad 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "91c28bf179a22fd1bfa3bad28ed86b8657ed2d193b76caa6f632ea83356d3a40" "checksum libp2p-mdns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1bbcb82063545605abf697967d919d418b1725f7d3688973fa26c98f81e8cda8" "checksum libp2p-mplex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9406ea58ce4fef47820f7d2d6aa62b7e42b4972c30cc87de577d4da40852d4b1" "checksum libp2p-ping 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1ca7b60c2edb0cae7f9db56fbe6c21ca6960e96ec92cd1ed265ac06db24a1fe" "checksum libp2p-plaintext 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bdbdd4700d5edea10214e4733ab5ac5be87862bac8a9b259c987bc9c15004" "checksum libp2p-ratelimit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d3001ea6afed5ccd1e5934715aa388b60b23e7587117db36b89d697e8ea43ff3" -"checksum libp2p-secio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8a066857eeadf4e632d0c2aedab66022bee02daf21bb60b4ce45977082c8196a" +"checksum libp2p-secio 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc2bee2dce0d0d054d81447b06f7e923f1a98e6b240e42674e0fdf2e4a4924f" "checksum libp2p-tcp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcb2bcb9402f5fe42441dd4558306ff83a28624f67c6066bdbaa98928c180e3" "checksum libp2p-uds 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3e88ac8f419f8d9487aaee9ef8785f592b37d78067c6764fe0adc1874a72c6c" "checksum libp2p-yamux 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71b4fd69a1c038152d017366d759177e2580fb4fbb56ce65429a642e011a07b1" diff --git a/core/network-libp2p/src/behaviour.rs b/core/network-libp2p/src/behaviour.rs index ccaab248ff..e4e90b2c68 100644 --- a/core/network-libp2p/src/behaviour.rs +++ b/core/network-libp2p/src/behaviour.rs @@ -145,9 +145,21 @@ impl NetworkBehaviourEventProcess for Behaviour NetworkBehaviourEventProcess for Behaviour { - fn inject_event(&mut self, _: KademliaOut) { + fn inject_event(&mut self, out: KademliaOut) { // We only ever use Kademlia for discovering nodes, and nodes discovered by Kademlia are - // automatically added to the topology. Therefore we don't need to do anything. + // automatically added to the topology. Therefore we don't need to perform any further + // action. + match out { + KademliaOut::FindNodeResult { key, closer_peers } => { + trace!(target: "sub-libp2p", "Kademlia query for {:?} yielded {:?} results", + key, closer_peers.len()); + if closer_peers.is_empty() { + warn!(target: "sub-libp2p", "Kademlia random query has yielded empty results"); + } + } + // We never start any GET_PROVIDERS query. + KademliaOut::GetProvidersResult { .. } => () + } } } -- GitLab From c2e498f7bb6fd2d044d4ba40bdd15852c4b62e8c Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Thu, 17 Jan 2019 10:22:45 +0300 Subject: [PATCH 073/349] fix tests by rebuilding wasm(s) (#1463) --- .../substrate_test_runtime.compact.wasm | Bin 46029 -> 46028 bytes .../release/node_runtime.compact.wasm | Bin 805748 -> 804401 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 6fc6c1fbd0f5d3a63b525e1d2080d8fe5d379bd5..3b32eaae5b4fceef8dc3368b0ffa18a0fd59d501 100644 GIT binary patch delta 2301 zcmZuxYit$A72erQIv`XN+uzpq7Z6gY)Bg8Ra2`PUPn-H;cTmRv#c&kKKv3Tw1tGi~M@ zHLADxVKkwx7O%@YUVu_P>TH_C<)z~(R2_d_zO0};iOe?(jRXtL0;48goqZp{>c1B@ zB(Q9;U6h4IqZCF4f(ml;jEd>t34LO)67)v`A$f2s%Mv(-Nkd3_n$&=tvGQ9p$OP9!@rRoxiqXi+ zyXLFwa*=ve<*BJ{f4@r<%3seqpVf>WfpVyEpH`fkYsNRcK^={#AB2yC;v3;6aN_2U z-=@&W@UDl_Apha+6;P&X?pUc_>S!#?{pSTpWaLKTKR-JK<*BQC--G2N`?f&r$NSPr z?D+oGs4C7L7y~C!S9I_&>Q~1OE^O>iRMaLaW-fj`G$Ugyo~sG25+$!8H>y57*bQph z4oxKrhaQ`+o_KE5oTL73w%j#s<_+aW{LGlB>9@hd0cLG--380J&29)h|0L>YT9pLT?hOLU=`ra)Xe%n!OwvI zJHSPNlW9Y1R_00CvmLDEz)YoPGH(Ps$smBQpTlpx&0m2y_#W=W@3_s6LHts%r!xa8 z7=QC zT9vfK1bh;(0&(3F>g7AR4dg{~vPcKvBKU!G&#T_bh`c3t4<=Ylrv_#gfG}WyW?Is zs;V*+u8Si_+OB0;lv>##r2cgA9(D1}-U^pT#ExK>Ep6_5Y~gb%Hq zrTW#t5+kw#m(Wl|GJxVjrrtll+#tjbnH8}>aA6bZz~uRRDloy4IE?t1MwS%rvQ=tg zAY0ko+`%IzXyB0u%g7e4qn;SpTozd*U>^0L|I%kvy*E&6;4lg$;eNzez@orbw+8CV zFb*8ST`b`qeLqt74%U^2p+g80R_IfV!@#doy9d@9n1d4r*s;0rU2Lnj2GDH(=$ z=XvUzm(ChdNTCZ7V~JVBsH0X5w;0qD(h8XeQXDA)SAAo+)(}x3sV^)>A}J`eXK=XA zV3HFqT}d%xPUHsa`YZm`9D;id=UTu delta 2269 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 SlbiX_PxN-GznvOx^?v~BFkAls -- GitLab From 07f4fb4129cee85c061634671cfab943dbf932e6 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 17 Jan 2019 09:33:39 +0100 Subject: [PATCH 074/349] Remove warning for large buffer (#1357) --- core/network-libp2p/src/custom_proto/upgrade.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/network-libp2p/src/custom_proto/upgrade.rs b/core/network-libp2p/src/custom_proto/upgrade.rs index 94bc657902..4bc52c2130 100644 --- a/core/network-libp2p/src/custom_proto/upgrade.rs +++ b/core/network-libp2p/src/custom_proto/upgrade.rs @@ -111,7 +111,9 @@ impl RegisteredProtocolSubstream { // If the length of the queue goes over a certain arbitrary threshold, we print a warning. if self.send_queue.len() >= 2048 { - warn!(target: "sub-libp2p", "Queue of packets to send over substream is pretty \ + // TODO: this used to be a warning, but is now a `debug` in order to avoid too much + // noise in the logs; see https://github.com/paritytech/substrate/issues/1414 + debug!(target: "sub-libp2p", "Queue of packets to send over substream is pretty \ large: {}", self.send_queue.len()); } } -- GitLab From 81740bb5a40376b2bbc889e7d8683df4e4e7630c Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Thu, 17 Jan 2019 12:08:50 +0300 Subject: [PATCH 075/349] Use changes tries in query_storage RPC (#1082) * use changes tries in query_storage RPC * let + match + return + call -> match --- core/client/db/src/lib.rs | 19 +- core/client/src/backend.rs | 9 +- core/client/src/client.rs | 81 ++++-- core/client/src/in_mem.rs | 32 ++- core/client/src/light/backend.rs | 5 +- core/client/src/light/fetcher.rs | 12 +- core/network/src/chain.rs | 6 +- core/network/src/protocol.rs | 6 +- core/rpc/src/state/mod.rs | 249 +++++++++++++----- core/rpc/src/state/tests.rs | 139 ++++++---- .../src/changes_trie/changes_iterator.rs | 39 +-- core/state-machine/src/changes_trie/mod.rs | 2 +- core/state-machine/src/changes_trie/prune.rs | 35 +++ core/state-machine/src/lib.rs | 3 +- 14 files changed, 445 insertions(+), 192 deletions(-) diff --git a/core/client/db/src/lib.rs b/core/client/db/src/lib.rs index f663cc0834..944540b98b 100644 --- a/core/client/db/src/lib.rs +++ b/core/client/db/src/lib.rs @@ -430,7 +430,7 @@ impl DbChangesTrieStorage { } /// Prune obsolete changes tries. - pub fn prune(&self, config: Option, tx: &mut DBTransaction, block_hash: Block::Hash, block_num: NumberFor) { + pub fn prune(&self, config: Option, tx: &mut DBTransaction, block_hash: Block::Hash, block_num: NumberFor) { // never prune on archive nodes let min_blocks_to_keep = match self.min_blocks_to_keep { Some(min_blocks_to_keep) => min_blocks_to_keep, @@ -456,6 +456,23 @@ impl DbChangesTrieStorage { } } +impl client::backend::PrunableStateChangesTrieStorage for DbChangesTrieStorage { + fn oldest_changes_trie_block( + &self, + config: &ChangesTrieConfiguration, + best_finalized_block: u64 + ) -> u64 { + match self.min_blocks_to_keep { + Some(min_blocks_to_keep) => state_machine::oldest_non_pruned_changes_trie( + config, + min_blocks_to_keep, + best_finalized_block, + ), + None => 1, + } + } +} + impl state_machine::ChangesTrieRootsStorage for DbChangesTrieStorage { fn root(&self, anchor: &state_machine::ChangesTrieAnchorBlockId, block: u64) -> Result, String> { // check API requirement diff --git a/core/client/src/backend.rs b/core/client/src/backend.rs index 6e65f289ad..b4040f59a9 100644 --- a/core/client/src/backend.rs +++ b/core/client/src/backend.rs @@ -17,6 +17,7 @@ //! Substrate Client data backend use crate::error; +use primitives::ChangesTrieConfiguration; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; use runtime_primitives::traits::{AuthorityIdFor, Block as BlockT, NumberFor}; use state_machine::backend::Backend as StateBackend; @@ -113,7 +114,7 @@ pub trait Backend: AuxStore + Send + Sync where /// Associated state backend type. type State: StateBackend; /// Changes trie storage. - type ChangesTrieStorage: StateChangesTrieStorage; + type ChangesTrieStorage: PrunableStateChangesTrieStorage; /// Begin a new block insertion transaction with given parent block id. /// When constructing the genesis, this is called with all-zero hash. @@ -154,6 +155,12 @@ pub trait Backend: AuxStore + Send + Sync where } } +/// Changes trie storage that supports pruning. +pub trait PrunableStateChangesTrieStorage: StateChangesTrieStorage { + /// Get number block of oldest, non-pruned changes trie. + fn oldest_changes_trie_block(&self, config: &ChangesTrieConfiguration, best_finalized: u64) -> u64; +} + /// Mark for all Backend implementations, that are making use of state data, stored locally. pub trait LocalBackend: Backend where diff --git a/core/client/src/client.rs b/core/client/src/client.rs index f365c61c1f..010912e75f 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -42,7 +42,7 @@ use state_machine::{ key_changes, key_changes_proof, OverlayedChanges }; -use crate::backend::{self, BlockImportOperation}; +use crate::backend::{self, BlockImportOperation, PrunableStateChangesTrieStorage}; use crate::blockchain::{self, Info as ChainInfo, Backend as ChainBackend, HeaderBackend as ChainHeaderBackend}; use crate::call_executor::{CallExecutor, LocalCallExecutor}; use executor::{RuntimeVersion, RuntimeInfo}; @@ -355,35 +355,54 @@ impl Client where Ok((header, proof)) } + /// Get longest range within [first; last] that is possible to use in `key_changes` + /// and `key_changes_proof` calls. + /// Range could be shortened from the beginning if some changes tries have been pruned. + /// Returns Ok(None) if changes trues are not supported. + pub fn max_key_changes_range( + &self, + first: NumberFor, + last: BlockId, + ) -> error::Result, BlockId)>> { + let (config, storage) = match self.require_changes_trie().ok() { + Some((config, storage)) => (config, storage), + None => return Ok(None), + }; + let first = first.as_(); + let last_num = self.backend.blockchain().expect_block_number_from_id(&last)?.as_(); + if first > last_num { + return Err(error::ErrorKind::ChangesTrieAccessFailed("Invalid changes trie range".into()).into()); + } + let finalized_number = self.backend.blockchain().info()?.finalized_number; + let oldest = storage.oldest_changes_trie_block(&config, finalized_number.as_()); + let first = As::sa(::std::cmp::max(first, oldest)); + Ok(Some((first, last))) + } + /// Get pairs of (block, extrinsic) where key has been changed at given blocks range. /// Works only for runtimes that are supporting changes tries. pub fn key_changes( &self, - first: Block::Hash, - last: Block::Hash, - key: &[u8] + first: NumberFor, + last: BlockId, + key: &StorageKey ) -> error::Result, u32)>> { - let config = self.changes_trie_config()?; - let storage = self.backend.changes_trie_storage(); - let (config, storage) = match (config, storage) { - (Some(config), Some(storage)) => (config, storage), - _ => return Err(error::ErrorKind::ChangesTriesNotSupported.into()), - }; + let (config, storage) = self.require_changes_trie()?; + let last_number = self.backend.blockchain().expect_block_number_from_id(&last)?.as_(); + let last_hash = self.backend.blockchain().expect_block_hash_from_id(&last)?; - let first_number = self.backend.blockchain().expect_block_number_from_id(&BlockId::Hash(first))?.as_(); - let last_number = self.backend.blockchain().expect_block_number_from_id(&BlockId::Hash(last))?.as_(); key_changes::<_, Blake2Hasher>( &config, - storage, - first_number, + &*storage, + first.as_(), &ChangesTrieAnchorBlockId { - hash: convert_hash(&last), + hash: convert_hash(&last_hash), number: last_number, }, self.backend.blockchain().info()?.best_number.as_(), - key) + &key.0) + .and_then(|r| r.map(|r| r.map(|(block, tx)| (As::sa(block), tx))).collect::>()) .map_err(|err| error::ErrorKind::ChangesTrieAccessFailed(err).into()) - .map(|r| r.into_iter().map(|(b, e)| (As::sa(b), e)).collect()) } /// Get proof for computation of (block, extrinsic) pairs where key has been changed at given blocks range. @@ -398,7 +417,7 @@ impl Client where last: Block::Hash, min: Block::Hash, max: Block::Hash, - key: &[u8] + key: &StorageKey ) -> error::Result> { self.key_changes_proof_with_cht_size( first, @@ -417,7 +436,7 @@ impl Client where last: Block::Hash, min: Block::Hash, max: Block::Hash, - key: &[u8], + key: &StorageKey, cht_size: u64, ) -> error::Result> { struct AccessedRootsRecorder<'a, Block: BlockT> { @@ -447,14 +466,9 @@ impl Client where } } - let config = self.changes_trie_config()?; - let storage = self.backend.changes_trie_storage(); - let (config, storage) = match (config, storage) { - (Some(config), Some(storage)) => (config, storage), - _ => return Err(error::ErrorKind::ChangesTriesNotSupported.into()), - }; - + let (config, storage) = self.require_changes_trie()?; let min_number = self.backend.blockchain().expect_block_number_from_id(&BlockId::Hash(min))?; + let recording_storage = AccessedRootsRecorder:: { storage, min: min_number.as_(), @@ -478,7 +492,7 @@ impl Client where number: last_number, }, max_number.as_(), - key + &key.0 ) .map_err(|err| error::Error::from(error::ErrorKind::ChangesTrieAccessFailed(err)))?; @@ -528,6 +542,16 @@ impl Client where Ok(proof) } + /// Returns changes trie configuration and storage or an error if it is not supported. + fn require_changes_trie(&self) -> error::Result<(ChangesTrieConfiguration, &B::ChangesTrieStorage)> { + let config = self.changes_trie_config()?; + let storage = self.backend.changes_trie_storage(); + match (config, storage) { + (Some(config), Some(storage)) => Ok((config, storage)), + _ => Err(error::ErrorKind::ChangesTriesNotSupported.into()), + } + } + /// Create a new block, built on the head of the chain. pub fn new_block( &self @@ -1713,9 +1737,8 @@ pub(crate) mod tests { let (client, _, test_cases) = prepare_client_with_key_changes(); for (index, (begin, end, key, expected_result)) in test_cases.into_iter().enumerate() { - let begin = client.block_hash(begin).unwrap().unwrap(); let end = client.block_hash(end).unwrap().unwrap(); - let actual_result = client.key_changes(begin, end, &key).unwrap(); + let actual_result = client.key_changes(begin, BlockId::Hash(end), &StorageKey(key)).unwrap(); match actual_result == expected_result { true => (), false => panic!(format!("Failed test {}: actual = {:?}, expected = {:?}", diff --git a/core/client/src/in_mem.rs b/core/client/src/in_mem.rs index 114849ca6c..d5065d7641 100644 --- a/core/client/src/in_mem.rs +++ b/core/client/src/in_mem.rs @@ -22,14 +22,14 @@ use parking_lot::RwLock; use crate::error; use crate::backend::{self, NewBlockState}; use crate::light; -use primitives::storage::well_known_keys; +use primitives::{ChangesTrieConfiguration, storage::well_known_keys}; use runtime_primitives::generic::BlockId; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, Zero, NumberFor, As, Digest, DigestItem, AuthorityIdFor}; use runtime_primitives::{Justification, StorageMap, ChildrenStorageMap}; use crate::blockchain::{self, BlockStatus, HeaderBackend}; use state_machine::backend::{Backend as StateBackend, InMemory, Consolidate}; -use state_machine::InMemoryChangesTrieStorage; +use state_machine::{self, InMemoryChangesTrieStorage, ChangesTrieAnchorBlockId}; use hash_db::Hasher; use heapsize::HeapSizeOf; use crate::leaves::LeafSet; @@ -505,7 +505,7 @@ where H::Out: HeapSizeOf + Ord, { states: RwLock>>, - changes_trie_storage: InMemoryChangesTrieStorage, + changes_trie_storage: ChangesTrieStorage, blockchain: Blockchain, } @@ -519,7 +519,7 @@ where pub fn new() -> Backend { Backend { states: RwLock::new(HashMap::new()), - changes_trie_storage: InMemoryChangesTrieStorage::new(), + changes_trie_storage: ChangesTrieStorage(InMemoryChangesTrieStorage::new()), blockchain: Blockchain::new(), } } @@ -555,7 +555,7 @@ where type BlockImportOperation = BlockImportOperation; type Blockchain = Blockchain; type State = InMemory; - type ChangesTrieStorage = InMemoryChangesTrieStorage; + type ChangesTrieStorage = ChangesTrieStorage; fn begin_operation(&self, block: BlockId) -> error::Result { let state = match block { @@ -587,7 +587,7 @@ where if let Some(changes_trie_root) = changes_trie_root { if let Some(changes_trie_update) = operation.changes_trie_update { let changes_trie_root: H::Out = changes_trie_root.into(); - self.changes_trie_storage.insert(header.number().as_(), changes_trie_root, changes_trie_update); + self.changes_trie_storage.0.insert(header.number().as_(), changes_trie_root, changes_trie_update); } } @@ -652,6 +652,26 @@ impl blockchain::Cache for Cache { } } +/// Prunable in-memory changes trie storage. +pub struct ChangesTrieStorage(InMemoryChangesTrieStorage) where H::Out: HeapSizeOf; +impl backend::PrunableStateChangesTrieStorage for ChangesTrieStorage where H::Out: HeapSizeOf { + fn oldest_changes_trie_block(&self, _config: &ChangesTrieConfiguration, _best_finalized: u64) -> u64 { + 0 + } +} + +impl state_machine::ChangesTrieRootsStorage for ChangesTrieStorage where H::Out: HeapSizeOf { + fn root(&self, anchor: &ChangesTrieAnchorBlockId, block: u64) -> Result, String> { + self.0.root(anchor, block) + } +} + +impl state_machine::ChangesTrieStorage for ChangesTrieStorage where H::Out: HeapSizeOf { + fn get(&self, key: &H::Out) -> Result, String> { + self.0.get(key) + } +} + /// Insert authorities entry into in-memory blockchain cache. Extracted as a separate function to use it in tests. pub fn cache_authorities_at( blockchain: &Blockchain, diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 7485b8cdf3..c144ffa520 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -22,9 +22,8 @@ use futures::{Future, IntoFuture}; use parking_lot::RwLock; use runtime_primitives::{generic::BlockId, Justification, StorageMap, ChildrenStorageMap}; -use state_machine::{Backend as StateBackend, InMemoryChangesTrieStorage, TrieBackend}; +use state_machine::{Backend as StateBackend, TrieBackend}; use runtime_primitives::traits::{Block as BlockT, NumberFor, AuthorityIdFor}; - use crate::in_mem; use crate::backend::{AuxStore, Backend as ClientBackend, BlockImportOperation, RemoteBackend, NewBlockState}; use crate::blockchain::HeaderBackend as BlockchainHeaderBackend; @@ -95,7 +94,7 @@ impl ClientBackend for Backend where type BlockImportOperation = ImportOperation; type Blockchain = Blockchain; type State = OnDemandState; - type ChangesTrieStorage = InMemoryChangesTrieStorage; + type ChangesTrieStorage = in_mem::ChangesTrieStorage; fn begin_operation(&self, _block: BlockId) -> ClientResult { Ok(ImportOperation { diff --git a/core/client/src/light/fetcher.rs b/core/client/src/light/fetcher.rs index 3e98a063ac..49c7a5a5f2 100644 --- a/core/client/src/light/fetcher.rs +++ b/core/client/src/light/fetcher.rs @@ -403,7 +403,7 @@ pub mod tests { RemoteCallRequest, RemoteHeaderRequest}; use crate::light::blockchain::tests::{DummyStorage, DummyBlockchain}; use primitives::{twox_128, Blake2Hasher}; - use primitives::storage::well_known_keys; + use primitives::storage::{StorageKey, well_known_keys}; use runtime_primitives::generic::BlockId; use state_machine::Backend; use super::*; @@ -546,6 +546,7 @@ pub mod tests { let end_hash = remote_client.block_hash(end).unwrap().unwrap(); // 'fetch' changes proof from remote node + let key = StorageKey(key); let remote_proof = remote_client.key_changes_proof( begin_hash, end_hash, begin_hash, max_hash, &key ).unwrap(); @@ -558,7 +559,7 @@ pub mod tests { last_block: (end, end_hash), max_block: (max, max_hash), tries_roots: (begin, begin_hash, local_roots_range), - key: key, + key: key.0, retry_count: None, }; let local_result = local_checker.check_changes_proof(&request, ChangesProof { @@ -583,6 +584,7 @@ pub mod tests { // (1, 4, dave.clone(), vec![(4, 0), (1, 1), (1, 0)]), let (remote_client, remote_roots, _) = prepare_client_with_key_changes(); let dave = twox_128(&runtime::system::balance_of_key(Keyring::Dave.to_raw_public().into())).to_vec(); + let dave = StorageKey(dave); // 'fetch' changes proof from remote node: // we're fetching changes for range b1..b4 @@ -611,7 +613,7 @@ pub mod tests { last_block: (4, b4), max_block: (4, b4), tries_roots: (3, b3, vec![remote_roots[2].clone(), remote_roots[3].clone()]), - key: dave, + key: dave.0, retry_count: None, }; let local_result = local_checker.check_changes_proof_with_cht_size(&request, ChangesProof { @@ -640,6 +642,7 @@ pub mod tests { let end_hash = remote_client.block_hash(end).unwrap().unwrap(); // 'fetch' changes proof from remote node + let key = StorageKey(key); let remote_proof = remote_client.key_changes_proof( begin_hash, end_hash, begin_hash, max_hash, &key).unwrap(); @@ -650,7 +653,7 @@ pub mod tests { last_block: (end, end_hash), max_block: (max, max_hash), tries_roots: (begin, begin_hash, local_roots_range.clone()), - key: key, + key: key.0, retry_count: None, }; @@ -693,6 +696,7 @@ pub mod tests { let local_cht_root = cht::compute_root::( 4, 0, remote_roots.iter().cloned().map(|ct| Ok(Some(ct)))).unwrap(); let dave = twox_128(&runtime::system::balance_of_key(Keyring::Dave.to_raw_public().into())).to_vec(); + let dave = StorageKey(dave); // 'fetch' changes proof from remote node: // we're fetching changes for range b1..b4 diff --git a/core/network/src/chain.rs b/core/network/src/chain.rs index 457f8852b2..40edbfbadb 100644 --- a/core/network/src/chain.rs +++ b/core/network/src/chain.rs @@ -24,7 +24,7 @@ use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, AuthorityId use runtime_primitives::generic::{BlockId}; use consensus::{ImportBlock, ImportResult}; use runtime_primitives::Justification; -use primitives::{H256, Blake2Hasher}; +use primitives::{H256, Blake2Hasher, storage::StorageKey}; /// Local client abstraction for the network. pub trait Client: Send + Sync { @@ -66,7 +66,7 @@ pub trait Client: Send + Sync { last: Block::Hash, min: Block::Hash, max: Block::Hash, - key: &[u8] + key: &StorageKey ) -> Result, Error>; } @@ -125,7 +125,7 @@ impl Client for SubstrateClient where last: Block::Hash, min: Block::Hash, max: Block::Hash, - key: &[u8] + key: &StorageKey ) -> Result, Error> { (self as &SubstrateClient).key_changes_proof(first, last, min, max, key) } diff --git a/core/network/src/protocol.rs b/core/network/src/protocol.rs index 41612c788d..31891450e1 100644 --- a/core/network/src/protocol.rs +++ b/core/network/src/protocol.rs @@ -22,6 +22,7 @@ use parking_lot::RwLock; use rustc_hex::ToHex; use runtime_primitives::traits::{Block as BlockT, Header as HeaderT, NumberFor, As, Zero}; use runtime_primitives::generic::BlockId; +use primitives::storage::StorageKey; use network_libp2p::{NodeIndex, Severity}; use codec::{Encode, Decode}; use consensus::import_queue::ImportQueue; @@ -712,11 +713,12 @@ impl, H: ExHashT> Protocol { fn on_remote_changes_request(&self, io: &mut SyncIo, who: NodeIndex, request: message::RemoteChangesRequest) { trace!(target: "sync", "Remote changes proof request {} from {} for key {} ({}..{})", request.id, who, request.key.to_hex(), request.first, request.last); - let proof = match self.context_data.chain.key_changes_proof(request.first, request.last, request.min, request.max, &request.key) { + let key = StorageKey(request.key); + let proof = match self.context_data.chain.key_changes_proof(request.first, request.last, request.min, request.max, &key) { Ok(proof) => proof, Err(error) => { trace!(target: "sync", "Remote changes proof request {} from {} for key {} ({}..{}) failed with: {}", - request.id, who, request.key.to_hex(), request.first, request.last, error); + request.id, who, key.0.to_hex(), request.first, request.last, error); ChangesProof:: { max_block: Zero::zero(), proof: vec![], diff --git a/core/rpc/src/state/mod.rs b/core/rpc/src/state/mod.rs index 72175ca5df..49dc28137a 100644 --- a/core/rpc/src/state/mod.rs +++ b/core/rpc/src/state/mod.rs @@ -17,7 +17,8 @@ //! Substrate state API. use std::{ - collections::HashMap, + collections::{BTreeMap, HashMap}, + ops::Range, sync::Arc, }; @@ -31,7 +32,7 @@ use primitives::storage::{self, StorageKey, StorageData, StorageChangeSet}; use rpc::Result as RpcResult; use rpc::futures::{stream, Future, Sink, Stream}; use runtime_primitives::generic::BlockId; -use runtime_primitives::traits::{Block as BlockT, Header, ProvideRuntimeApi}; +use runtime_primitives::traits::{Block as BlockT, Header, ProvideRuntimeApi, As, NumberFor}; use runtime_version::RuntimeVersion; use subscriptions::Subscriptions; @@ -112,7 +113,25 @@ pub struct State { subscriptions: Subscriptions, } -impl State { +/// Ranges to query in state_queryStorage. +struct QueryStorageRange { + /// Hashes of all the blocks in the range. + pub hashes: Vec, + /// Number of the first block in the range. + pub first_number: NumberFor, + /// Blocks subrange ([begin; end) indices within `hashes`) where we should read keys at + /// each state to get changes. + pub unfiltered_range: Range, + /// Blocks subrange ([begin; end) indices within `hashes`) where we could pre-filter + /// blocks-with-changes by using changes tries. + pub filtered_range: Option>, +} + +impl State where + Block: BlockT, + B: client::backend::Backend, + E: CallExecutor, +{ /// Create new State API RPC handler. pub fn new(client: Arc>, subscriptions: Subscriptions) -> Self { Self { @@ -120,6 +139,128 @@ impl State { subscriptions, } } + + /// Splits the `query_storage` block range into 'filtered' and 'unfiltered' subranges. + /// Blocks that contain changes within filtered subrange could be filtered using changes tries. + /// Blocks that contain changes within unfiltered subrange must be filtered manually. + fn split_query_storage_range( + &self, + from: Block::Hash, + to: Trailing + ) -> Result> { + let to = self.unwrap_or_best(to)?; + let from_hdr = self.client.header(&BlockId::hash(from))?; + let to_hdr = self.client.header(&BlockId::hash(to))?; + match (from_hdr, to_hdr) { + (Some(ref from), Some(ref to)) if from.number() <= to.number() => { + // check if we can get from `to` to `from` by going through parent_hashes. + let from_number = *from.number(); + let blocks = { + let mut blocks = vec![to.hash()]; + let mut last = to.clone(); + while *last.number() > from_number { + if let Some(hdr) = self.client.header(&BlockId::hash(*last.parent_hash()))? { + blocks.push(hdr.hash()); + last = hdr; + } else { + bail!(invalid_block_range( + Some(from), + Some(to), + format!("Parent of {} ({}) not found", last.number(), last.hash()), + )) + } + } + if last.hash() != from.hash() { + bail!(invalid_block_range( + Some(from), + Some(to), + format!("Expected to reach `from`, got {} ({})", last.number(), last.hash()), + )) + } + blocks.reverse(); + blocks + }; + // check if we can filter blocks-with-changes from some (sub)range using changes tries + let changes_trie_range = self.client.max_key_changes_range(from_number, BlockId::Hash(to.hash()))?; + let filtered_range_begin = changes_trie_range.map(|(begin, _)| (begin - from_number).as_() as usize); + let (unfiltered_range, filtered_range) = split_range(blocks.len(), filtered_range_begin); + Ok(QueryStorageRange { + hashes: blocks, + first_number: from_number, + unfiltered_range, + filtered_range, + }) + }, + (from, to) => bail!( + invalid_block_range(from.as_ref(), to.as_ref(), "Invalid range or unknown block".into()) + ), + } + } + + /// Iterates through range.unfiltered_range and check each block for changes of keys' values. + fn query_storage_unfiltered( + &self, + range: &QueryStorageRange, + keys: &[StorageKey], + changes: &mut Vec>, + ) -> Result<()> { + let mut last_state: HashMap<_, Option<_>> = Default::default(); + for block in range.unfiltered_range.start..range.unfiltered_range.end { + let block_hash = range.hashes[block].clone(); + let mut block_changes = StorageChangeSet { block: block_hash.clone(), changes: Vec::new() }; + let id = BlockId::hash(block_hash); + for key in keys { + let (has_changed, data) = { + let curr_data = self.client.storage(&id, key)?; + let prev_data = last_state.get(key).and_then(|x| x.as_ref()); + (curr_data.as_ref() != prev_data, curr_data) + }; + if has_changed { + block_changes.changes.push((key.clone(), data.clone())); + } + last_state.insert(key.clone(), data); + } + changes.push(block_changes); + } + Ok(()) + } + + /// Iterates through all blocks that are changing keys within range.filtered_range and collects these changes. + fn query_storage_filtered( + &self, + range: &QueryStorageRange, + keys: &[StorageKey], + changes: &mut Vec>, + ) -> Result<()> { + let (begin, end) = match range.filtered_range { + Some(ref filtered_range) => ( + range.first_number + As::sa(filtered_range.start as u64), + BlockId::Hash(range.hashes[filtered_range.end - 1].clone()) + ), + None => return Ok(()), + }; + let mut changes_map: BTreeMap, StorageChangeSet> = BTreeMap::new(); + for key in keys { + let mut last_block = None; + for (block, _) in self.client.key_changes(begin, end, key)? { + if last_block == Some(block) { + continue; + } + let block_hash = range.hashes[(block - range.first_number).as_() as usize].clone(); + let id = BlockId::Hash(block_hash); + let value_at_block = self.client.storage(&id, key)?; + changes_map.entry(block) + .or_insert_with(|| StorageChangeSet { block: block_hash, changes: Vec::new() }) + .changes.push((key.clone(), value_at_block)); + last_block = Some(block); + } + } + if let Some(additional_capacity) = changes_map.len().checked_sub(changes.len()) { + changes.reserve(additional_capacity); + } + changes.extend(changes_map.into_iter().map(|(_, cs)| cs)); + Ok(()) + } } impl State where @@ -178,72 +319,17 @@ impl StateApi for State where self.client.runtime_api().metadata(&BlockId::Hash(block)).map(Into::into).map_err(Into::into) } - fn query_storage(&self, keys: Vec, from: Block::Hash, to: Trailing) -> Result>> { - let to = self.unwrap_or_best(to)?; - - let from_hdr = self.client.header(&BlockId::hash(from))?; - let to_hdr = self.client.header(&BlockId::hash(to))?; - - match (from_hdr, to_hdr) { - (Some(ref from), Some(ref to)) if from.number() <= to.number() => { - let from = from.clone(); - let to = to.clone(); - // check if we can get from `to` to `from` by going through parent_hashes. - let blocks = { - let mut blocks = vec![to.hash()]; - let mut last = to.clone(); - while last.number() > from.number() { - if let Some(hdr) = self.client.header(&BlockId::hash(*last.parent_hash()))? { - blocks.push(hdr.hash()); - last = hdr; - } else { - bail!(invalid_block_range( - Some(from), - Some(to), - format!("Parent of {} ({}) not found", last.number(), last.hash()), - )) - } - } - if last.hash() != from.hash() { - bail!(invalid_block_range( - Some(from), - Some(to), - format!("Expected to reach `from`, got {} ({})", last.number(), last.hash()), - )) - } - blocks.reverse(); - blocks - }; - let mut result = Vec::new(); - let mut last_state: HashMap<_, Option<_>> = Default::default(); - for block in blocks { - let mut changes = vec![]; - let id = BlockId::hash(block.clone()); - - for key in &keys { - let (has_changed, data) = { - let curr_data = self.client.storage(&id, key)?; - let prev_data = last_state.get(key).and_then(|x| x.as_ref()); - - (curr_data.as_ref() != prev_data, curr_data) - }; - - if has_changed { - changes.push((key.clone(), data.clone())); - } - - last_state.insert(key.clone(), data); - } - - result.push(StorageChangeSet { - block, - changes, - }); - } - Ok(result) - }, - (from, to) => bail!(invalid_block_range(from, to, "Invalid range or unknown block".into())), - } + fn query_storage( + &self, + keys: Vec, + from: Block::Hash, + to: Trailing + ) -> Result>> { + let range = self.split_query_storage_range(from, to)?; + let mut changes = Vec::new(); + self.query_storage_unfiltered(&range, &keys, &mut changes)?; + self.query_storage_filtered(&range, &keys, &mut changes)?; + Ok(changes) } fn subscribe_storage( @@ -348,8 +434,29 @@ impl StateApi for State where } } -fn invalid_block_range(from: Option, to: Option, reason: String) -> error::ErrorKind { - let to_string = |x: Option| match x { +/// Splits passed range into two subranges where: +/// - first range has at least one element in it; +/// - second range (optionally) starts at given `middle` element. +pub(crate) fn split_range(size: usize, middle: Option) -> (Range, Option>) { + // check if we can filter blocks-with-changes from some (sub)range using changes tries + let range2_begin = match middle { + // some of required changes tries are pruned => use available tries + Some(middle) if middle != 0 => Some(middle), + // all required changes tries are available, but we still want values at first block + // => do 'unfiltered' read for the first block and 'filtered' for the rest + Some(_) if size > 1 => Some(1), + // range contains single element => do not use changes tries + Some(_) => None, + // changes tries are not available => do 'unfiltered' read for the whole range + None => None, + }; + let range1 = 0..range2_begin.unwrap_or(size); + let range2 = range2_begin.map(|begin| begin..size); + (range1, range2) +} + +fn invalid_block_range(from: Option<&H>, to: Option<&H>, reason: String) -> error::ErrorKind { + let to_string = |x: Option<&H>| match x { None => "unknown hash".into(), Some(h) => format!("{} ({})", h.number(), h.hash()), }; diff --git a/core/rpc/src/state/tests.rs b/core/rpc/src/state/tests.rs index 3fe306d0bc..8cea4d8a6c 100644 --- a/core/rpc/src/state/tests.rs +++ b/core/rpc/src/state/tests.rs @@ -117,66 +117,95 @@ fn should_send_initial_storage_changes_and_notifications() { #[test] fn should_query_storage() { - let core = ::tokio::runtime::Runtime::new().unwrap(); - let client = Arc::new(test_client::new()); - let api = State::new(client.clone(), Subscriptions::new(core.executor())); - - let add_block = |nonce| { - let mut builder = client.new_block().unwrap(); - builder.push_transfer(runtime::Transfer { - from: Keyring::Alice.to_raw_public().into(), - to: Keyring::Ferdie.to_raw_public().into(), - amount: 42, - nonce, - }).unwrap(); - let block = builder.bake().unwrap(); - let hash = block.header.hash(); - client.import(BlockOrigin::Own, block).unwrap(); - hash - }; - let block1_hash = add_block(0); - let block2_hash = add_block(1); - let genesis_hash = client.genesis_hash(); - + type TestClient = test_client::client::Client< + test_client::Backend, + test_client::Executor, + runtime::Block, + runtime::RuntimeApi + >; + + fn run_tests(client: Arc) { + let core = ::tokio::runtime::Runtime::new().unwrap(); + let api = State::new(client.clone(), Subscriptions::new(core.executor())); - let mut expected = vec![ - StorageChangeSet { - block: genesis_hash, + let add_block = |nonce| { + let mut builder = client.new_block().unwrap(); + builder.push_transfer(runtime::Transfer { + from: Keyring::Alice.to_raw_public().into(), + to: Keyring::Ferdie.to_raw_public().into(), + amount: 42, + nonce, + }).unwrap(); + let block = builder.bake().unwrap(); + let hash = block.header.hash(); + client.import(BlockOrigin::Own, block).unwrap(); + hash + }; + let block1_hash = add_block(0); + let block2_hash = add_block(1); + let genesis_hash = client.genesis_hash(); + + + let mut expected = vec![ + StorageChangeSet { + block: genesis_hash, + changes: vec![ + ( + StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), + Some(StorageData(vec![232, 3, 0, 0, 0, 0, 0, 0])) + ), + ], + }, + StorageChangeSet { + block: block1_hash, + changes: vec![ + ( + StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), + Some(StorageData(vec![190, 3, 0, 0, 0, 0, 0, 0])) + ), + ], + }, + ]; + + // Query changes only up to block1 + let result = api.query_storage( + vec![StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap())], + genesis_hash, + Some(block1_hash).into(), + ); + + assert_eq!(result.unwrap(), expected); + + // Query all changes + let result = api.query_storage( + vec![StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap())], + genesis_hash, + None.into(), + ); + + expected.push(StorageChangeSet { + block: block2_hash, changes: vec![ - (StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), Some(StorageData(vec![232, 3, 0, 0, 0, 0, 0, 0]))), + ( + StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), + Some(StorageData(vec![148, 3, 0, 0, 0, 0, 0, 0])) + ), ], - }, - StorageChangeSet { - block: block1_hash, - changes: vec![ - (StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), Some(StorageData(vec![190, 3, 0, 0, 0, 0, 0, 0]))), - ], - }, - ]; - - // Query changes only up to block1 - let result = api.query_storage( - vec![StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap())], - genesis_hash, - Some(block1_hash).into(), - ); - - assert_eq!(result.unwrap(), expected); + }); + assert_eq!(result.unwrap(), expected); + } - // Query all changes - let result = api.query_storage( - vec![StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap())], - genesis_hash, - None.into(), - ); + run_tests(Arc::new(test_client::new())); + run_tests(Arc::new(test_client::new_with_changes_trie())); +} - expected.push(StorageChangeSet { - block: block2_hash, - changes: vec![ - (StorageKey("a52da2b7c269da1366b3ed1cdb7299ce".from_hex().unwrap()), Some(StorageData(vec![148, 3, 0, 0, 0, 0, 0, 0]))), - ], - }); - assert_eq!(result.unwrap(), expected); +#[test] +fn should_split_ranges() { + assert_eq!(split_range(1, None), (0..1, None)); + assert_eq!(split_range(100, None), (0..100, None)); + assert_eq!(split_range(1, Some(0)), (0..1, None)); + assert_eq!(split_range(100, Some(50)), (0..50, Some(50..100))); + assert_eq!(split_range(100, Some(99)), (0..99, Some(99..100))); } diff --git a/core/state-machine/src/changes_trie/changes_iterator.rs b/core/state-machine/src/changes_trie/changes_iterator.rs index e8bd1e7db6..af844db2c8 100644 --- a/core/state-machine/src/changes_trie/changes_iterator.rs +++ b/core/state-machine/src/changes_trie/changes_iterator.rs @@ -31,15 +31,16 @@ use trie_backend_essence::{TrieBackendEssence}; /// Return changes of given key at given blocks range. /// `max` is the number of best known block. -pub fn key_changes, H: Hasher>( - config: &Configuration, - storage: &S, +/// Changes are returned in descending order (i.e. last block comes first). +pub fn key_changes<'a, S: Storage, H: Hasher>( + config: &'a Configuration, + storage: &'a S, begin: u64, - end: &AnchorBlockId, + end: &'a AnchorBlockId, max: u64, - key: &[u8], -) -> Result, String> where H::Out: HeapSizeOf { - DrilldownIterator { + key: &'a [u8], +) -> Result, String> where H::Out: HeapSizeOf { + Ok(DrilldownIterator { essence: DrilldownIteratorEssence { key, roots_storage: storage, @@ -53,7 +54,7 @@ pub fn key_changes, H: Hasher>( _hasher: ::std::marker::PhantomData::::default(), }, - }.collect() + }) } /// Returns proof of changes of given key at given blocks range. @@ -93,6 +94,7 @@ pub fn key_changes_proof, H: Hasher>( /// Check key changes proog and return changes of the key at given blocks range. /// `max` is the number of best known block. +/// Changes are returned in descending order (i.e. last block comes first). pub fn key_changes_proof_check, H: Hasher>( config: &Configuration, roots_storage: &S, @@ -261,7 +263,7 @@ impl<'a, RS: 'a + RootsStorage, S: Storage, H: Hasher> DrilldownIteratorEs } /// Exploring drilldown operator. -struct DrilldownIterator<'a, RS: 'a + RootsStorage, S: 'a + Storage, H: Hasher> where H::Out: 'a { +pub struct DrilldownIterator<'a, RS: 'a + RootsStorage, S: 'a + Storage, H: Hasher> where H::Out: 'a { essence: DrilldownIteratorEssence<'a, RS, S, H>, } @@ -379,6 +381,7 @@ fn lower_bound_max_digest( #[cfg(test)] mod tests { + use std::iter::FromIterator; use primitives::Blake2Hasher; use changes_trie::input::InputPair; use changes_trie::storage::InMemoryStorage; @@ -427,23 +430,28 @@ mod tests { fn drilldown_iterator_works() { let (config, storage) = prepare_for_drilldown(); let drilldown_result = key_changes::, Blake2Hasher>( - &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 16 }, 16, &[42]); + &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 16 }, 16, &[42]) + .and_then(Result::from_iter); assert_eq!(drilldown_result, Ok(vec![(8, 2), (8, 1), (6, 3), (3, 0)])); let drilldown_result = key_changes::, Blake2Hasher>( - &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 2 }, 4, &[42]); + &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 2 }, 4, &[42]) + .and_then(Result::from_iter); assert_eq!(drilldown_result, Ok(vec![])); let drilldown_result = key_changes::, Blake2Hasher>( - &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 3 }, 4, &[42]); + &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 3 }, 4, &[42]) + .and_then(Result::from_iter); assert_eq!(drilldown_result, Ok(vec![(3, 0)])); let drilldown_result = key_changes::, Blake2Hasher>( - &config, &storage, 7, &AnchorBlockId { hash: Default::default(), number: 8 }, 8, &[42]); + &config, &storage, 7, &AnchorBlockId { hash: Default::default(), number: 8 }, 8, &[42]) + .and_then(Result::from_iter); assert_eq!(drilldown_result, Ok(vec![(8, 2), (8, 1)])); let drilldown_result = key_changes::, Blake2Hasher>( - &config, &storage, 5, &AnchorBlockId { hash: Default::default(), number: 7 }, 8, &[42]); + &config, &storage, 5, &AnchorBlockId { hash: Default::default(), number: 7 }, 8, &[42]) + .and_then(Result::from_iter); assert_eq!(drilldown_result, Ok(vec![(6, 3)])); } @@ -453,7 +461,8 @@ mod tests { storage.clear_storage(); assert!(key_changes::, Blake2Hasher>( - &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 100 }, 1000, &[42]).is_err()); + &config, &storage, 0, &AnchorBlockId { hash: Default::default(), number: 100 }, 1000, &[42]) + .and_then(|i| i.collect::, _>>()).is_err()); } #[test] diff --git a/core/state-machine/src/changes_trie/mod.rs b/core/state-machine/src/changes_trie/mod.rs index 1d523854ee..ffc43fb884 100644 --- a/core/state-machine/src/changes_trie/mod.rs +++ b/core/state-machine/src/changes_trie/mod.rs @@ -44,7 +44,7 @@ mod storage; pub use self::storage::InMemoryStorage; pub use self::changes_iterator::{key_changes, key_changes_proof, key_changes_proof_check}; -pub use self::prune::prune; +pub use self::prune::{prune, oldest_non_pruned_trie}; use hash_db::Hasher; use heapsize::HeapSizeOf; diff --git a/core/state-machine/src/changes_trie/prune.rs b/core/state-machine/src/changes_trie/prune.rs index 9886105115..76c746cb72 100644 --- a/core/state-machine/src/changes_trie/prune.rs +++ b/core/state-machine/src/changes_trie/prune.rs @@ -24,6 +24,22 @@ use trie_backend_essence::TrieBackendEssence; use changes_trie::{AnchorBlockId, Configuration, Storage}; use changes_trie::storage::TrieBackendAdapter; +/// Get number of oldest block for which changes trie is not pruned +/// given changes trie configuration, pruning parameter and number of +/// best finalized block. +pub fn oldest_non_pruned_trie( + config: &Configuration, + min_blocks_to_keep: u64, + best_finalized_block: u64, +) -> u64 { + let max_digest_interval = config.max_digest_interval(); + let max_digest_block = best_finalized_block - best_finalized_block % max_digest_interval; + match pruning_range(config, min_blocks_to_keep, max_digest_block) { + Some((_, last_pruned_block)) => last_pruned_block + 1, + None => 1, + } +} + /// Prune obslete changes tries. Puning happens at the same block, where highest /// level digest is created. Pruning guarantees to save changes tries for last /// `min_blocks_to_keep` blocks. We only prune changes tries at `max_digest_iterval` @@ -268,4 +284,23 @@ mod tests { assert_eq!(max_digest_intervals_to_keep(1024, 511), 2); assert_eq!(max_digest_intervals_to_keep(1024, 100), 10); } + + #[test] + fn oldest_non_pruned_trie_works() { + // when digests are not created at all + assert_eq!(oldest_non_pruned_trie(&config(0, 0), 100, 10), 1); + assert_eq!(oldest_non_pruned_trie(&config(0, 0), 100, 110), 11); + + // when only l1 digests are created + assert_eq!(oldest_non_pruned_trie(&config(100, 1), 100, 50), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 1), 100, 110), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 1), 100, 210), 101); + + // when l2 digests are created + assert_eq!(oldest_non_pruned_trie(&config(100, 2), 100, 50), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 2), 100, 110), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 2), 100, 210), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 2), 100, 10110), 1); + assert_eq!(oldest_non_pruned_trie(&config(100, 2), 100, 20110), 10001); + } } diff --git a/core/state-machine/src/lib.rs b/core/state-machine/src/lib.rs index bc0189d398..e4fe89e2d2 100644 --- a/core/state-machine/src/lib.rs +++ b/core/state-machine/src/lib.rs @@ -59,7 +59,8 @@ pub use changes_trie::{ RootsStorage as ChangesTrieRootsStorage, InMemoryStorage as InMemoryChangesTrieStorage, key_changes, key_changes_proof, key_changes_proof_check, - prune as prune_changes_tries}; + prune as prune_changes_tries, + oldest_non_pruned_trie as oldest_non_pruned_changes_trie}; pub use overlayed_changes::OverlayedChanges; pub use proving_backend::{create_proof_check_backend, create_proof_check_backend_storage}; pub use trie_backend_essence::{TrieBackendStorage, Storage}; -- GitLab From 8b67966071ffe9f1dbdc73abe46946af11ee51fe Mon Sep 17 00:00:00 2001 From: thiolliere Date: Thu, 17 Jan 2019 11:25:48 +0100 Subject: [PATCH 076/349] impl HasCompact for Perbill and Permill (#1411) * impl Compact<> and HasCompact for Permill Perbill * update parity-codec to 2.2 * add Cargo.lock * add lock and build for runtime * rebuild Cargo.lock after rebase --- Cargo.lock | 108 +++++++++--------- core/basic-authorship/Cargo.toml | 2 +- core/client/db/Cargo.toml | 2 +- core/consensus/aura/Cargo.toml | 2 +- core/consensus/aura/primitives/Cargo.toml | 2 +- core/consensus/common/Cargo.toml | 2 +- core/consensus/rhd/Cargo.toml | 2 +- core/executor/Cargo.toml | 2 +- core/executor/wasm/Cargo.lock | 12 +- core/finality-grandpa/Cargo.toml | 2 +- core/finality-grandpa/primitives/Cargo.toml | 2 +- core/network/Cargo.toml | 2 +- core/primitives/Cargo.toml | 2 +- core/rpc/Cargo.toml | 2 +- core/service/Cargo.toml | 2 +- core/sr-io/Cargo.toml | 2 +- core/sr-primitives/Cargo.toml | 2 +- core/sr-primitives/src/lib.rs | 71 ++++++++++++ core/sr-sandbox/Cargo.toml | 2 +- core/sr-version/Cargo.toml | 2 +- core/state-db/Cargo.toml | 2 +- core/state-machine/Cargo.toml | 2 +- core/test-client/Cargo.toml | 2 +- core/test-runtime/Cargo.toml | 2 +- core/test-runtime/wasm/Cargo.lock | 32 +++--- .../substrate_test_runtime.compact.wasm | Bin 46028 -> 46060 bytes core/transaction-pool/Cargo.toml | 2 +- core/trie/Cargo.toml | 2 +- node/cli/Cargo.toml | 2 +- node/executor/Cargo.toml | 2 +- node/primitives/Cargo.toml | 2 +- node/runtime/Cargo.toml | 2 +- node/runtime/wasm/Cargo.lock | 70 ++++++------ .../release/node_runtime.compact.wasm | Bin 804401 -> 804658 bytes srml/assets/Cargo.toml | 2 +- srml/aura/Cargo.toml | 2 +- srml/balances/Cargo.toml | 2 +- srml/consensus/Cargo.toml | 2 +- srml/contract/Cargo.toml | 2 +- srml/council/Cargo.toml | 2 +- srml/democracy/Cargo.toml | 2 +- srml/example/Cargo.toml | 2 +- srml/executive/Cargo.toml | 2 +- srml/grandpa/Cargo.toml | 2 +- srml/metadata/Cargo.toml | 2 +- srml/session/Cargo.toml | 2 +- srml/staking/Cargo.toml | 2 +- srml/sudo/Cargo.toml | 2 +- srml/support/Cargo.toml | 2 +- srml/system/Cargo.toml | 2 +- srml/timestamp/Cargo.toml | 2 +- srml/treasury/Cargo.toml | 2 +- srml/upgrade-key/Cargo.toml | 2 +- 53 files changed, 228 insertions(+), 157 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8678339ce2..5fa2f42323 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -734,7 +734,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -998,7 +998,7 @@ name = "impl-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1720,7 +1720,7 @@ dependencies = [ "node-executor 0.1.0", "node-primitives 0.1.0", "node-runtime 0.1.0", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -1746,7 +1746,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "node-primitives 0.1.0", "node-runtime 0.1.0", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "srml-balances 0.1.0", @@ -1773,7 +1773,7 @@ dependencies = [ name = "node-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1791,7 +1791,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "node-primitives 0.1.0", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1948,7 +1948,7 @@ source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7 [[package]] name = "parity-codec" -version = "2.1.5" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2408,7 +2408,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2664,7 +2664,7 @@ version = "0.1.0" dependencies = [ "environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -2679,7 +2679,7 @@ dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2694,7 +2694,7 @@ name = "sr-sandbox" version = "0.1.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -2713,7 +2713,7 @@ dependencies = [ name = "sr-version" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2726,7 +2726,7 @@ name = "srml-assets" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -2743,7 +2743,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2763,7 +2763,7 @@ name = "srml-balances" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2781,7 +2781,7 @@ name = "srml-consensus" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -2797,7 +2797,7 @@ name = "srml-contract" version = "0.1.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2818,7 +2818,7 @@ name = "srml-council" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2837,7 +2837,7 @@ name = "srml-democracy" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2855,7 +2855,7 @@ name = "srml-example" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -2872,7 +2872,7 @@ name = "srml-executive" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -2890,7 +2890,7 @@ name = "srml-grandpa" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2909,7 +2909,7 @@ name = "srml-indices" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "ref_thread_local 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2927,7 +2927,7 @@ dependencies = [ name = "srml-metadata" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2940,7 +2940,7 @@ name = "srml-session" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2959,7 +2959,7 @@ name = "srml-staking" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2981,7 +2981,7 @@ name = "srml-sudo" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -3001,7 +3001,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3048,7 +3048,7 @@ name = "srml-system" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3064,7 +3064,7 @@ name = "srml-timestamp" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3080,7 +3080,7 @@ name = "srml-treasury" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -3097,7 +3097,7 @@ name = "srml-upgrade-key" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -3227,7 +3227,7 @@ name = "substrate-basic-authorship" version = "0.1.0" dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-consensus-aura-primitives 0.1.0", @@ -3280,7 +3280,7 @@ dependencies = [ "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", @@ -3307,7 +3307,7 @@ dependencies = [ "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -3329,7 +3329,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -3352,7 +3352,7 @@ dependencies = [ name = "substrate-consensus-aura-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-version 0.1.0", @@ -3368,7 +3368,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -3386,7 +3386,7 @@ dependencies = [ "exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3415,7 +3415,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3437,7 +3437,7 @@ dependencies = [ "finality-grandpa 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3457,7 +3457,7 @@ dependencies = [ name = "substrate-finality-grandpa-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -3500,7 +3500,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3553,7 +3553,7 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3579,7 +3579,7 @@ dependencies = [ "jsonrpc-macros 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (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.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3627,7 +3627,7 @@ dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3674,7 +3674,7 @@ version = "0.1.0" dependencies = [ "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", @@ -3688,7 +3688,7 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", @@ -3714,7 +3714,7 @@ dependencies = [ name = "substrate-test-client" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", "substrate-consensus-common 0.1.0", @@ -3731,7 +3731,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3769,7 +3769,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "substrate-client 0.1.0", @@ -3788,7 +3788,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "keccak-hasher 0.1.0 (git+https://github.com/paritytech/trie)", "memory-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "trie-bench 0.9.0 (git+https://github.com/paritytech/trie)", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", @@ -4131,7 +4131,7 @@ dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "keccak-hasher 0.1.0 (git+https://github.com/paritytech/trie)", "memory-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", "trie-standardmap 0.9.0 (git+https://github.com/paritytech/trie)", @@ -4676,7 +4676,7 @@ dependencies = [ "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" -"checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" +"checksum parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7b6a1290fe78aa6bbb5f3338ecede3062687a98b9e40cd1dbcaa47261d44097" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8adf489acb31f1922db0ce43803b6f48a425241a8473611be3cc625a8e4a4c47" "checksum parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a8e5d637787fe097ec1bfca2aa3eb687396518003df991c6c7216d86682d5ff" diff --git a/core/basic-authorship/Cargo.toml b/core/basic-authorship/Cargo.toml index 00c50781fd..6a5ef1087d 100644 --- a/core/basic-authorship/Cargo.toml +++ b/core/basic-authorship/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] log = "0.4" -parity-codec = "2.1" +parity-codec = "2.2" sr-primitives = { path = "../../core/sr-primitives" } substrate-client = { path = "../../core/client" } substrate-consensus-aura-primitives = { path = "../../core/consensus/aura/primitives" } diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index bd5a03fc34..ac22e8ab67 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -15,7 +15,7 @@ substrate-primitives = { path = "../../primitives" } sr-primitives = { path = "../../sr-primitives" } substrate-client = { path = "../../client" } substrate-state-machine = { path = "../../state-machine" } -parity-codec = "2.1" +parity-codec = "2.2" parity-codec-derive = "2.1" substrate-executor = { path = "../../executor" } substrate-state-db = { path = "../../state-db" } diff --git a/core/consensus/aura/Cargo.toml b/core/consensus/aura/Cargo.toml index f1b569c91f..2cc5c6cfa3 100644 --- a/core/consensus/aura/Cargo.toml +++ b/core/consensus/aura/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] description = "Aura consensus algorithm for substrate" [dependencies] -parity-codec = "2.1" +parity-codec = "2.2" substrate-client = { path = "../../client" } substrate-primitives = { path = "../../primitives" } srml-support = { path = "../../../srml/support" } diff --git a/core/consensus/aura/primitives/Cargo.toml b/core/consensus/aura/primitives/Cargo.toml index 34dac7013d..ea3041c99d 100644 --- a/core/consensus/aura/primitives/Cargo.toml +++ b/core/consensus/aura/primitives/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] description = "Primitives for Aura consensus" [dependencies] -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } substrate-client = { path = "../../../client", default-features = false } substrate-primitives = { path = "../../../primitives", default-features = false } srml-support = { path = "../../../../srml/support", default-features = false } diff --git a/core/consensus/common/Cargo.toml b/core/consensus/common/Cargo.toml index e204e7c36d..f8ae47d70f 100644 --- a/core/consensus/common/Cargo.toml +++ b/core/consensus/common/Cargo.toml @@ -13,7 +13,7 @@ futures = "0.1" sr-version = { path = "../../sr-version" } sr-primitives = { path = "../../sr-primitives" } tokio = "0.1.7" -parity-codec = "2.1" +parity-codec = "2.2" parity-codec-derive = "2.0" [dev-dependencies] diff --git a/core/consensus/rhd/Cargo.toml b/core/consensus/rhd/Cargo.toml index 3aae924115..4a3001b12c 100644 --- a/core/consensus/rhd/Cargo.toml +++ b/core/consensus/rhd/Cargo.toml @@ -6,7 +6,7 @@ description = "Rhododendron Round-Based consensus-algorithm for substrate" [dependencies] futures = "0.1.17" -parity-codec = { version = "2.1" } +parity-codec = { version = "2.2" } parity-codec-derive = { version = "2.0" } substrate-primitives = { path = "../../primitives" } substrate-consensus-common = { path = "../common" } diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index f7e261f4e8..77c80e76c9 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] error-chain = "0.12" -parity-codec = "2.1" +parity-codec = "2.2" sr-io = { path = "../sr-io" } substrate-primitives = { path = "../primitives" } substrate-trie = { path = "../trie" } diff --git a/core/executor/wasm/Cargo.lock b/core/executor/wasm/Cargo.lock index 97ac5c5d6f..933a8fc20e 100644 --- a/core/executor/wasm/Cargo.lock +++ b/core/executor/wasm/Cargo.lock @@ -47,7 +47,7 @@ name = "impl-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -57,7 +57,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "parity-codec" -version = "2.1.5" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -145,7 +145,7 @@ name = "sr-io" version = "0.1.0" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -155,7 +155,7 @@ dependencies = [ name = "sr-sandbox" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -180,7 +180,7 @@ dependencies = [ "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (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)", "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -223,7 +223,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" -"checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" +"checksum parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7b6a1290fe78aa6bbb5f3338ecede3062687a98b9e40cd1dbcaa47261d44097" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum primitive-types 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f47c18b4601125931d69fcf7b000c2c16a304e4f84d58218d6470b4502e00b58" "checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" diff --git a/core/finality-grandpa/Cargo.toml b/core/finality-grandpa/Cargo.toml index 2bef01f193..896b1dbf8d 100644 --- a/core/finality-grandpa/Cargo.toml +++ b/core/finality-grandpa/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] futures = "0.1" -parity-codec = "2.1" +parity-codec = "2.2" parity-codec-derive = "2.0" sr-primitives = { path = "../sr-primitives" } substrate-consensus-common = { path = "../consensus/common" } diff --git a/core/finality-grandpa/primitives/Cargo.toml b/core/finality-grandpa/primitives/Cargo.toml index 0ddb489af7..78a0f05d2c 100644 --- a/core/finality-grandpa/primitives/Cargo.toml +++ b/core/finality-grandpa/primitives/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] substrate-client = { path = "../../client", default-features = false } substrate-primitives = { path = "../../primitives", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } sr-primitives = { path = "../../sr-primitives", default-features = false } sr-std = { path = "../../sr-std", default-features = false } diff --git a/core/network/Cargo.toml b/core/network/Cargo.toml index 221036032e..c38d3695c9 100644 --- a/core/network/Cargo.toml +++ b/core/network/Cargo.toml @@ -20,7 +20,7 @@ substrate-primitives = { path = "../../core/primitives" } substrate-consensus-common = { path = "../../core/consensus/common" } substrate-client = { path = "../../core/client" } sr-primitives = { path = "../../core/sr-primitives" } -parity-codec = "2.1" +parity-codec = "2.2" parity-codec-derive = "2.1" substrate-network-libp2p = { path = "../../core/network-libp2p" } tokio = "0.1.11" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index 39e65889f5..60b3752865 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] sr-std = { path = "../sr-std", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } rustc-hex = { version = "2.0", default-features = false } serde = { version = "1.0", default-features = false } diff --git a/core/rpc/Cargo.toml b/core/rpc/Cargo.toml index c09e123360..bf3e1aa5af 100644 --- a/core/rpc/Cargo.toml +++ b/core/rpc/Cargo.toml @@ -10,7 +10,7 @@ jsonrpc-macros = { git="https://github.com/paritytech/jsonrpc.git" } jsonrpc-pubsub = { git="https://github.com/paritytech/jsonrpc.git" } log = "0.4" parking_lot = "0.7.1" -parity-codec = "2.1" +parity-codec = "2.2" serde = "1.0" serde_derive = "1.0" serde_json = "1.0" diff --git a/core/service/Cargo.toml b/core/service/Cargo.toml index 6a6ebca9ce..3824bb6a57 100644 --- a/core/service/Cargo.toml +++ b/core/service/Cargo.toml @@ -24,7 +24,7 @@ substrate-consensus-common = { path = "../../core/consensus/common" } substrate-network = { path = "../../core/network" } substrate-client = { path = "../../core/client" } substrate-client-db = { path = "../../core/client/db" } -parity-codec = "2.1" +parity-codec = "2.2" substrate-executor = { path = "../../core/executor" } substrate-transaction-pool = { path = "../../core/transaction-pool" } substrate-rpc-servers = { path = "../../core/rpc-servers" } diff --git a/core/sr-io/Cargo.toml b/core/sr-io/Cargo.toml index 39e62e7a20..a39b6d600b 100644 --- a/core/sr-io/Cargo.toml +++ b/core/sr-io/Cargo.toml @@ -10,7 +10,7 @@ rustc_version = "0.2" [dependencies] sr-std = { path = "../sr-std", default-features = false } substrate-primitives = { path = "../primitives", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } environmental = { version = "~1.0", optional = true } diff --git a/core/sr-primitives/Cargo.toml b/core/sr-primitives/Cargo.toml index 9dc3988681..81fb8eddff 100644 --- a/core/sr-primitives/Cargo.toml +++ b/core/sr-primitives/Cargo.toml @@ -8,7 +8,7 @@ num-traits = { version = "0.2", default-features = false } integer-sqrt = { version = "0.1.2" } serde = { version = "1.0", optional = true } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../primitives", default-features = false } sr-std = { path = "../sr-std", default-features = false } diff --git a/core/sr-primitives/src/lib.rs b/core/sr-primitives/src/lib.rs index 5c87782b04..26b26974a2 100644 --- a/core/sr-primitives/src/lib.rs +++ b/core/sr-primitives/src/lib.rs @@ -145,6 +145,22 @@ impl From for Permill { } } +impl codec::CompactAs for Permill { + type As = u32; + fn encode_as(&self) -> &u32 { + &self.0 + } + fn decode_from(x: u32) -> Permill { + Permill(x) + } +} + +impl From> for Permill { + fn from(x: codec::Compact) -> Permill { + x.0 + } +} + /// Perbill is parts-per-billion. It stores a value between 0 and 1 in fixed point and /// provides a means to multiply some other value by that. #[cfg_attr(feature = "std", derive(Serialize, Deserialize, Debug))] @@ -200,6 +216,22 @@ impl From for Perbill { } } +impl codec::CompactAs for Perbill { + type As = u32; + fn encode_as(&self) -> &u32 { + &self.0 + } + fn decode_from(x: u32) -> Perbill { + Perbill(x) + } +} + +impl From> for Perbill { + fn from(x: codec::Compact) -> Perbill { + x.0 + } +} + /// Ed25519 signature verify. #[derive(Eq, PartialEq, Clone, Default, Encode, Decode)] #[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))] @@ -623,4 +655,43 @@ mod tests { let ex = super::OpaqueExtrinsic(vec![1, 2, 3, 4]); assert_eq!(serde_json::to_string(&ex).unwrap(), "\"0x1001020304\"".to_owned()); } + + #[test] + fn compact_permill_perbill_encoding() { + let tests = [(0u32, 1usize), (63, 1), (64, 2), (16383, 2), (16384, 4), (1073741823, 4), (1073741824, 5), (u32::max_value(), 5)]; + for &(n, l) in &tests { + let compact: codec::Compact = super::Permill(n).into(); + let encoded = compact.encode(); + assert_eq!(encoded.len(), l); + let decoded = >::decode(&mut & encoded[..]).unwrap(); + let permill: super::Permill = decoded.into(); + assert_eq!(permill, super::Permill(n)); + + let compact: codec::Compact = super::Perbill(n).into(); + let encoded = compact.encode(); + assert_eq!(encoded.len(), l); + let decoded = >::decode(&mut & encoded[..]).unwrap(); + let perbill: super::Perbill = decoded.into(); + assert_eq!(perbill, super::Perbill(n)); + } + } + + #[derive(Encode, Decode, PartialEq, Eq, Debug)] + struct WithCompact { + data: T, + } + + #[test] + fn test_has_compact_permill() { + let data = WithCompact { data: super::Permill(1) }; + let encoded = data.encode(); + assert_eq!(data, WithCompact::::decode(&mut &encoded[..]).unwrap()); + } + + #[test] + fn test_has_compact_perbill() { + let data = WithCompact { data: super::Perbill(1) }; + let encoded = data.encode(); + assert_eq!(data, WithCompact::::decode(&mut &encoded[..]).unwrap()); + } } diff --git a/core/sr-sandbox/Cargo.toml b/core/sr-sandbox/Cargo.toml index 28450cacb4..c77dfecd96 100755 --- a/core/sr-sandbox/Cargo.toml +++ b/core/sr-sandbox/Cargo.toml @@ -11,7 +11,7 @@ rustc_version = "0.2" wasmi = { version = "0.4.3", optional = true } substrate-primitives = { path = "../primitives", default-features = false } sr-std = { path = "../sr-std", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } [dev-dependencies] wabt = "~0.7.4" diff --git a/core/sr-version/Cargo.toml b/core/sr-version/Cargo.toml index 785eecdfa7..ef6b2dd205 100644 --- a/core/sr-version/Cargo.toml +++ b/core/sr-version/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } sr-std = { path = "../sr-std", default-features = false } sr-primitives = { path = "../sr-primitives", default-features = false } diff --git a/core/state-db/Cargo.toml b/core/state-db/Cargo.toml index 1806bce403..a0d7e1b137 100644 --- a/core/state-db/Cargo.toml +++ b/core/state-db/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] parking_lot = "0.7.1" log = "0.4" substrate-primitives = { path = "../../core/primitives" } -parity-codec = "2.1" +parity-codec = "2.2" parity-codec-derive = "2.1" [dev-dependencies] diff --git a/core/state-machine/Cargo.toml b/core/state-machine/Cargo.toml index 6ae2ae1655..bf191752df 100644 --- a/core/state-machine/Cargo.toml +++ b/core/state-machine/Cargo.toml @@ -14,4 +14,4 @@ trie-db = { git = "https://github.com/paritytech/trie" } trie-root = { git = "https://github.com/paritytech/trie" } substrate-trie = { path = "../trie" } substrate-primitives = { path = "../primitives" } -parity-codec = "2.1" +parity-codec = "2.2" diff --git a/core/test-client/Cargo.toml b/core/test-client/Cargo.toml index 9f282f9db3..b5eb8a66f5 100644 --- a/core/test-client/Cargo.toml +++ b/core/test-client/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] substrate-client = { path = "../client" } -parity-codec = "2.1" +parity-codec = "2.2" substrate-executor = { path = "../executor" } substrate-consensus-common = { path = "../consensus/common" } substrate-keyring = { path = "../../core/keyring" } diff --git a/core/test-runtime/Cargo.toml b/core/test-runtime/Cargo.toml index 49389a0b51..f7838450cc 100644 --- a/core/test-runtime/Cargo.toml +++ b/core/test-runtime/Cargo.toml @@ -8,7 +8,7 @@ log = { version = "0.4", optional = true } hex-literal = { version = "0.1.0", optional = true } serde = { version = "1.0", optional = true } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-keyring = { path = "../keyring", optional = true } substrate-client = { path = "../client", default-features = false } diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index f5d3724241..dd3ee2fea3 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -267,7 +267,7 @@ name = "impl-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -533,7 +533,7 @@ source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7 [[package]] name = "parity-codec" -version = "2.1.5" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -898,7 +898,7 @@ version = "0.1.0" dependencies = [ "environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -913,7 +913,7 @@ dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -933,7 +933,7 @@ dependencies = [ name = "sr-version" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -945,7 +945,7 @@ dependencies = [ name = "srml-metadata" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -960,7 +960,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (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-io 0.1.0", @@ -1022,7 +1022,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", @@ -1042,7 +1042,7 @@ dependencies = [ name = "substrate-consensus-aura-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-version 0.1.0", @@ -1058,7 +1058,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -1075,7 +1075,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.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)", @@ -1108,7 +1108,7 @@ dependencies = [ "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (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.13.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1137,7 +1137,7 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", @@ -1165,7 +1165,7 @@ version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -1193,7 +1193,7 @@ version = "0.4.0" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "memory-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", ] @@ -1622,7 +1622,7 @@ dependencies = [ "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=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" -"checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" +"checksum parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7b6a1290fe78aa6bbb5f3338ecede3062687a98b9e40cd1dbcaa47261d44097" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 3b32eaae5b4fceef8dc3368b0ffa18a0fd59d501..7180a336985901faf82524364ec9bb72bdb06fd2 100644 GIT binary patch delta 2314 zcmaJ>Yfx3!6+Y*10lA2r3-VGUS4%-9$bOu&&)KMz+lH7yYq8d}CNbnZMFL0?v^bLr zF^SWT5|EY9w2jaxRm7yFoX&J6?NIGZI_=aZq_3HDI!b?pI7u6)KQhyl{^&Z!2mRAC zv-tK}dp*9j*ScJJU;F#}+Ek+oUr{$eqq-c9s=djR!6Kw4V<|gNfSg z=y?8&npdjirxWQMy%fG!utWRi3-G;yt z?4Og)(__p_=jx@=#)@C5c>D2++8EZX63Gg@)R&v!Sc;iDvBBYn&*_WOouih)GZiK9micgW zt??su>EO36DVaoC(~C0@z5Dq+n)>~yzG;K1UWbS7--Xm(yFaNS{B&Ehrp|%ZO!2SL z+==&Rnq9oe-aeU)Fx9d&j!8eh3f|pC)VV16WhbfTMIDbkl%>uNcPxiFXC-_IvSFe1 z>Rm&g^UK@Hjk38D$c5`0l>E%%V>Itx(9~HN3ie>3`QUn7=_r`@c2O`V@byv)CjV^Tdc8~y%?1r@o!^%TDuL4fsq4INMP?8T_}dJ=Ke z2ZuJQWl_c9zoHUzPWC>h&cI;rin^JY+uE4hr!#FTP|^kZs>MukOlmyn%pCl=w;S1Q zJF*b-o@!YRUw!)5=|w%=&6b%}K3$K@T(tEY=kO_E{#X?T=Rfv0#j$v;=3jgnw*dNIS{cLXmwIC;8>xqreI**}ubdvoUb-;Vz9>IjR5MpkQE#)>ptqJI3T^e37$T@i|+JesX5k0I_<6(t*S z3EHW`{@;r`b`6Qg0mV7GQis@xxD;^* zViw|6#1!HU#4^MWk$wCCExEdqM(jo`Ld->pKTM}AL2;MpN~zMPD7|ZORgkX2mxw%&w#{9cZUU7N{KSfSJ*?aAIs7+%wi3EsWXf?Z=4Nt2F)(TveDX2zq;3yPrJJ z)zjK_s1ruc?A8ghh2eW4_Z{XFN5Us(s`WrpGjuF!N-7EQ7}TG&b>T6~<D||n2h~N%2Igt({%bPbpe8}FEZrum{6BY1_vw5J8>xIGz9G44=G3m3=hx+lB z6rsLw9qBoicyN^!dtft8n?Xa`@x9gF5p=ZgQ8}LSnCy!S3^<#0Xv6w~6J_P}*3PGJvy~G4|pJ%$q0+x-#lNX6Vo7;Y2sT-DFyf7lk=5Dmc?z$cce=U+w%-}&Asrq z>5AfphBhIkO*~IHmd%)H3wUs1k4^(y*gPbbV4h|BKKyKAZIMNp7ZTS(&W;ff`?DtI zs7kd37O`;(!f;LDJDv?y7ivxSu4%*%wpxAmBS%ae_IKnwgT4WC+;=?h#O&-Do$)k>q?7su3;#cW0ik%7y6W?6*8q;@aVzkWzZzS6L` zFf5CiZWu&AdHr{4p<&|knVeZHB-HStp&$K4EhLl?lQ`7F5J@Q<`SF>;fCh$;B%oFx zJzv6x=`DrKG;H5A91(`tyMV*fYjsarKJGsDk0RqGCA%yaF~vZ-rR>BHXW(GrjO+@?O4X-255Beaf^_5TH;CXB%V delta 2297 zcmZWpeN0x@8NcW9BD{RaeL=uitXvHREk({f_n!Mfaq@1ZCbX&2#;qT7cVxwM z7Nu4$WRbGyzp3>(sn~Uenp9#;syRw|v^o7dg1cX=sf}U%S~D+=o61U*LUhW>&yuIR{+p3K4t7_zWF{v=HRJ^T9MWp59JYrUv6uW z$t=h%8orH|XYhTY#l?;6hbOZUrgjt%w5j{n!qrwvW~02vL>|eDI=}l=7MVHSxe7iK z6|fz$VX^J+cMVDL+uO=N%V&=x7hSne%FircM)U4PnasdouoDZ-2mgo*UD?xtN<;hg zn3cNk8kw2yd^mx1AL*(_zR=LV2?pBhl9~S;!=y@PCi>HJi*exl-TG1l1=jNfIv($N z5~Hs7B;u%r1Di={ls-6zO3XR0_b3^Mlf7%|#$#?9Vs5wQ*<2{8h05CHOmRRY9&%Faz(tjAE?hKjAGHE?ml& z7DhQtjn$M`Ojx$h0-YO%=`g-}cOz(%rEqiXUaV1C64;JILra*BrfIsarKbppsY>|$ z&yN&4JY;5wQKm4t=NfCChuu?Y7@jJEACEs+Vp*1Ec)HL+iUpWn@e+ZL-&hU*9)DIb z9nUfiuA4S>JV!I3`!!n17}uGnnVu0KYtLCn8#iu(k0$O>Ld|!W9@wGq@mPTY*I%nr z7&8My3k~1qw#k?U>50l>%BWzL!91#mny{Vq_XCO2B@GSjJTz?GcUee9Xxfei2Pbwa zVW=_RaCH}3FFZqszfEi?ra>48#=X!md?WPDdpYK)O0@@+`j*WdDsYUR7s7)VYf?dA zF=p6W;OUeGzE=Y;Ol(ysMDi{`L?68Q2U6ttmPa`c zT%WtP&Z4Qe{z{7cAija75C+BT<-*ywFBFA=j;9rr3TlMdvzF;CMXoKhz;Ka_C2Ze; zq3I2Z9r{A|Y|UVyuyt(0>~xJ{2+p{0giZ~^3LPJAP8$mMnNEePVO=-0^$@-lRVyBT iKsXl7$F?|zroo};d!;_ZWY`)@WmI$Os8&bqP5%Snsgz{^ diff --git a/core/transaction-pool/Cargo.toml b/core/transaction-pool/Cargo.toml index e2f19b839a..59e16e42e8 100644 --- a/core/transaction-pool/Cargo.toml +++ b/core/transaction-pool/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] error-chain = "0.12" futures = "0.1" log = "0.4" -parity-codec = "2.1" +parity-codec = "2.2" parking_lot = "0.7.1" sr-primitives = { path = "../sr-primitives" } substrate-client = { path = "../client" } diff --git a/core/trie/Cargo.toml b/core/trie/Cargo.toml index 955c6b95cd..a2c20a87ba 100644 --- a/core/trie/Cargo.toml +++ b/core/trie/Cargo.toml @@ -11,7 +11,7 @@ name = "bench" harness = false [dependencies] -parity-codec = { version = "2.1" } +parity-codec = { version = "2.2" } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } trie-db = { git = "https://github.com/paritytech/trie", optional = true } trie-root = { git = "https://github.com/paritytech/trie", default-features = false } diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 8a1888d936..f0d570a8d2 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -11,7 +11,7 @@ tokio = "0.1.7" futures = "0.1" exit-future = "0.1" substrate-cli = { path = "../../core/cli" } -parity-codec = { version = "2.1" } +parity-codec = { version = "2.2" } slog = "^2" sr-io = { path = "../../core/sr-io" } substrate-client = { path = "../../core/client" } diff --git a/node/executor/Cargo.toml b/node/executor/Cargo.toml index 0f53831e73..58d4d64148 100644 --- a/node/executor/Cargo.toml +++ b/node/executor/Cargo.toml @@ -7,7 +7,7 @@ description = "Substrate node implementation in Rust." [dependencies] hex-literal = "0.1" trie-root = { git = "https://github.com/paritytech/trie" } -parity-codec = "2.1" +parity-codec = "2.2" sr-io = { path = "../../core/sr-io" } substrate-state-machine = { path = "../../core/state-machine" } substrate-executor = { path = "../../core/executor" } diff --git a/node/primitives/Cargo.toml b/node/primitives/Cargo.toml index a28714f6ee..bb9921f704 100644 --- a/node/primitives/Cargo.toml +++ b/node/primitives/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/node/runtime/Cargo.toml b/node/runtime/Cargo.toml index 2385a8e0ec..ad644fa3a3 100644 --- a/node/runtime/Cargo.toml +++ b/node/runtime/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] integer-sqrt = { version = "0.1.2" } safe-mix = { version = "1.0", default-features = false } parity-codec-derive = { version = "2.1" } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } substrate-client = { path = "../../core/client", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index d7f72b4eda..2dd8260e83 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -267,7 +267,7 @@ name = "impl-codec" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -467,7 +467,7 @@ dependencies = [ name = "node-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -483,7 +483,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "node-primitives 0.1.0", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -591,7 +591,7 @@ source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7 [[package]] name = "parity-codec" -version = "2.1.5" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -979,7 +979,7 @@ version = "0.1.0" dependencies = [ "environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -994,7 +994,7 @@ dependencies = [ "integer-sqrt 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -1007,7 +1007,7 @@ dependencies = [ name = "sr-sandbox" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", @@ -1025,7 +1025,7 @@ dependencies = [ name = "sr-version" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -1038,7 +1038,7 @@ name = "srml-aura" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1057,7 +1057,7 @@ name = "srml-balances" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1075,7 +1075,7 @@ name = "srml-consensus" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1090,7 +1090,7 @@ dependencies = [ name = "srml-contract" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1110,7 +1110,7 @@ name = "srml-council" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1129,7 +1129,7 @@ name = "srml-democracy" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1147,7 +1147,7 @@ name = "srml-executive" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1162,7 +1162,7 @@ name = "srml-grandpa" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -1181,7 +1181,7 @@ name = "srml-indices" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1198,7 +1198,7 @@ dependencies = [ name = "srml-metadata" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (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)", @@ -1211,7 +1211,7 @@ name = "srml-session" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1230,7 +1230,7 @@ name = "srml-staking" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1252,7 +1252,7 @@ name = "srml-sudo" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1272,7 +1272,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (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-io 0.1.0", @@ -1317,7 +1317,7 @@ name = "srml-system" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1333,7 +1333,7 @@ name = "srml-timestamp" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -1349,7 +1349,7 @@ name = "srml-treasury" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1366,7 +1366,7 @@ name = "srml-upgrade-key" version = "0.1.0" dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", @@ -1401,7 +1401,7 @@ dependencies = [ "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "slog 2.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-api-macros 0.1.0", @@ -1421,7 +1421,7 @@ dependencies = [ name = "substrate-consensus-aura-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", "sr-version 0.1.0", @@ -1437,7 +1437,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", @@ -1454,7 +1454,7 @@ dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.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)", @@ -1471,7 +1471,7 @@ dependencies = [ name = "substrate-finality-grandpa-primitives" version = "0.1.0" dependencies = [ - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sr-primitives 0.1.0", "sr-std 0.1.0", @@ -1499,7 +1499,7 @@ dependencies = [ "hash256-std-hasher 0.9.0 (git+https://github.com/paritytech/trie)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "impl-serde 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (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.13.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1528,7 +1528,7 @@ dependencies = [ "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", "substrate-trie 0.4.0", @@ -1556,7 +1556,7 @@ version = "0.4.0" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "memory-db 0.9.0 (git+https://github.com/paritytech/trie)", - "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "trie-db 0.9.0 (git+https://github.com/paritytech/trie)", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", ] @@ -1985,7 +1985,7 @@ dependencies = [ "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=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" -"checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" +"checksum parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7b6a1290fe78aa6bbb5f3338ecede3062687a98b9e40cd1dbcaa47261d44097" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index bbb54f2f1b97ceebb350e68d729f8699d5022e26..9ed1cd63060bdf63ec20c7e7065ad27643cec18a 100644 GIT binary patch delta 64998 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%0DB>lcP6j3(#W|-;Pcp+N==G2RCV; zU~VM{+{}-&x$F&tMfKx|?31u}GfIe?YN;)}8)f8+5SJJ6yn@B^=rYIJ##UZ}GlL3bW zphYa%EU${GbBFlOhSKQzRHD`40>$+2!8yV4cZ zw4;1O&qh;-&5RKxN}!1?lw!jqN@L8G12Ju}SzDo>u$(QpMW7j}#iy0K=;mgzXFT6& zvZ2dcb3d$jt_EJ?H_$RHGr*BK854H=r`6c~Tzz;Q{hWx6TR))~V9Q{;&7TR)K&&#k zqPe_u6kAgXt!JYl)Eb1*s3@X?1hxxoclgiAc9?aC|Eh54Z}44y0?C0DclmHH=k9D6 zAa30Ockc32|J^VZA@?3%BhtAq$Lb?!=p2#^@C2KM1>q%Z}6nAE7biBiM0|;`He3)?o-eI#=pgz7clLn6l~>$XtmR0ek*4_ zsS6S&KK904GG*>IFtPXZ1Oe`8U|8vft^y7EY7g1HYhF(B6RdQSmz@=%x9pmqJ)qZ zHxsw9{?EXyW1GJTv+z|(A^R1e)h50|gM1rC;}*CI4)xh^kUP|84dbXjZzv@Uz_@-l zWMX&>XiC7av`VFgukes%MQLG!zhiX`6Vb7{nu)mR9E>U>%)oi#1&p_$r=PH-U~*P} zA@&W%b#H$}ON@HVUpPfxnFwT+73N^a##M&^_}V7aampwO_ichgr_F??HleKH3^JzZ za0Y2pL}yUdK&0J*&Pu|=K!IJCFnTWugMtL5;k22|I%ABzLzzIzF7w#XM6uCAHdsD2 zxh6u`5+tM-*Dk}Rap;`F+pyEw6E9E&mJ{BF%wVB&k;U`Tmfu-U7$>7splKzcFPR0a zDhbEPY)Fj4b)5yfql8tM`Z!u>P-G|3@K>}DjFkgoggSKNM(7?Rgq6r3I2|{u_7L?) zF>40QjS=1>bAVJ9dNrMkLE3f>T?DwhnK(yjZi+PRy`s6<5S3A;-B;|W9%*&l8@cl~ zcSoHAdL4IGXWtcAR#`aYz338ho~qi(<{9=Hix+byRuPVpd1|Ms!cLCNSN&=T9}s+w zjT64+$QF=l3uDoXkW^dnBMa1JwFQna4Aen(wh(UA5#A?r)VJ#*TF~3Pww@4(!L}#r z2_Ir%eLE7zcQD#6e23_%P+#L-o$3p5{h-1q8sM|k+s%Yk_yl|g!{!#kReYb_ zQdp?pJVMdT*1i@#aOrzx2%+j{t%TMxUKi`}gHRqh+_Bks?`h4af}2{blMwIjs+oO_ zP*MH*ePM~?E^^^cYxfg=Dxy^YtR5`5L(l#~PggbO3>2C|=>%b@%fbXKOA-0w zpw(cZva3Q3H0uPx3_Ax4O^c{e5&HNMKefjYp@dj?iBw#o6$0jU`$`DGWy_v}%f0j~ zp+`Zr)}wIBZ;!;Cl)t!`RR&VBaL_+SqI`AEZ%`=Z2d75~6$@pRfx3yf+wT0tupy=3Cpm3lE$%<}m2Lw8M{-lQ&lBdE z^Q%FnWr7W|KNTdlVOzKuh4HK!&~UMkTBuQ1cz1~qSt!c}+h+ylOxt&Eodh@d zC{u_n$Tyg+4EHmIp8uJzjpD6-pCvqVLz$^A+953WBeT_3mxT>HKF!yKZpATfyU!B= zjZ_q>FDl5T)B%4A^$D4)uKG(DB9PhZ%bM{*$Z_>BF{hGIx3u6u0d)wb3IBe}ae~Ee zn}nL~8A<(c^SY7Lz04PkB-T8ky}OAPdxU-@%A+u3|STpIIb7y79E(>uv2N`q0F^fcGx_ z=>9V>&Py~dUiyY>xjJlmR9iI)W1H7q1%t7#BY!pBwDMEhdXMt0L%;lqYYh z&x(uddAjETWR?=yg01uuJE*lviw!8t9PKBDqdAS493{W1YXiilgdTnXf0q^Ok@Zl^ zCgL?VwUbT!ObdWG5hz|^&9Z_-j2={P2Z@^~I)xXO7l*NI-wI-b3b$VyglE`z>gWpM zmlRFN7a`&-nsFXxg^J89I2S6mp-V16L>LQOjon3i`R*Na;~-?45MPAk;L^GoeSA<;(YA8 zTTPKgcn8FbEKaILytsq+zx23}MSSXUfkk}yu^L`a{1Gi;)uX;xg3zV8P@#bsVa|Gt zN^&VcFd|`G194IQ1)yIpLFI;G6MEy4I-;R?pIB$+?qDtg??B!y%3|M|tA5%T11IVl z*N6;MxwcOV=YF@@aeHFTZ8+UT3@Lk$ZN)VhDQ3^ml!&YB6)zrNWY4R&!M~|kx++^L zyen;AvCg=QWsH5&$l3qua2-r-Z{7s~O+{aNXfs@EDhB3Tl&bQU z*p0&&wSLXTJbE}+t=U2Zc7W_zQ}pHR7(VlJOKr77Tj5evf_Gbq3*NAVC0dJv@#gyY z*5YS%c`&=ZE)EE8Q&1wnDw;)T|C-BVvArG=p~=qQj87BHk6lV{pZ6yiH`R8Xf5RmCzL| zQ_?f-22chtFyUP>-La>_p+~qVL5EIakU8T#(ycex!^H~lT_>?L+h;kQ#JBWqR~!O5 zi;d~&Gw^JjN&E6i&0PQ+g1FYknyUeI|4us!8<*X8;w_Udy0ctGOoAS7$1qfkrx~SwYS(F zAMSm`R%E@}t&bSW(>2>*LcanwZ5#?X*tB*ea1bu^6DQCGmtn_Hu>_G{%<%{Kj=I_tO%DAL>o=IJad59j%Hql4gNK^`i`yYg#8$Dv{kvJp~- zicvTL6(^uatDXKxyhZ2#2HQVI!f`~6_zn|$v0025rV*It7u-Kg{0<|^1`QX>oA0rS zm4H#ha1FN(7p>UNsN)CEha;r-AnX(Ii6Qb_;!>^ssW_Gd$GJ()XWp*-E#Qg3!jsQX z>Nq|*k~4<)fZm^rOpvetTr4A~*T#tbc{OjO=*g?iz7YosbnQ&oI9X(0rTAmA*pnqY zCLs#8LP`=!tzY3-k|sNZWO1IJssOpkqU!*HzmvrfD7vcOc#To!BnvePH5g#to9q6o+>soJA#yOAQqZYP&H|q*p)7N z3HPRnHOa3tXQ1=^WvWKGMx7~I_80%v(I2duA^JNU{mcnIZOa za>Vxpu_nzt4jG`W&p8k)kjR;7Vn1K~OduNFHOPdulMli=N`=HU5k2~lmL`6Q=N&%j z;uvIhY3X8B!a6!KOYGs2>g&xGQ}n}vDl})0rlpm-ig#^w6-i2{FIGoo=xwG9p>7wS zA^IaN6nrehpZumKXP|O`gMBntEW@73^Tg!@N_;0qW1`7-sP6F>1R_GO2Y7KSMom~C zuAngG2Qd?JwqXmWkL1kU&IlIX*^V9L!i(+VPvnq#Ge=i+!kGu;72hGA0M(u7Nq}(%6CmT^rM)HkM7q+_Kl^_uZunKaqc=! zHB0^S2Fe*sF25<3)>nK#-mr0JBOgMCE)KW`!x9L_>s-4jR>O)Vf6|uu-cN|4n&5Ry ztcU~EyoJ4FLH}Dw#F6T(TjKlddKtNkisf+#x+@L|(hw8f$Q>~iLaPQzY`MJI!G%p? zq0bU7S=L=~5YcHf4QUe(7DH%;ps%b4TUkY0S^Ir)7W)*;#h=Bucoe!79*UiqBz~v~ zXOIe9`=Qr51)#M1gO8* z=%*w^*W_gVvrSVMvp$YM?h@n&$JIMa#B53qt3NCkKWCq9vaJ@&vd=cvTPKzlMdTgU z+f@B#14?uZn$OuN-XllU6`N4o$64>%Eaq~`=EKPT1DJIRFG~wPuyPv;w3;u(m^TU) zAINwiev6zhoJf_R!%MLdHy^`-=f2d07t5S3#c^8_cg(0Ip^e6>RhcncYQ}sjp?>mNg;1mtc%6N!a~YW=mP(ubI}lS&PpBVY`rs<86qlv`AgwaKD|My}n%RQ|%3 z^w6qcTo&2-*xz5}zpN2w->CCvdgu`><)lvxQMO%>%0n|=@Za5w=H$WD(~bf1lbdTvrWh8>)DlcG!R+GR?JG?|bg95B6&q5Zs_8)i=&3xV!9 z#6hUzE(MgBu+yj$`!)uuYE|+k!$l=zT}1mQv1GVFw{e8NM6DQ4=JYicHOW*)RB*|8E^mk zCF=*9;E_BtcgfI3?vk53-p9dj^kR8+&960IPbBhMD#ekaS}IXb9n_;a9vp&Z#iVLD z9)jHr9|&>XFl~@mfZbz^TmbC##GOzTFM5-&;S;M=10Soc(hsQVbnukkBG+KPr?k|} z@IL+m2zstieYl^BCcb#g*ORVQF9f3Jw5 zX7`jpm{3;g7EnM$ILycd^c#xyj8Ov<>|~hz;X}Z6{2b}+E1OgiAK%-gFdv=DgnTMv zlpd}A87vLuy)lZ$CZLpK<}4S;8IMYCsu7ITCsa0<)vO^ariUAaqPyk2T_SAiNphK{{X@_YqdgckrPrkmc=vsXk~V z4VPFz!v`&;(=>4x)NLj0VQF(~>89UL`dx3sPIH(xn$3F}#5U40TojG>KIPg7I$VLUv@;e;Py*zyfmYc^C-+P@{ts zP8Xeqz8!D}xwMqegoC(U zS-4ZQeKLFXV6Xa(gy>FE4N5Z(stH|iE3=TK8C|8fs_MoM)7lN=hxsD)@G4FZ8euwC z;RrCVZqgXs&KLpK9Ikbf!cacBb(b1DSzDcZNG#-MN)IUsi<9 z?~X)-kCBt~h%7n%Pq}DZ&Tg1|*2s*n^ai2|LI(F`u zjaw{z#-P^kR6Jm6IqsJG?1{H3@&-tC6b1=%a_-JjeFsX{n1=Y*APMi;A5-NaQVEP# zP;DPey{QHLr0k=Jhy?+5443@X<--x7SRC=G6fc&n5rpg~l(Pki@8GpIW`hx2_mePk zq;v)sp~EO?2x4j9DCsK>9fpm*mO?$_^rf{Q8 z*NtMnseM*pwsyvN35|9LIU+^CkK?6|NM1F+ksgz35HmrlV4lES*S>J&Td5+9oggt^ zh89^9@U7$z2PR0R%`2FX&j(s2O99}1OkzI1f*Oq{N>*|QI!=_z(`~=Q$cZSGv{^*M zFB7F8mghA|YTmS9PdWR9ZoEF&+C?MyVUkplc`}bqlGy2h0ZDZ_|1qRamV&?|MRId0 z@P`fGO2I68Iw}uMkO$vNEXdqw<`0b~BPGW{bh6~jDq$DR9bLtW_6b~qJ?k;}B}uhe zcz>59lo!s8D|U2O2aeu9toaP zq;{`AWq>hLB)pTQmPwJ`BQ)a(j7pV!$PSp1Dg|P;nu@Az?Hr;Lz}Nx;NMx`3aSJ+sJQt(ds9vnD&hce=EQJCuf@m&>K%V4H{k zyM3Tw<+rXy+9*E*G4*2_-XuX)E@Ot|g_yx%jF3d$WwKhn0jsciBONvGla_uasO2ou;r&EC_(>LiXCJGscek$-X&2eUgrvgvX zz&cy%jguNSTbhV=^^4i4xgw>w&5=rRcV;@{ru7_&dHK4`k(%oR`M}mW(qK9%oneRV zUya^AohwZ>&r3&U>J2-lqa9Qg5sQT*&q%)TU>^SO%2NDV^2m8o09}_3bLVOH4l7l$ z6i=rQ!Q2H>U`-dZ{U->_8of*Xa{;myWLXWrlh(86Uq7I=lL3;KN_fLu zt+5QnS%Ff}e>v`)Um% zo29nQftRyInnQ5l?pw8iCvQc`dI&mflUifo+Tv|ePsD+=9oau7KhKdqHNF8UIVS1& z-l@c85h zj{Q{$e%K|oE2vC&OUwR;Pf5a0yQQNzn+_Tbq2jr#7|waudJhc4z-5eN2Fd3FpQSW70WZQ$smQy3rR&A)H)^&D~VSa^~;S!yWGgx7hFa}dg)5Q&0_|$ zcgQpqDjr9BU^SdQjt+y>@X-k=#W*c8d^(PkH|>j42O;33lxkQQMh%CZ;`k<2?n#LS zC-*uf-NQv`aT9lW6u-~&UFP&_%LJ~GS8SiRd>^oqs7jI&ax zV~*|Fkxa>RQl0l)lT8LYK1IiYZW`)msd~bx{%+&@rcQY-UiA~MgXbh`!6yCjoRo~y z8G2sohWh%^^U~2+O#?^2k)fZnZ~mit&c6AtYv-tN<9i}O<(z#BAGs$}%}-vC%9Wa# zgBylvyw(J?NYG)-USjOe(!uj0ngY=fauHR982qX@vd?H3eNkG_Z1yhALtOX|) zx1`x5T0LjrQ@9#<+294#8rhWyG`p?Ckvgjfvt{)RHJy4vzL=^oGG-r^ri!6XfOJeKmWtW*8UI?cbb zjzJ5|dt{hbHhj~rtZT;AmB-j&I`}-1w&Qe8J(1pKs(8>-P3gz0pwTe(siZ{_til9V z!MxrsHNp0OO67D5^(w<=e!z-`U<_C>5PTM2F>#e`g4^uvEJn5?hSjV;rBoIQ(D)fH zZHzkX87?0tGoB*{dI+&Eq^@WlPkVt2ejfV0l&Ud6=e^XJ;JKGlV~li|5h$ZfozYyr zf$d_596-+=##=jbX6yfMXKE&AeId{tuVX0nYkm2yJGIm=ALwp>0qv+f6i?CjQhBXD zmJcLxvc1*+Fp#quW$+;I=j9AzfTO(Jki~PP3o<)AZX(F7oszkN+>a(5g=%IwJ}&9# z4*X=On_#iI*MEtB#lFUiGw6pi`Yl9m_WMSh(EW9=)GTM==IJiVkt`}|vLrWi+C-OS zc_b6N%!7r?sQIsOEm5FSYaTliaval4SL7_W4JY+Tequ*IRy&K_2A7U`53Ds{rA3ZH zo$L}m*pj<@$ZzX=ler{x(qS8s?alk_sqam^q0b0LLdwy0?rq23O!bhbCK82iKju_0JawEAT+*^NU?PV|!dqO;{!FZnm>{Jr)STj6IP zc{{q{)Kw+qa25-EzLdO(UOWM#O3S5j0<%iXL5vSf!%E;fcOM_nq z$aQH|jUqyDOnq8Tzk#Ap3b_#$hTxpo&P2}=<2JwAmD^#R)VlJg^pA8<>d7rwcBgvsz=(a|u-8gk8%aqw1c@5>JMn{Gw>*&aU+R>2)^=g2Ijbv2*^-rPiZ6r4)xvG0(`C>ue z@LLnPOg`?QcvIPK*eXVs4qHX*5^a@_n#%pyB-w|derYOuKQeczH7;Q(?o z8Gj_?5coBh8-*Rh3ouBNrUdPvWB#awAdVe;*euN1W_A`6@NILsYQ!Vm<~7#jp>FdU zpxo8XCJmGy)7hG|gSsu`{CngDAF65qYg))s!NhV}$X5;1k+KCq({WWx9c$HR^oRVnJwY`6B~vy+xGC0k^Td4!E^}5$=7h<)2;wM%~gz7L1cUKe~G~ zENCmU-%Zh?e2?q_kG8lU#$tdUQhbc|b(ivv*b&CEoDMuO3LHIc%q@>$xcjFV{TN}m zV(IzQnRn6=hl^EN+ch&-9=P>DLdJd4yocPy4IZ?WYq31a=j`yzcSPdDodU=*SgZfc|hUbFVDe!h8rt$ z9*VqdwfubfFG_E(gTO^{1Eh>LOXT9}=ZoZA!p^jz$@dz!(ae(hKghnY=zBSiCT7Cr z@8wXeF8v_4rKy<^xCAAD!+gPd9oX5z(;qa!R?xQnVmXdnfGLZaT-QwLI;?YGe{Jm7R)4bDAXPMlJK02*V zSthTgH2nKEW@x)?F_TB8}9Q>t+0ulH*HT+DXq#h~F%CL&luGnGr&?+IFkFkI>wc;I|#o z@#rM9-7bgV*k5i(bYhPux69eA$J8Bi849P=RXb#hOmAkvmV+AZ?;VtT(&t%dEz6ha z(MUX2IWwk)1n^S;V7qd028pE@fEwFZ1Lu?R&M4j>u~a zu4ruOS3Ed7j>^n~^W-R!$RP;HliSconfQBCa)p1#Ob+MCzrMm6;NUU&)W2gexyR-1 zIIXY~NHCGm;e?z(7iYoF6Y>a}oCS4H%IxDonyY`}N%<|7ck-lskoh0ypF-sb<6=)? z%Y*RODfv*zS?f{Z66`^N#4Q||d7vB9wzAi&mrl#c^xwe+=Wyg0^~gE-GI@2Dn=i;$ zs~OHM7j%g~Q|Dh;w=*ii(TmP9?BPYZeE~mjbx95{NR7E9k73g^UzQ_qovK`xr~f-O z;P=b&XE=j_SL7!|UcMRk8{fAwxa&z1*ey>8wanfX5=q-ChNzsbM-{~wC@r}#l`AD8oo@qfvaF;>g_Z+Qi& z;Ihgqi~DG^dh;1-%#r`BvM#PRLCO!JFEo51FI1NjWhYgCdLi$k>Ml`f&8Y);odvRhr`t(*6}{q?@vWk8s>mFg|qSxTj#8-8=3nXdE5yDF~j*T7T_#v&`D> zW}#gE27}S?LP^O$wB9)DAvocwG(f*~NiXF?4zFNAd`YD=oqHH!yp>Qm?4_{q?#o_E z8%G`s9>Zi5qvdU`a(6Nhzg+_G0t%~3+~Jj^jJ$Y zOo{afvc*g&AmBGusr@OhL50RFs$&?3iDe=58IQ+!7{uA%hPAukt-a&w)NrLFgJoHS zG7dYAj#Rqi;8P-%Kmt8air(t3N?3pu-ilTR;uJPSBVID$QnWGyGe3?|Dq{87G0Jdu zTJBjz!5_cOR4vt%ZmdoJSjC?O6f=y$gYrrQY>HLF%j38C5g3fPZOoqK^k~r*ELt>- zMT=_nKhf(~tBy2u1m3Hz3_--5sIE+6{dSL28scM7oD$?%l>HcSi$-oJmq)ef=V%eP zN8rae# zYA#D1fz7oL@kgLcZG>ktG_8$gnXtXKG88jo>S$G3u*Z7nUq`8ine*x(YBs~ZI?4)6 z4XcZ(Bal&734yp?T7sjt4L%+nd-+mgfje9IkwXOZRNJ5Z88%nero{drqmbU*Kd|IMmn?N*y09_DM#z zUX0xr4hSrU>>S|C2!+Kksr;8p8)8Pi!=83W?edk z8wQM0Vmvl)(vC>6DAbg>36_mgKF6YRiAq(E15QOdwIV<87^Reev_$1Ctn_1|vJD># zMq}M`n>0s@*3Gd^ux5R3ex%Nvqx9quV^8KQ z!FY?l%mU>@Gd?FRR#ZM>@-;1xLS)WHMBb!p8e&A;6^z!#T+MwYk8DKA6Ii-4$=if8oLzspGKp1v(cQXehTNaASAufd3wO6~u(g9s?Q z3c>i*=vfEjwvp7qxN0PIFwPoD1S9VntXQj*gDI<&PdujoSb&Y>AAw{lVNiRu($HnW zrlJa}ttq0#+M)^~*D4L;w-|%#Q^+!s`V>|eNqq|68A+T%#*b_YAG!qcopnk>|M5m; zz3oe<=|8y!KX1TUURsBn=0B%@(Bpv776;npKna(nJabVw463hJKKdu4Jy`E@v@oc% zp@@RX8{RYz73Wcbyb4y}My1}XdD^n3Z!BV@TSXOA+oY8ECzG3s^;`~lwWxwhn~NZr zWmxb}hOD+l2_Re4c3beb-~6ZD(1_Sj(UXiMF5tKuur6C^5WoJ0#uJDZAA+BjyWwD# zI;kx;TIl4m$Vg%bvu{B3R+MjBV9ZwKgvayi+EAKn_wjY;y-j&5{ud)pC*wOtQt$hk zk<|M>XC$%jW7pxD%&OPN4-@N8->4naA}N-W9C zQEnLDRMGCw*RpZ;>DjP%htkRC*&USXm-H`VY-aBmKw1T=?o{5@e|HcMaM^h&Yw}&T zI(MfM#*Rz0FOIVUCrL3oDuP>8`BS?)QEwdhm{a7_A7~BYA5a{cJ9QEuAd!7 z4KfA-j<_y<_XuipF_3;lIfbHU@KKaRF>vXqk*W(1^OO%TtMf6`jic4^$CTC-56O+6 z4>j4#X~VIR?wvrP84aFil|cOEQ~?H`R7yjuv#8Qw;J$ zL<9EsE(9D`%BcHJDVNBu>`(<`K z-OhnYx0SB=i|n^YeX7)m z=~E@HPvshwdq-ER5!HMai=RZXau&Rmu{mbs5_FqcVe~bim-jO>C^yA`65fz-2oPvK!Bg6$v+3Dw#{-@`N!4qyD65kMFIf*!!2K^ zzl2*v{vY?K`bS&JyapeQVk{v=4yb++W7#djjmL`TKOPVU#aaG2xxl43%bB9b-%-;t z^fkcOtz`)U) zOT3F^lAdj<_qo*+GTG`#nY6T#FxvLS`W{9mJ|o|QUdfh{qp+z|L{p>ohuBocgwa*~ zHU(Xc>uoiOj*1M7dPVeQwEYzOa(C*hW#oI-{P}JkRJb$WH*_`@J5vlO@j0$H1dgzj zto9G!NXDjSr>6DWz_Bm&rp}nGfe;v=8_((g{it)Xsq-TI3xHR=0`NKt_OC4^Yv5d4 zzX45KUTL}m)1|>a%;N3EmaJ!?=5TF?DVR>$@`9ycjh%7p=*+YX>*s@+Vl|;C%>Q$)Z{WV1P*8se);IE5 zBdk9vzp>F#2sZF?!ajIP1K^+DU ze)V}4`>BV0tidN^17G2@ic=cHMPjTSWs&h_RX00v)uOR*NqM=iE7b#DWnV|3QO z5eyufO#AWu|EcUs;H|34{W(`GaBtuY$UI!;8TLHD1uhDT6JE>#OyurSP?}Y8!k`9d}M=CBkcl_-XpqRt_&%)1EUx9T6=03`3uCn%aviJH4PoqtSnii+@|{2 z1-$c^TwdJJb4{~ZAZ?XM`*uQl9Z1VOBb0ZD)-Nc1Y0zegQo}pT0}uKMnz+NDkN)R; z@5Z1Xqr}^!QQJG2@BIy=wOyj6=Dt?nrNy0)J_1sf8(Q%%#fr<6zC`)DH0TPvvxM+c z-vya{GZ`|-Q@FmTktH_-V1(26d zo$Z!7+aYyE3#Ug1{>S-;cSy@^>}xOjsx4-4))RhCLuagcsIh8>s^-xrdU<;f)akjO z+>s!cMW;^gG?KsH3Hb>iX9=d!KZYf!D}MMmK3m%bZa+)xxjf_k!q@89&3I=D#{3E> z>lnG*t%|thuFR(zBawO%DR*%DRNE z>A*p?Sx}FpT%QmJ0Pa>P6mln^s@=Fj>2uh9Jqx+Ts0}QLp&OJ@m1|HRh5E@T@ynpO z(LD;e&!W5(No+%M*k_dPuZ%QlJ+JL`X!e_Dl0Qmjzi+td+ z_W|a0aeUURgyE~;O4pm~;I1@0o?rK=@1d;Leh3$aXOtYC`B6)OOGf-*l)PoL@Xp)u z0%+Jce11-S>o&DjJ%sEWP67dIWSQWzXlG}Q2OQHo8*n{JV)W-xlGLz5=mMHn)aj8Y z%>C}e#E;9sxn~cDgT{x#2@67ur!rIpGUhmPhizpwx9RaZ&k$@kcu3~pSAfgBu<^l; zust1dE4jY|nHgknM_}$iLp|TO&RDMl#(YhacwfT(0q_n-+qY1X`^)a^64a-me)@u} zpVJq#WG_7dpsi)Uwb4BVC^uJR3{&v}nCClqxw+it+r`k^lyVW+GzESn|8L9f zb?hB@=dI&%Uc*3AP@Izn+Sv)|B9Jm`(8%Wws^&r9ln%NcPU&iZd9Nif`G*IjNxj`k z&lQle#v)Q_J@V?`?}T(CNI3{0QYliG*HggScni3^wPC^yzC^pU9ewf6{J`Yj0lDmo z)J7&(Z>vN)rjwC>08(=AxhvT_dkiqLsq~PR(4@XvJL&7ChG`sHUq&_IATMK1C-i@= z(RVf%d0sS^1JYdDq`tD*=5p_$FXE6|UzMEPL3Lg=OzKRY*nFuoo=BI$AHPYT)YpoG zeGNP~lU(0gXFStdKy@hQvF;8r^m=7*X#!B#@DrL8(5;i!-5LMR04bXiB9(+n-m(n` zXGTcbGp}J(iGO7-+9;9o2E`zi8E_fRqMm8mBu#otC*;;iS^j{#lg~=dz0z69Q`y-` zU+ZgAsr5C!!@;wHqy&h>TKTdLT(&N z*$teCdLHd$oAwSX;5!8!;ge9`D0W^CAGifzvP5r+1E}`fIkb=?=o`&2ohVO1{T!6P z7KIxCz8B5IQ2i20>NG@2uE8|X3UJehL&UZ#l-@)44#~19n^BSrD$h+vJr*0Ox6uHT zv5>(NP{&^`2DtJy><24>cSh8$Hf^8$blp;Sdbs@`z-M2q8E`&df_oDF!S<2$q*7ak zUw2^T0a*cd1p)Kj;)Vg%qt1Bjz?Oi|$&8H>oF=prb;e^~Y1GI{onZZrjw{$J4amOC z6ls7)`~wm`JFs(s&yxPS1g8n*?!tJye%{6a1k9eB8z$5h1iWJQahCy~bEAy|^rZo+ zBjpZydtU@T+rMVOD~v#Ro2n>3F!kfLW7PY_8#Pwv*k_#(pPHL}q(D z2u`1vr4TN{JIN+bPFJQc$hEg zo!jM%`@INhcm_5098S17Npf<(zyers2=?2_2QLfP-ObcU#o(Q}iO1RxQdUbuDmftS z5~+uGCgJigAmspxNF@iPRU&Qcg!Ds@(&_T^F%zEO329EN%P5h5%!F5TLi!?d6s%E+ z^vY1oyg9okmbYm`C!~DA#%sS4g2Y`Nf*B2?{_xOoZUj9)o29>rx!49C#_LJ)L90Po|T<-(U8%40f)_NW7nWAe00q;Uz zAjs^nP9k82T>yNJxzL`$XpGHY~m!6BU3f?}d@19z{ho@lr z`fa?Ix!mn|=i}w_5^0kpQo6hTu0;AkC!|+{lo^3Yt5=Ejbn`i=^0WLcj8y|$H%KJ_o zJs~0UJ?s=WOMLwcge`=G=P8&iUftGvJNB`op?(tR8Mo16*c)=WZoo}HW)f8e^1g)3+Sv6n*J;v%Y(gKQgDF@!!?~T^pnZTh1Aafs;V74( zJRT)`DUD7?t-X?K^g5WJ(d)Rz&)jBiKL?$Y$fjr?gL3flOcgNv+#0+;;4~3#Us-E! zpF-{zIBY#$=Ae=NFLsA^qrDaF&c z8IW>}L!;JpOLd7`rI9z{olOFv((@w7>ziMB_5UlD1l=-MO7^&;K)rEW_h1ZWyvERZ zlSI#Z_Z;wf{k2HAssgHm?~n+1pvR}zl@M?C6135^&MuT}Zsd56Eo%?JNrlss$2%Vs zYt}zuGQIh>?MWc;O5TtrLd5S#E1x?fGsV9JKG}&0sM9I2-uMr(1^h_BPeSJ-QMT9W z^HHCG`rL(39CS>#w`TI*j(6HF)&no2eJ1L(Pt?u>HR1!58#%M?Cs19RS-mP=2+kaM zf1Uj&;GIu|%NZag&ChiWb#~G?5T-7P%Ppy|S@)A6?>~jsat3G`IhFS2D72G}rRQ^a z=YycS#*C*|p<0Q67srPvFm}lXrJ4`k5%TpN~3CjQiKo50Ye+4oa2=dJ`K(;!V%&IdxB~ z%TGHhOAB@0+zcCEq6R)QKnvi9FaYIc5Vo zhr33@uq+bzJ?MaV;0maA zGF4o^nQ*20?RY2iM9&8F1wC1PC@EH9vp_8y(7;3Qt9%=BD`HtJ_?rDm%RJHF#LBsZRr`KEhNk}u1?X=|-6fAewI+4b!nv8($2V>k<9)dH!!wQXK&J+{aM7bI^U1)KBd@|CQXaXe0%~ zC3W!DiS-UxTt2DeY0`l5FB5b!U~Vv0Pl_m0SkQ$l(J=I21GpY_QjssBr0b^wCPNzU z9F(LXe}M~OkQXX_*4+Iy8@hrR^#@%0PA4HC+ZN9wZ2 z``!b#j`or3PfN?}0~mP*^w3gvf}Wo}QeWKW0H4hn+7986gltz=X&!qeS{}Czw48OP z{v;3MfHdseoscdDDQjdRmGYn~q*34RgmiVosF%zW`TMf(^KO<%b9m>8a`_2gZun9qcPWUvyE%6Fm!cmWRvn&ibnLf-!~MW~sBScxS(Wh`)Jic6suJ zQ^jpRRC*s4qCOPuV^0;kP(SwhQ?fMXohZrt>nP7dDF=sSwGTl%sf!<+T*%FBfRmm2 z!pUOjcBOa!Qvs*rl<9||KI&vKkKlj(Oy=n|!XNvLSa}QXv%iGJtp)zSQLaL{68IFm z(Nq2X3$bN~GJI*)fNUFMqCY(s0%3K3<rA|9joJ4F&dGNkUBm9Waf23Zp57fTt24%4R>A#T)2{-)bX3`bqD$NY{u2eHco<# zJntNTdy$nT^A6X!oZ2hM7=hCnRbNxQ@ndClg_|0^Om<5vpUu2XiWs}%vj=rbV7*;y z=S=G7&nV;^w7+qBmiU^B1rv+4qJ5gweoC#qhF>{Iu%rgy4p!9aJdx`bWq$THbOz8t zzxlt>J_~jFQ2PLECTTTdouPOqR-iBUjHzuhUAJqs_9?^}ZmlvEfa!RrBc|N{(Y1D( z{an10n?u)pXW*UOfEoClQ^RS+`zpNC4$Z{p!rJ>0c;{>HBk@kp<$$rv^ibu=j;!&7 zRNnzaiV&_x$&%aQGUBPaEu)V2piVo$&u>7-Qoa{3ey_rx&h+;|$@m?RY4-FK0F*oG z+faWAxa_$#;x;$n%Dg?MHfS~qj^$~5dw~aHwZNASjlYSeh1r*%8IR$dVC3&+aCrxK zp0@urlyroQzXo+3^%*Gb>iOfP3mUkicdFD1HL?q17{xh>!ajfMeRl z(w~8t_nEffgpBwDg1hZv(9Z$q{UrFj4E~*;1AcV7c#`0}Z3I6hgMaoRz|UwGpMMB& z-X4N4$l%JufUjy76CVbgl?A~U5`46nu}c}zbZNWT2l(Nmu`9d_gkzy@)NgvP|4lu- z!&hzaJGcFh9Z7h2Ozj4=&mP^_G22_$!&iN!|>+HzutTw#$aIw+JE>F z)F%0imE6l9UvgD87u-&B zq;?JMb5Qbk|K2_)%lGjnCV+7S&;#;K$wfSw@*PS7U)K%R@9IKZ(+w3m0DAtvx?wiD zRx{GvWevLHCaKOGI}iA5f^M(FGj@BR-f&P>P6Gj(n};MgjrqJ(r%j?K0e;u)HTSXv zr=}03I-M6iOM$O&EYM|NU4;>Fpj2o1cy?LcigWJpLA3QJ0z99S;Fsc^PIny2c~vMf z_7a@wyH?Q1LYl)n4|XWtX=S@G%Nex}wFdOOuq^5r1aLIr2bhZt1^cA z!}!qARQ`s6#^Z&*M8OEpppCYwk&mxH8}V^t`^H-P9`O4@yl=pVlzi)oOok_-B;Gs) zof7>SsDt+^IR+e$>k({>VpoXBlY>_-@+Ykw?0pS5E*o;@&Rd z>cFE34Ma(?_zIL1Gi^jUmzd-ve1_q(9}N>xD(7b_>w}VbpamuE#0e;Ag@1xMp>y7P zzS#GaGI}gbC_OtjWQIlnjmCKmw1h@;Yew0AftdI-vM;zCB0-#wl1AmrqLJ8qLcb90 zbZ{F{5(hDSd=0+rqHMd)#&CppGw_I$=A)hJLm`B8j&lGf`8^dSG1BQMX`+=zf{`Gg zfx7~MIMGB&^Iw2ospJ7KzyM^JZ$$}`+?^-V#mt-498lMjAK&?Io@6A%3Oove^xoO zl=!-x2Ci=Vy02-GG5BIJ&sO`2v!|%4c<^~e5d)u7W|YDp^bFI`%-HgsFm{J5m(Z?# zPMKPYyfjG?)ATLFH?7cVmNA-s2aGr}P2JIaE%u|xjI^QWW_|43tBkqvd1YY92|_K5 z?J!Jr-_-SZSgi{nd|EuUPZ>d21t-m9-=~af@r>9pT_dnS;YF!FW^A;4RWfDDieTB2 z=$s|X&Z@m)e8;w8-F5BQNig>?9xIB^DrXd|I^-aTcEkB+huGz0#STdt1(u~vyH5Xf%coXM};xx67 zc>7IdbjdLjoS|*F*j&$cy-56n!tnSl`-lh^0P83Qp~dr2*cSAVa}E^3w& zrDp0SahkZcYipwAfMONBB-9f>u}sqmV#jlIamfK?UP*I&BS=!ucj!-I#-`zlMK3D- z#lH?H-HT`nV<*s3?49eTi75uYfIoBMSX!iOw(ci(lg{c zd4cU^9d3R>=~2>5$222bGi}okUDtBzYa3HYolw&(&vcwPh&*)K^F?KPQA200t652s zT7K%Lo;dSGWqeW7bl-~%C-E#>cM{E~<^ckubQM2&QR!L&gBh9;c!{l>zzL=-6wQV@ zM7;Z=GO6GOsYBp2#a=p&D=v9SSy2dlNMqy~PU zH61VXW5-DB#1J38qKqg&SnNc{nTBDUYF;cfbWw0!)5A=Cu&)L6&;5b~V3v7x1L8ieAoKS0eThUpsy#3S&1Gc@eBxk7te z=`EK2K^faqH{t{;H}VbF^KrCyfTE|VC3b2BHsm1iV^h3E-9Y*1F1XgTg2441_cKR} zxBms{>HbG$aM1}-jRDx6?+vNWqwEw#>r0Bu1bar^VTx zmEKXNl@d2_(pZaJJq&a+cIF>h-R)sZRxgT{uU!@`fu3DeRc(=zV7;+!Tdr+I3#L`^ z2A-F!S-xm_O3D|93l$G5p+%;zJEza1&72@syrCRkisC5rTrV|z7m{z=pRLR9=#rN> zhNmTF5Nn=cCC(Ys#L8B6fVlWArBv|nXLsE+h7t@7F9>Wg;?K&MasoBs_*$a737Fn@ z&-`*eJBRPTqjVD&|5-V+2!jNB;b>q{sFTEBB({E_EG)T(4dw~asQb|7PJ4@Je^(hO z*1f3|N|t6>uyIbJhc*P%2&9>m66nn!jZMg5Y}vjM%4={EE74QUf|R78AGncM?RMbW zWvi0a$*S|Jf|~lUFOUGoP9Rd22;NdA7kmfmz%~;vjx`5bL~MQwho-v`l)sPT0>1^8 zlOB0+eQH${3SpF(*l@=RQn0mdi%D-QNeLQWi{roz!@z)Ih!?LUx{>1Xx0RMs3d5(T zFgS1%%qWePtjU1W{sJe!3tY#tHE0nth@eN${#*vU_b-ut^!D!~;pyvVoR(2U(Q3fCQ( z0ljyX-UWy&6tr#V0O+t~;>>rIQ6(5$1I!sX0gf77UMO>^2AicBSia%g(CPl?T14}Q z%7Ed^mM>khELgLA)#^oXrXb8(;<%a)MlfO$nCPMmvC4Tx{7LL6bYW?51U9(k^J3m> zunU^*=?*qHwfz9H5?m~T_rQ@6xC324qZwrLqRKg9=s%Rf;@$U@X=OMuu>}Rh?1ay(sRv6Bq2?4P+=SyPnhswmV zA7Ur`z=QV;=5~Xt@=n$lNlG!mp#+ZO!7YUQX-8L!8$MK~7U9PlP)dR0MQ#kq|FU@D zLuFPObJ8M9*Fv~_;LY@!yqzhmRmu6msu(O_!ZsN&mLW+{?8INee^xB^SIZEHXzi-i zq|gGx2|Zu4!GAs+M|Y#ROd*)21{q7D@Ots)zm&P~@w}Lp z>}d|XO2fZFobYeu_9EOJc#1&)p3)EvST~9Xd#h86kO?pG;3HXx0$eK)H_TN}DY_x} z80$-*UvLoqrW@{4^|BvXmgZyg$i5^_^0j;|Tq)$$V+yI61Sy;l&q{(g`mcOd0LqAO ztT1vlA7X*iu)dx@O1#iTZ5BVtt9?ptqPZU2b{9dGX$Cjtj}x1Rt3$>2#;W~GP7>=0 z$Q-Cbh-Q3qUL4;=9Wtc4HA|PrYtN&Ex)$6m>_lMN-^hzwhpWSAwmpOxrVcNHtso30e1;fCIF7$5j_sn(F5vXw ze?^`f1t2qS7q@m%Czaql_^uy-+pyiS7vGVm(5RolZjKkf_tm~d7+lyN)ALO?ieL@C zC5}H-{Zg;c48jnO9$a5Kf9KBpo!FXB!5{DTDRo^hQ#UmiZXLW$1V&-7CI9Uj_`XkJ z>8XQI3CtV9SR%4D?-H$_R>v2;5Djo8^*D}U51ns|i$1M>rid^hL8zxk9?ns--S3D4 zpH@c}F(K1O2j zk*@04qU*)5J78`EN}3-!-@mb&I=-aAH;hv9yl`}uvo$|mT-;3^l&M)nS0?yZO9Rq! zNwQ5`)J+|S*vfRENPe{d>iG-PD#r9^7jeT7-Od zs7dX<{DPL%tCpU-X!Y87xhTA&%qYT`QFsyr*b6i8oF9nIhpEREu{wA$t`Rww?^%)k zL-FBZY8$2useqG#Hh8Ya_Pk_YuvJ!6U5{pJI(A|Q{yV&Cm9YZd#7be1Vk@-mALUnz z1FAYtZ0@C&$`EurHeeQ08>bYQ_sh^?>f2Um1(Au^B+#_*$6~*#E-vc2?FD9_xi~R$ zy7Aw|x~t>LSY~P@9@GwkU~JG&@>8p7O>FJ1_AHuV3K>rmqJQ0RcZxYZ)Tw>o=lFqx2+s2mJS4%c{824yO+&0y z)P6Vq3rgK_aHc^BrRpPSP0gQ?Rvavv$Ed}UfnW-~`9_48%=CW_4Zis!gr8Ln?rSED zj}E6aF-aFZBu?px-GeU|`98uO_)6G5?cw~{B&fQ0vZp$>>?b&NN+bl>5zlZR$xA+K z*+}79>ahdw--er!KH33l+Yv3Cx`o58`@1_pQw?4>R135=@(p(S82-KEuKmj4Vt+yH zRo1}ZAp$t`j!n~p$2%|rHrNhuUI>0*v=aLlVp3UcEk=%QrU(mNAG!z8*%P8tR)_Uz z4EZMEM4puUE5pyg@dpSiVSFLFPvxbkyzF?;he!>?*db(ftfyt#UeMn<3?~j5+8l~* zPku)&_i@Hhb+NdrmpZzPPO*h9j>dFj zs%fZ27bdHgC-E=yKh2B6i*R49lDerE`E`i=;Osk)Jk9!5{tEoB$9JLhe&0(yv#hyT zO^`&`9S?jR|2p3yf_K0Q6z3K+tk**7!c7p}K<|hL4_CDUWY0`f3x)(K5G`=TzYkaA zauB+v1L;a&`cp?s_vYthULst`o&y&}tCC<%HBGe`UIhYl-7qxpjAex4r@hsdvX3)C z@(u>e*O0CVpUb?8bPa6_CFIu-dVSRz|<_luQ%VUpoYM?P|5dJN~li}c@%*?m;A z=pdO1@iQG8{vq`G0dZv?b#)PPgUk}VX~PU1Co*0T-TOj*k&v9O&AvH0-AIuxF1YS&OH|kDvUd~%p-$p#pPc0#aN|1WP7+xBKhhNE0 z%7BmeSJj?ShY()Z2?Hn)#}PgHtCP!!GvIKLsRnFR!ka1NkK4FuV#9f+R|P}>TWa6;_nKwOa>HcT;W zp!%&cd@Q6%;0i${Lt90E&Ce7I2O@3!HzW)T=rzhhlO08QvR%2|a-cZsV8t1ShX6J%pdhlJ3^ zDT?0?R)Z3l4uKr9Xs}KQAFY4p#S1gklabTVA@Xp75*v!t^FPSi3jv}HILN-8dT`LN z_+HKG#sbWh;RF#p)fh+WM%(XeR%hi49^x&e6N&E~J9Zt>b(nfj5eC=y5Lkj`%*YJQ z4dRyJ>d8eYeQZ6_TL=Pe`0ZDUl_S&<;;muG7fm0b4l9s)K%j~=h-O3PO>y&Zc$XTa z+xImr3FZaNdsQPDY=w<1B_gr}u3-|36(iI$3*a!MClFF1PigB>BKD6^r`md%5D2L*~P$30j zYKWr6n`0mfINQLpC?x?W0tsg^b*wtQoZ`UY4SO({FyE&2^(M&^FMA2JHu=d&h+1xH z-6TN=77aU%AZb>RAhfY>Zj!QZ<;K+9Elnq79{$F0NOmIpL#U-e&xJ^ECNQPrAb{{V z?bwFGaZE}n#$xDr*z^Rp5ohgKu*pUornfa6BL+`^#lL2}+LgkdjVT|}Ih%ER(b}9x;0Ovp{M2MG74J*b4hkbj~nc^>hK-z22JBm^A zkrKjQBQk~^0DIlhBz7WTDj5)Rc$G-{CsyRg-)d?RTPLZbdY=`nMl@oCm_h$#ItjVH zXI*u+IBt^KqYSQs0z&c{9V3(Ge;aI!9>({Et*yqK1|lE0xSpNj?!*z_n*?7iK(J}J zxG2)$ESX9CU2*p$0saBuWOD?1^ z4IWnr1Crv%kz)u0u}Fi0L*$1{Gt7CAhVaTl@f}T_S$1uR7&I!ZuLDmrxVNe1*bLUy zNoAzzTqw{KXq zY^r_Al)VHO1%UwAHVyff7PT(S}#6t9dfbjva z(`_cso;;p1G&)v6DL7BV4QKk3rWIMQx~0x3`LJ=6x5f71)nDgrZTvj`l;S@An;E;9rg_2eQG#yyt7G6E~_&N$hwiPfk>wC)#F&qwbkVX z7&ZfH7PlA%Ql4%kp0w4ok;5|(9e4?D7?D8J&7X^>Y;}=1agusi0hb#{(joJO12>_v z#4blYs~2n;g)VRb5rIOo9`4BOH@OgqM8kb3ZtNm>WIin1BTX091!8V56X%5pSBH1* zzz2;VZ9*chE-!;zRp~{kyf|`vBuL?MI_d7Flj}Hr#2cPkEa3VSw|mG>BWnp$8i?+` zdR`e9x$xZ$q<`p2R5KoLs$N0%rKr4{*zT*XW!$y-ls!NilCEl!U*N2f(ilDXBqTma ze3m8WlRUtv;NRs%;0PFG*ApjBQ7@e0fkU9lv9=hwdeeTgX>@jVx_S*LtEr8(Yf=yN z@VCgH(;)S@+;k0b$W(P?ImR`npCFMFLMz!`{B)BhhD=Zo7j09K8OA^{5`Z4kFmVj` zMw~NMZ7#(KfwdS+4kHBz#(k#BC_`~YhnqpfGl=qRm=;?+HB}u|h7m)0InV;=4qU*+ zzXbmr+XIP{*7uY`nXX?FSXEz-As!?E2z4Wv zYoxQQ0k5Y0rl~EvqP=(quH0W}p^GI*EV3rB@Mau9af%+()T7I;j${i|fak;S2(5H4 z)ZT4fARUG2ApFWS^{_IQh5K7TLlY)5^`31y>L5yaK)NbeO3aQJ0FDU!ni%#H7XLXI zFz%?ifP4;;Wr=}c5V;%E7Om4&qeyolQ4CiZ@(|*V_IdJohS!rlC8WRt{0~H!F5d}! zE#227K6*tNUWW5UIRkiGu$u@E_GkRjPk1xbf#ncp5?h1?*|^U3o!?`^)%$8}#*m)4 zEW_6q0vOxKiG5#ucZNE=0OuY@tsy}c;qcM=`x)w~#Q<05xROUSYvDFJvR@PjX27{h zBixc8d4+SvX$R>`)#d^+(6~lI&w++}9M2HNnd*{K4CfjGZy5$$G%#0uzU^^_yku>}ld zIk+{(!DvyUMdF$xRU3C*uyojZ2N_$Wn8Uv|O`uq-Um1t(ATy>RJP42lhwwR~X%_q* zoChu#Q;+-y4dzdrI7=N_0wcRAvOsX?f(SRae{T|F`{9)Dnx*zBAdeg31_I$PgcUxn z*fUEVT|n9c*T-<#Jb0XtaPjHc>aqfEsn7ww3;@RkI>!@VoDEkJ5wdRRI7(zvkaqXQ YqqEgh4nO!$Et}zA`V%#MqOOhoA1SENLjV8( delta 64721 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"] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/aura/Cargo.toml b/srml/aura/Cargo.toml index 6d9e8dd35e..480548e9d7 100644 --- a/srml/aura/Cargo.toml +++ b/srml/aura/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } serde = { version = "1.0", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } diff --git a/srml/balances/Cargo.toml b/srml/balances/Cargo.toml index 9f7fd249b0..477e11eefb 100644 --- a/srml/balances/Cargo.toml +++ b/srml/balances/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-keyring = { path = "../../core/keyring", optional = true } substrate-primitives = { path = "../../core/primitives", default-features = false } diff --git a/srml/consensus/Cargo.toml b/srml/consensus/Cargo.toml index d099cb120f..9bc03d85ee 100644 --- a/srml/consensus/Cargo.toml +++ b/srml/consensus/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/contract/Cargo.toml b/srml/contract/Cargo.toml index aad1cae209..08ae5c0c54 100644 --- a/srml/contract/Cargo.toml +++ b/srml/contract/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] serde = { version = "1.0", default-features = false } pwasm-utils = { version = "0.3", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } parity-wasm = { version = "0.31", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } diff --git a/srml/council/Cargo.toml b/srml/council/Cargo.toml index e2bad6b3c8..32fc9c7975 100644 --- a/srml/council/Cargo.toml +++ b/srml/council/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/democracy/Cargo.toml b/srml/democracy/Cargo.toml index ea8b63920f..95a67e5fd0 100644 --- a/srml/democracy/Cargo.toml +++ b/srml/democracy/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/example/Cargo.toml b/srml/example/Cargo.toml index 8fe76d9bf0..cbddf95d11 100644 --- a/srml/example/Cargo.toml +++ b/srml/example/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/executive/Cargo.toml b/srml/executive/Cargo.toml index c51ab85c5c..b89cf54a06 100644 --- a/srml/executive/Cargo.toml +++ b/srml/executive/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } sr-io = { path = "../../core/sr-io", default-features = false } diff --git a/srml/grandpa/Cargo.toml b/srml/grandpa/Cargo.toml index 60c576895e..3dd301676b 100644 --- a/srml/grandpa/Cargo.toml +++ b/srml/grandpa/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } substrate-finality-grandpa-primitives = { path = "../../core/finality-grandpa/primitives", default-features = false } diff --git a/srml/metadata/Cargo.toml b/srml/metadata/Cargo.toml index d442a5e225..e0d4e4b09f 100644 --- a/srml/metadata/Cargo.toml +++ b/srml/metadata/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" authors = ["Parity Technologies "] [dependencies] -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } serde = { version = "1.0", optional = true } serde_derive = { version = "1.0", optional = true } diff --git a/srml/session/Cargo.toml b/srml/session/Cargo.toml index ad798edbdb..3a8fe91716 100644 --- a/srml/session/Cargo.toml +++ b/srml/session/Cargo.toml @@ -8,7 +8,7 @@ hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} substrate-primitives = { path = "../../core/primitives", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } sr-io = { path = "../../core/sr-io", default-features = false } diff --git a/srml/staking/Cargo.toml b/srml/staking/Cargo.toml index 4d35592144..d06d4f3f91 100644 --- a/srml/staking/Cargo.toml +++ b/srml/staking/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-keyring = { path = "../../core/keyring", optional = true } substrate-primitives = { path = "../../core/primitives", default-features = false } diff --git a/srml/sudo/Cargo.toml b/srml/sudo/Cargo.toml index 9cdd75c756..3b8f7dc81b 100644 --- a/srml/sudo/Cargo.toml +++ b/srml/sudo/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/support/Cargo.toml b/srml/support/Cargo.toml index b0d468497f..6a232215b3 100644 --- a/srml/support/Cargo.toml +++ b/srml/support/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = { version = "0.1.0", optional = true } serde = { version = "1.0", default-features = false } serde_derive = { version = "1.0", optional = true } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } srml-metadata = { path = "../metadata", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } sr-io = { path = "../../core/sr-io", default-features = false } diff --git a/srml/system/Cargo.toml b/srml/system/Cargo.toml index 5bc00b1230..f3dfded863 100644 --- a/srml/system/Cargo.toml +++ b/srml/system/Cargo.toml @@ -7,7 +7,7 @@ authors = ["Parity Technologies "] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } safe-mix = { version = "1.0", default-features = false} -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/timestamp/Cargo.toml b/srml/timestamp/Cargo.toml index b11e74e3eb..4e3ca526ad 100644 --- a/srml/timestamp/Cargo.toml +++ b/srml/timestamp/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } sr-io = { path = "../../core/sr-io", default-features = false } diff --git a/srml/treasury/Cargo.toml b/srml/treasury/Cargo.toml index 9090ac4d9b..4c7d63d778 100644 --- a/srml/treasury/Cargo.toml +++ b/srml/treasury/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } diff --git a/srml/upgrade-key/Cargo.toml b/srml/upgrade-key/Cargo.toml index 762aaf5011..8e51779b25 100644 --- a/srml/upgrade-key/Cargo.toml +++ b/srml/upgrade-key/Cargo.toml @@ -6,7 +6,7 @@ authors = ["Parity Technologies "] [dependencies] hex-literal = "0.1.0" serde = { version = "1.0", default-features = false } -parity-codec = { version = "2.1", default-features = false } +parity-codec = { version = "2.2", default-features = false } parity-codec-derive = { version = "2.1", default-features = false } substrate-primitives = { path = "../../core/primitives", default-features = false } sr-std = { path = "../../core/sr-std", default-features = false } -- GitLab From 8ef14908ad9d46840db58808a72516ba9fb6602f Mon Sep 17 00:00:00 2001 From: Sergei Pepyakin Date: Thu, 17 Jan 2019 12:01:12 +0100 Subject: [PATCH 077/349] Contracts module rejig (#1358) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move prepare under code. * Schedule update * CodeHash * create takes code_hash * pass mem def and use code in vm::execute * Actually save and load code * Use T::Hash as CodeHash * Explicit entrypoint name * Return code_hash and deposit an Event * Charge for deployed code with gas. * ImportSatisfyCheck and FunctionImplProvider * Progress. * Use new infrastructure for checking imports * Rename entrypoint to entrypoint_name * Use strings instead of a Error enum * Clean * WIP * Fix macro_define_env test. * Fix vm code tests. * Remove tests for now. * Fix borked merge * Fix build for wasm * fmt * Scaffolding for abstracting vm. * Hook up execution to exec layer. * Fix vm tests. * Use schedule directly in WasmLoader * Implement test language. * Add input_data test. * Max depth test * ext_caller * Simplify test. * Add TODO * Some tests and todos. * top_level * Clean. * Restore a couple of integration tests. * Add a few comments. * Add ext_address runtime call. * Deduplicate caller/self_account * Add not_exists test. * Change bool to TransferCause. * Add address tests. * Remove output_buf from parameter. * return from start fn. * Smart gas meter * Tracing * Fix prepare tests. * Code moving * Add ExecFeeToken * Use tokens everywhere. * Make it compile in no_std. * Lift all test requirements to TestAuxiliaries * A minor clean * First create tests * Remove unneeded TODO * Docs. * Code shuffling * Rename create → instantiate * Add test address. * Code shuffling * Add base_fee tests. * rejig the code * Add some comments * on_finalise comment * Move event deposit further * Update Cargo.lock * Use crates.io version of pwasm-utils * Format todo comments * Fix formatting * Comments * EmptyOutputBuf and OutputBuf split. * Restore code_hash * Fix node-executor. * Fix typo * Fix fmt * Update srml/contract/src/account_db.rs Co-Authored-By: pepyakin * Update srml/contract/src/lib.rs Co-Authored-By: pepyakin * Line wraps * Wrapping macros * Add _ prefix * Grumbles * Doc updates. * Update srml/contract/src/wasm/mod.rs Co-Authored-By: pepyakin * Update srml/contract/src/lib.rs Co-Authored-By: pepyakin * Add comment * Use saturation to signal overflow * Add prepare_test! macro * Require deploy function. * Add entry point tests * Add comment. * Rename code → code_cache to better describe * Get rid of weird match! * Recompile binaries * Add comments * refuse_instantiate_with_value_below_existential_deposit * Little fix * Make test more complete * Clean * Add integration test for instantiation * Rebuild runtime. * Add some tests. * Attach an issue to a TODO * Attach another issue * Apply suggestions from code review Co-Authored-By: pepyakin * Update srml/contract/src/exec.rs Co-Authored-By: pepyakin * Update srml/contract/src/exec.rs Co-Authored-By: pepyakin * Recompile node_runtime --- Cargo.lock | 9 +- .../substrate_test_runtime.compact.wasm | Bin 46060 -> 46045 bytes node/executor/src/lib.rs | 70 +- node/runtime/wasm/Cargo.lock | 6 +- .../release/node_runtime.compact.wasm | Bin 804658 -> 812901 bytes srml/contract/Cargo.toml | 3 +- srml/contract/src/account_db.rs | 23 +- srml/contract/src/exec.rs | 1227 +++++++++++++++-- srml/contract/src/gas.rs | 197 ++- srml/contract/src/lib.rs | 150 +- srml/contract/src/tests.rs | 840 ++--------- srml/contract/src/vm/prepare.rs | 285 ---- srml/contract/src/wasm/code_cache.rs | 106 ++ .../src/{vm => wasm}/env_def/macros.rs | 105 +- srml/contract/src/{vm => wasm}/env_def/mod.rs | 57 +- srml/contract/src/{vm => wasm}/mod.rs | 520 ++++--- srml/contract/src/wasm/prepare.rs | 546 ++++++++ srml/contract/src/{vm => wasm}/runtime.rs | 187 ++- 18 files changed, 2711 insertions(+), 1620 deletions(-) delete mode 100644 srml/contract/src/vm/prepare.rs create mode 100644 srml/contract/src/wasm/code_cache.rs rename srml/contract/src/{vm => wasm}/env_def/macros.rs (70%) rename srml/contract/src/{vm => wasm}/env_def/mod.rs (58%) rename srml/contract/src/{vm => wasm}/mod.rs (53%) create mode 100644 srml/contract/src/wasm/prepare.rs rename srml/contract/src/{vm => wasm}/runtime.rs (72%) diff --git a/Cargo.lock b/Cargo.lock index 5fa2f42323..47fa5f3ae7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2163,7 +2163,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pwasm-utils" -version = "0.3.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2797,10 +2797,11 @@ name = "srml-contract" version = "0.1.0" dependencies = [ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", - "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pwasm-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -4186,7 +4187,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4700,7 +4701,7 @@ dependencies = [ "checksum proc-macro2 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "77997c53ae6edd6d187fec07ec41b207063b5ee6f33680e9fa86d405cdd313d4" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" "checksum protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eae0479da11de87d371fa47eb033059715ffa8f714748da20aa364d56ec5bee2" -"checksum pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "efd695333cfae6e9dbe2703a6d040e252b57a6fc3b9a65c712615ac042b2e0c5" +"checksum pwasm-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "efb0dcbddbb600f47a7098d33762a00552c671992171637f5bb310b37fe1f0e4" "checksum quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb6ccf8db7bbcb9c2eae558db5ab4f3da1c2a87e4e597ed394726bc8ea6ca1d" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 7180a336985901faf82524364ec9bb72bdb06fd2..ffc7eabf55ea145e0e7427f8731a841a065adde9 100644 GIT binary patch delta 2307 zcmaKseQ;Gr6~K3IzCWJ1NeB>G#xYmxAmh6y?wjj+pktF9hCN74<1Y#=0=l{%14 z=B17gbtiMvDcYa9dKkv+5#?WFu*%sNW7K(ExqA3$<3@FnT~U&zW~1$mL;1yrzH*MF zvXhEho*IqbytiGU$D@WV_fUEn9%|W%Z@$=4ND<%L+N#h?ptN%Q7Oi{fZ{XQh4-ay- zP3IsoJBlgll8;rxn>!i36cv8*e%eA?5=3dn*A(0!vbH9aBuN#g>l9K$lesr`TNAmc z%)YK9sJyYuZAoM$QA|?k-DMQeG@j6ODj8kebu6D2M%|xzD2vV>?Op=!xK+>wIWXVx zhuew*_XjtH50+gzgjwq9J)|hLcpJ@mXB0XMW3nAnn3M0vDO~7GqtMuOMY*2O+jMrO zds{YU^ogD|SP5wCS_dOt^#!Saei@yrsoCgPpPi>zm7n+N*DV-m{h!8*hx#8xt1JE4 zasB?ZzX)H7qb(dbNMC``ffe4|s-=brvLjuH$XtBUc>V*@dkjjxHZ zX?!g@=^Vc+ks$YuerNXV$my%E|A<6m<13Y+(K3akhKF&|hqJdRDlrKm59Fw%1G$|N zl7q}g{l^#S+ZXhk^HkIl@@#pvsF@y@_d#`HY0c9iv4XuecdAc!wdSK;XVA3-MZhopuddwSH}B=cL4VVxb8!_ ze35<*_u04gL$?h6edoa~y@Juk2J3TGQjdHPS&WoO%$2->EJa>HE<^qUqmK(07buAg zkY&g`T=6GPJ|EWu`6^jTh6w4#OVw$oYw=sxKYd+$!sx;?AJWS9KH1yX&?9>W-N*LqYY5~M z4Lxq}p8i32>-b;)@9Eu;e`3W)?z9Jf;yDIzNr~5 zH!SW+AI48TvO+RbI6|`+^L63s{*u8` zVd}7BvQ5=Bo7sY+U0?;a=fg{rb*0?!J&#*1vzVcofxZlOPHrz3jvfjjG~Z;>VN6^8 zXcO@13i$8jYJ8%i+|V_j>D=Ky24k3JWrl*ASp`3R?(=0KH<@6*<@uIr>C#^DBs`j_ zgcF$(_|oak<$`I3?FirV4Qc3-SAC7byDu(>zn^}*#I-{y3?Z2vhMvx#_jz97G1C&3 z8DdDnm9DjtHPx+ycc$)AO)i*&l`sP#eBX26%Ja3VXBjdKywLQ7q1%oDl~b$Aq#v3# z=N7ZEB$nmfy&h;(S>D*#6>!rH?7(Jb=(@Ja;fbksHE=>*>aNhZbR_p|_}x@ZS-^D9 z)pRLMrs=+8uQt#}ZE2UMnK}zXS945eN)f{5GiysdPdaWO8DoZ}>z=U|o|@XETD~C| z_nbgC1J@KLoIlg78k%o2&O#||&G#%9s-~M%SJyNH?XeuXuxuYXr_-tV|=h z4?}o&y19f0=#Og>Pb@AiU@ugc3LjJDx*IsI6=;GnIG`+z`d*lzr8pGK3qv0I@eBw} zhiPR!w4L3L!ATqyW@F5ngULj1oPC{^c*56g!?p|_+P*NO%uBzes>cHyOYZ1;=y;4f z@XX66RZDupHSwP58Aunl&1_Jm6v9Ezfv_++$Aa;h8dWgi3&S&o?Sz(w$-OqSwj}Uz z(8B-+B4n;1;6F2lYB`SQdWJB#7YM`9;J#>$>bo`*hUH^f9fvs_2BSwRT-(*~*JA}q Njd8o4YxUe*_dhf?i-G_E delta 2312 zcmai!eQZ`&8Nlzoef!%Al;XCoH_@mIshUNN`zR)o%qUhPh3E|YX&@#(w@|45-uVF*5|{EdSB7OfeEd+U&|aE7&pdr{RVuH^GD;u zLvc3sV7~FaSL4r$t7?$&&xRp=GCoB9mcM*oc0%iD(6lw0md?q%*pbf9yxHHG&g;nN zy_tPkIP4rUUOEEH)$RmY)otv{4m3V!&haZw>zT=TQ)7QYN%s2_S|*h?%!&-epFgzK z(BF<5T2|}&Rd`}u8{YZDbwxVj$Lm`SeF}_Lir-di7w*5)>fuK2#?f5F*yfVNC;e0v zeBMU%skrEC8}xL}x>C((#@h@O5c>L3Bdulhj&vS=WzukLi``JtQDHt>B&DC0QX08}dduI)O5)Ox3v4rXHYEr^yJ3CNmY`<*G)bnS3a=de63M+b~rxrT_ zjqR)8Psfwc>Ps3-+kgteTr64p%qJleFPtUk}Dv|J=2;TzBY zIz6YFyU{X}TBhKZSG@Lx(>NZO-dBUp#ozr+3F7zJpC*MKK5_t+s)3xOsx)+A39kaf zji1AF#YH%Sg&nq`nMKg@+EDTar(ZjUPYL!OU6SCfqkRb$4Av%CJGc^q>>ONLQldTd z(fOBtd;GmigDgHWxXkDuDmS#u-o5zH_oiA5Qxlq|ZO=8eCy|?UP0K|Vp#95p>|1Z! zH|LvZ)wEyYzJYuXS&6)obIb3qsF$MtE94Sn9>#4!UciMRv}=Y554?VF|5GVbt3mx{ zj;U=xw&6 zz~vQ~+C5soruCtabgC7(5P2V_odh_I`hCa?$fUE6qi4dysNaKZ!>p2vXZ04;la9?! zX4cO{dlC;vy&p$?@JorDe4c6F6~&WpT-TSjcXx#iz3scYJ3DuUPlpW;htGzc-90^F zSGc0BR`TClQ&v&_H;u@?EL8=Xf5xeX_2?7Mw~aj3UBWK)JVIThqX) zO1OSfRyZ~bg>;2*g^WB)EqwC!*1dR7Wd)C9M3v`L!R$auYtfhve>t}tes=0R<(|i6 z7<#s}BBHqKFMb}{#uh<#tPGw#{cwftxmF;gZE>!+3iy&A=+O55Lb!aoyNm@9x4B0h zp)4LK@XydnEApJcA=0Cfa=1m7k*2y;aA9PrNhRkY4;8Z+VS!?B@l1_LY>PwE+JYqS%Z+R>3A2_?HqOq}EDCH2}7p`;|vmF6DN4AdK3qCyCYzm9`l-LwazH%c5C8JHILo99!B|PB^>dOEg8|^5!Y>#4G zCIoiXXX1fPGd=raw6-jy7EZxeI0qlggB9nhOkrCAmC_Cbz8~KU;;)|jkv>l{hfzXQ z=&^uFNjQue_e1l$drZt%S&|D&N@jae7=QHcCwiG>Z6OI)Pn;boG?QgT0)VK%24_E9-wJ_jmep9Ie~4tB8sql0k4c#o4%3({s6EAC{Zth zpNy|8bMa;oP{lbXKKAz7xQ!w0$a6g=BI4s~^T3L0O_ws}drl-B>N!*e&=GI1^jW|i Q8gP|ngsOT%>nU0FAH4a5oB#j- diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 15499ba31f..af366faf0a 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -61,7 +61,7 @@ mod tests { use primitives::{twox_128, Blake2Hasher, ChangesTrieConfiguration, ed25519::{Public, Pair}}; use node_primitives::{Hash, BlockNumber, AccountId}; - use runtime_primitives::traits::{Header as HeaderT, Digest as DigestT}; + use runtime_primitives::traits::{Header as HeaderT, Digest as DigestT, Hash as HashT}; use runtime_primitives::{generic, generic::Era, ApplyOutcome, ApplyError, ApplyResult, Perbill}; use {balances, indices, staking, session, system, consensus, timestamp, treasury, contract}; use contract::ContractAddressFor; @@ -315,9 +315,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("e2dc1ed62a3878e084c49baef3eed4bc462caaa1ee9db0763eaa8d39d1affc7e").into() + hex!("cc63808897a07869d3b9103df5ad92f9be2f865ece506df5de0a87b2a95131d5").into() } else { - hex!("7dad66de05ab6391ece9db092288cb39ba723f7f5d0b69b507b753fc92c98b8e").into() + hex!("fe5275f4d9f8130c8e80d0132f0a718ae0eeea2872c841843192720ad5c3f05a").into() }, if support_changes_trie { vec![changes_trie_log( @@ -343,7 +343,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("f085a4077d071d3334f7553bcc3f10d97fd612e25c6df5c8f94151bbe557e24a").into(), + hex!("45b6655508fb524467b5c24184a7509b9ae07db4f95e16052ed425af182f39a8").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -372,7 +372,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("1d47422645f5fa3d79cff9ab5cd69ee62919c909860f063bdaf18eda834baa05").into(), + hex!("ec00658cc2826d3499dde2954e399f0a0b2596eec1b0da9b76bc72394161dc99").into(), vec![], vec![ CheckedExtrinsic { @@ -546,6 +546,8 @@ mod tests { (import "env" "ext_input_size" (func $ext_input_size (result i32))) (import "env" "ext_input_copy" (func $ext_input_copy (param i32 i32 i32))) (import "env" "memory" (memory 1 1)) + (func (export "deploy") + ) (func (export "call") (block $fail ;; fail if ext_input_size != 4 @@ -613,55 +615,15 @@ mod tests { ) "#; - /// Convert a byte slice to a string with hex values. - /// Convert a byte slice to a string with hex values. - /// - /// Each value is preceeded with a `\` character. - fn escaped_bytestring(bytes: &[u8]) -> String { - use std::fmt::Write; - let mut result = String::new(); - for b in bytes { - write!(result, "\\{:02x}", b).unwrap(); - } - result - } - - /// Create a constructor for the specified code. - /// - /// When constructor is executed, it will call `ext_return` with code that - /// specified in `child_bytecode`. - fn code_ctor(child_bytecode: &[u8]) -> String { - format!( - r#" - (module - ;; ext_return(data_ptr: u32, data_len: u32) -> ! - (import "env" "ext_return" (func $ext_return (param i32 i32))) - (import "env" "memory" (memory 1 1)) - (func (export "call") - (call $ext_return - (i32.const 4) - (i32.const {code_len}) - ) - ;; ext_return is diverging, i.e. doesn't return. - unreachable - ) - (data (i32.const 4) "{escaped_bytecode}") - ) - "#, - escaped_bytecode = escaped_bytestring(child_bytecode), - code_len = child_bytecode.len(), - ) - } - #[test] fn deploying_wasm_contract_should_work() { let mut t = new_test_ext(COMPACT_CODE, false); - let code_transfer = wabt::wat2wasm(CODE_TRANSFER).unwrap(); - let code_ctor_transfer = wabt::wat2wasm(&code_ctor(&code_transfer)).unwrap(); + let transfer_code = wabt::wat2wasm(CODE_TRANSFER).unwrap(); + let transfer_ch = ::Hashing::hash(&transfer_code); let addr = ::DetermineContractAddress::contract_address_for( - &code_ctor_transfer, + &transfer_ch, &[], &charlie(), ); @@ -669,7 +631,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("c442a475a16805d20c326f1134fe5a9656511ed7e1a7f0c7dae2dfc8612e418b").into(), + hex!("6a4da4ed61c4d9eba0477aa67024d573693df781176dfe7fe903d1088b38b266").into(), vec![], vec![ CheckedExtrinsic { @@ -679,11 +641,17 @@ mod tests { CheckedExtrinsic { signed: Some((charlie(), 0)), function: Call::Contract( - contract::Call::create::(10.into(), 10_000.into(), code_ctor_transfer, Vec::new()) + contract::Call::put_code::(10_000.into(), transfer_code) ), }, CheckedExtrinsic { signed: Some((charlie(), 1)), + function: Call::Contract( + contract::Call::create::(10.into(), 10_000.into(), transfer_ch, Vec::new()) + ), + }, + CheckedExtrinsic { + signed: Some((charlie(), 2)), function: Call::Contract( contract::Call::call::(indices::address::Address::Id(addr), 10.into(), 10_000.into(), vec![0x00, 0x01, 0x02, 0x03]) ), @@ -695,7 +663,7 @@ mod tests { runtime_io::with_externalities(&mut t, || { // Verify that the contract constructor worked well and code of TRANSFER contract is actually deployed. - assert_eq!(&contract::CodeOf::::get(addr), &code_transfer); + assert_eq!(&contract::CodeHashOf::::get(addr).unwrap(), &transfer_ch); }); } diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 2dd8260e83..e8b2819f0f 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -703,7 +703,7 @@ dependencies = [ [[package]] name = "pwasm-utils" -version = "0.3.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1093,7 +1093,7 @@ dependencies = [ "parity-codec 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", - "pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pwasm-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.81 (registry+https://github.com/rust-lang/crates.io-index)", "sr-io 0.1.0", "sr-primitives 0.1.0", @@ -1998,7 +1998,7 @@ dependencies = [ "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" "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" -"checksum pwasm-utils 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "efd695333cfae6e9dbe2703a6d040e252b57a6fc3b9a65c712615ac042b2e0c5" +"checksum pwasm-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e9135bed7b452e20dbb395a2d519abaf0c46d60e7ecc02daeeab447d29bada1" "checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 9ed1cd63060bdf63ec20c7e7065ad27643cec18a..874b773d579dd2252eb4f00330f5d3d32c2491ec 100644 GIT binary patch literal 812901 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�!G==3F8O{wW>)@PTCNhO`aE6G;U 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 LBk|&cY!3T>Xtbfw diff --git a/srml/consensus/src/lib.rs b/srml/consensus/src/lib.rs index 2a55ac9e19..e8ef08e4b9 100644 --- a/srml/consensus/src/lib.rs +++ b/srml/consensus/src/lib.rs @@ -50,6 +50,9 @@ use primitives::traits::{ use substrate_primitives::storage::well_known_keys; use system::{ensure_signed, ensure_inherent}; +#[cfg(any(feature = "std", test))] +use substrate_primitives::Ed25519AuthorityId; + mod mock; mod tests; @@ -143,7 +146,7 @@ impl RawLog { // Implementation for tests outside of this crate. #[cfg(any(feature = "std", test))] -impl From> for primitives::testing::DigestItem where N: Into { +impl From> for primitives::testing::DigestItem where N: Into { fn from(log: RawLog) -> primitives::testing::DigestItem { match log { RawLog::AuthoritiesChange(authorities) => -- GitLab From ae7567b71db2206b3d9d39f7714e17291f5d3fdd Mon Sep 17 00:00:00 2001 From: Benjamin Kampmann Date: Mon, 14 Jan 2019 10:22:17 +0100 Subject: [PATCH 061/349] Update links, labels and process in CONTRIBUTING.adoc (#1409) * Update CONTRIBUTING.adoc Fix broken links to labels, update link to style guide. Add breaksapi and breaksconsensus and add a section on easy, medium and mentor ticket to get started. Slight rephrasing to clarify current process. * Update CONTRIBUTING.adoc --- CONTRIBUTING.adoc | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 94b3c44e1b..10173e07a0 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -14,16 +14,23 @@ There are a few basic ground-rules for contributors (including the maintainer(s) . **Non-master branches**, prefixed with a short name moniker (e.g. `gav-my-feature`) must be used for ongoing work. . **All modifications** must be made in a **pull-request** to solicit feedback from other contributors. . A pull-request *must not be merged until CI* has finished successfully. -. Contributors should adhere to the https://github.com/paritytech/polkadot/wiki/Style-Guide[house coding style]. +. Contributors should adhere to the https://wiki.parity.io/Substrate-Style-Guide[house coding style]. + + +== Merge Process Merging pull requests once CI is successful: -. A pull request that does not alter any logic (e.g. comments, dependencies, docs) may be tagged https://github.com/paritytech/core/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3AA2-insubstantial[`insubstantial`] and merged by its author. -. A pull request with no large change to logic that is an urgent fix may be merged after a non-author contributor has reviewed it well. -. All other PRs should sit for 48 hours with the https://github.com/paritytech/core/pulls?q=is%3Apr+is%3Aopen+label%3AA0-pleasereview[`pleasereview`] tag in order to garner feedback. +. A PR needs to be reviewed and approved by project maintainers unless: + - it does not alter any logic (e.g. comments, dependencies, docs), then it may be tagged https://github.com/paritytech/substrate/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+label%3AA2-insubstantial[`insubstantial`] and merged by its author once CI is complete. + - it is an urgent fix with no large change to logic, then it may be merged after a non-author contributor has approved the review once CI is complete. + +. Once a PR is ready for review please add the https://github.com/paritytech/substrate/pulls?q=is%3Apr+is%3Aopen+label%3AA0-pleasereview[`pleasereview`] label. Generally PRs should sit with this label for 48 hours in order to garner feedback. It may be merged before if all relevant parties had a look at it. +. PRs that break the external API must be tagged with https://github.com/paritytech/substrate/labels/B2-breaksapi[`breaksapi`], when it changes the SRML or consensus of running system with https://github.com/paritytech/substrate/labels/B3-breaksconsensus[`breaksconsensus`] . No PR should be merged until all reviews' comments are addressed. -.Reviewing pull requests: +*Reviewing pull requests*: + When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in: . Buggy behaviour. @@ -33,10 +40,15 @@ When reviewing a pull request, the end-goal is to suggest useful changes to the . Feature reduction (i.e. it removes some aspect of functionality that a significant minority of users rely on). . Uselessness (i.e. it does not strictly add a feature or fix a known issue). -.Reviews may not be used as an effective veto for a PR because: +*Reviews may not be used as an effective veto for a PR because*: + . There exists a somewhat cleaner/better/faster way of accomplishing the same feature/fix. . It does not fit well with some other contributors' longer-term vision for the project. +== Helping out + +We use https://github.com/paritytech/substrate/labels[labels] to manage PRs and issues and communicate state of a PR. Please familiarize yourself with them. Further more we are organising issues in https://github.com/paritytech/substrate/milestones[milestones]. Best way to get started is to a pick a ticket from the current milestone tagged https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ2-easy[`easy`] or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ3-medium[`medium`] and get going or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AX1-mentor[`mentor`] and get in contact with the mentor offering their support on that larger task. + == Releases Declaring formal releases remains the prerogative of the project maintainer(s). -- GitLab From 75c3b51b67f0efd30ec8484c4098fe4cb3a9f5d0 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Mon, 14 Jan 2019 13:38:36 +0100 Subject: [PATCH 062/349] Update to latest libp2p (#1386) * Update to latest libp2p * Fix indentations * Add basic test * Apply suggestions from code review Co-Authored-By: tomaka * Remove Mutex from topology * Remove unused method * Fix concerns --- Cargo.lock | 826 ++++++----------- core/network-libp2p/Cargo.toml | 4 +- core/network-libp2p/src/behaviour.rs | 262 ++++++ .../src/custom_proto/behaviour.rs | 471 ++++++++++ .../src/custom_proto/handler.rs | 327 +++++++ core/network-libp2p/src/custom_proto/mod.rs | 22 + .../upgrade.rs} | 185 ++-- core/network-libp2p/src/lib.rs | 7 +- core/network-libp2p/src/node_handler.rs | 863 ------------------ core/network-libp2p/src/service_task.rs | 848 +++-------------- core/network-libp2p/src/swarm.rs | 672 -------------- core/network-libp2p/src/topology.rs | 459 +++++----- core/network-libp2p/src/transport.rs | 32 +- core/network-libp2p/tests/test.rs | 83 ++ core/network/src/service.rs | 22 +- 15 files changed, 1960 insertions(+), 3123 deletions(-) create mode 100644 core/network-libp2p/src/behaviour.rs create mode 100644 core/network-libp2p/src/custom_proto/behaviour.rs create mode 100644 core/network-libp2p/src/custom_proto/handler.rs create mode 100644 core/network-libp2p/src/custom_proto/mod.rs rename core/network-libp2p/src/{custom_proto.rs => custom_proto/upgrade.rs} (64%) delete mode 100644 core/network-libp2p/src/node_handler.rs delete mode 100644 core/network-libp2p/src/swarm.rs create mode 100644 core/network-libp2p/tests/test.rs diff --git a/Cargo.lock b/Cargo.lock index 447aeca08f..4ec456004e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,11 +1,3 @@ -[[package]] -name = "MacTypes-sys" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "aes-ctr" version = "0.1.0" @@ -48,7 +40,7 @@ dependencies = [ [[package]] name = "aio-limited" version = "0.1.0" -source = "git+https://github.com/paritytech/aio-limited.git#f01b01501c87c93d3005f9120cc35d0e576fa7a3" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -155,24 +147,6 @@ name = "base58" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "base64" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "base64" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "bigint" version = "4.4.1" @@ -202,11 +176,6 @@ dependencies = [ "which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "bitflags" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "bitflags" version = "1.0.4" @@ -214,12 +183,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "blake2" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crypto-mac 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -240,6 +210,17 @@ dependencies = [ "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "block-buffer" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "block-cipher-trait" version = "0.5.3" @@ -248,6 +229,14 @@ dependencies = [ "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "block-padding" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "bs58" version = "0.2.2" @@ -258,11 +247,21 @@ name = "byte-tools" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "byte-tools" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "byteorder" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "byteorder" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "byteorder" version = "1.2.7" @@ -303,15 +302,6 @@ name = "cfg-if" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "chashmap" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "chrono" version = "0.4.6" @@ -376,23 +366,6 @@ name = "constant_time_eq" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "core-foundation" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "core-foundation-sys" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "criterion" version = "0.1.2" @@ -533,7 +506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "crypto-mac" -version = "0.5.2" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -542,11 +515,11 @@ dependencies = [ [[package]] name = "crypto-mac" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -567,6 +540,15 @@ dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cuckoofilter" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "curve25519-dalek" version = "0.20.0" @@ -585,19 +567,6 @@ name = "data-encoding" version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "datastore" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "difference" version = "1.0.0" @@ -616,11 +585,28 @@ dependencies = [ "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "digest" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "discard" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "dns-parser" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ed25519-dalek" version = "0.8.1" @@ -693,17 +679,6 @@ dependencies = [ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "eth-secp256k1" -version = "0.5.7" -source = "git+https://github.com/paritytech/rust-secp256k1#ccc06e7480148b723eb44ac56cf4d20eec380b6f" -dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "etrace" version = "1.1.1" @@ -847,6 +822,14 @@ dependencies = [ "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "generic-array" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "getset" version = "0.0.6" @@ -974,24 +957,6 @@ dependencies = [ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "hyper" -version = "0.10.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "hyper" version = "0.12.19" @@ -1226,11 +1191,6 @@ dependencies = [ "rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "language-tags" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "lazy_static" version = "1.2.0" @@ -1257,30 +1217,29 @@ dependencies = [ [[package]] name = "libp2p" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core-derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-dns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-floodsub 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-identify 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-kad 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-mdns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-mplex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ping 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-plaintext 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ratelimit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-secio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-tcp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-uds 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-yamux 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1288,21 +1247,21 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "multistream-select 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1310,34 +1269,41 @@ dependencies = [ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "libp2p-core-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "libp2p-dns" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-floodsub" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", + "cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1346,18 +1312,18 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1367,77 +1333,81 @@ dependencies = [ [[package]] name = "libp2p-kad" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-identify 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-ping 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "libp2p-mdns" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-mplex" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "libp2p-peerstore" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libp2p-ping" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1445,55 +1415,47 @@ dependencies = [ ] [[package]] -name = "libp2p-ratelimit" -version = "0.1.1" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +name = "libp2p-plaintext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "libp2p-relay" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +name = "libp2p-ratelimit" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", + "aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-secio" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", - "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "secp256k1 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1502,69 +1464,41 @@ dependencies = [ ] [[package]] -name = "libp2p-tcp-transport" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +name = "libp2p-tcp" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "libp2p-transport-timeout" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libp2p-uds" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "libp2p-websocket" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "libp2p-yamux" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "yamux 0.1.6 (git+https://github.com/paritytech/yamux)", + "yamux 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1679,14 +1613,6 @@ name = "memory_units" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "mime" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "mio" version = "0.6.16" @@ -1737,36 +1663,10 @@ dependencies = [ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "multiaddr" -version = "0.3.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", - "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", - "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "multihash" -version = "0.8.1-pre" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" -dependencies = [ - "blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "multistream-select" -version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1785,23 +1685,6 @@ dependencies = [ "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "native-tls" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", - "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "net2" version = "0.2.33" @@ -2010,6 +1893,11 @@ name = "opaque-debug" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "opaque-debug" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "openssl" version = "0.10.16" @@ -2023,11 +1911,6 @@ dependencies = [ "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "openssl-probe" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "openssl-sys" version = "0.9.40" @@ -2039,11 +1922,6 @@ dependencies = [ "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "owning_ref" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "owning_ref" version = "0.3.3" @@ -2096,21 +1974,38 @@ dependencies = [ ] [[package]] -name = "parity-wasm" -version = "0.31.3" +name = "parity-multiaddr" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", + "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "parking_lot" -version = "0.3.8" +name = "parity-multihash" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", - "thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parity-wasm" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2572,7 +2467,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2592,54 +2487,19 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "safemem" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "safemem" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "schannel" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "scoped-tls" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "security-framework" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "security-framework-sys" -version = "0.2.2" +name = "secp256k1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2680,11 +2540,6 @@ dependencies = [ "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "sha1" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "sha1" version = "0.6.0" @@ -2701,6 +2556,17 @@ dependencies = [ "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "sha2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "shell32-sys" version = "0.1.2" @@ -3226,11 +3092,6 @@ name = "static_assertions" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "stdweb" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "stdweb" version = "0.4.12" @@ -3636,7 +3497,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3644,10 +3505,12 @@ dependencies = [ "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3986,19 +3849,6 @@ dependencies = [ "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "tempfile" -version = "3.0.5" -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)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "term" version = "0.4.6" @@ -4034,16 +3884,6 @@ dependencies = [ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "thread-id" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "thread-scoped" version = "1.0.2" @@ -4118,24 +3958,6 @@ dependencies = [ "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "tokio-core" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", - "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "tokio-current-thread" version = "0.1.4" @@ -4147,7 +3969,7 @@ dependencies = [ [[package]] name = "tokio-dns-unofficial" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4241,16 +4063,6 @@ dependencies = [ "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "tokio-tls" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "tokio-udp" version = "0.1.3" @@ -4282,11 +4094,6 @@ dependencies = [ "tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "traitobject" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "trie-bench" version = "0.9.0" @@ -4354,11 +4161,6 @@ dependencies = [ "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "typeable" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "typenum" version = "1.10.0" @@ -4380,14 +4182,6 @@ dependencies = [ "rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "unicase" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "unicase" version = "2.2.0" @@ -4432,14 +4226,6 @@ dependencies = [ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "unsigned-varint" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "unsigned-varint" version = "0.2.1" @@ -4541,27 +4327,6 @@ dependencies = [ "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "websocket" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", - "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", - "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "which" version = "1.0.5" @@ -4673,7 +4438,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "yamux" version = "0.1.6" -source = "git+https://github.com/paritytech/yamux#957bccae409e827db4be05abb67d1d6246d5f5c8" +source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4687,12 +4452,11 @@ dependencies = [ ] [metadata] -"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" "checksum aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f65958ff3692041c36fc009261ccd63f24cd8e0dc1164266f068c2387e8b4e4f" "checksum aes-soft 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67cc03b0a090a05cb01e96998a01905d7ceedce1bc23b756c0bb7faa0682ccb1" "checksum aesni 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6810b7fb9f2bb4f76f05ac1c170b8dde285b6308955dc3afd89710268c958d9e" "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" -"checksum aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)" = "" +"checksum aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f10b352bc3fc08ae24dc5d2d3ddcac153678533986122dc283d747b12071000" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" @@ -4706,26 +4470,26 @@ dependencies = [ "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum base-x 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d55aa264e822dbafa12db4d54767aff17c6ba55ea2d8559b3e17392c7d000e5d" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" -"checksum base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5032d51da2741729bfdaeb2664d9b8c6d9fd1e2b90715c660b6def36628499c2" -"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" "checksum bindgen 0.43.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d52d263eacd15d26cbcf215d254b410bd58212aaa2d3c453a04b2d3b3adcf41" -"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" -"checksum blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73b77e29dbd0115e43938be2d5128ecf81c0353e00acaa65339a1242586951d9" +"checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" "checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" +"checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d" "checksum block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "370424437b9459f3dfd68428ed9376ddfe03d8b70ede29cc533b3557df186ab4" +"checksum block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc4358306e344bf9775d0197fd00d2603e5afb0771bb353538630f022068ea3" "checksum bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0de79cfb98e7aa9988188784d8664b4b5dad6eaaa0863b91d9a4ed871d4f7a42" "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" +"checksum byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182" "checksum byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96c8b41881888cc08af32d47ac4edd52bc7fa27fef774be47a92443756451304" +"checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum cast 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "011941fb53da1a8ac3e4132a1becc367c44fe13f630769f3143d8c66c91c6cb6" "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cexpr 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8fc0086be9ca82f7fc89fc873435531cb898b86e850005850de1f820e2db6e9b" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" -"checksum chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" "checksum clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ef0c1bcf2e99c649104bd7a7012d8f8802684400e03db0ec0af48583c6fa0e4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" @@ -4733,8 +4497,6 @@ dependencies = [ "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" "checksum cmake 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "6ec65ee4f9c9d16f335091d23693457ed4928657ba4982289d7fafee03bc614a" "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" -"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" -"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" "checksum criterion 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f58b0200bf321214bdda8c797cf0071bcc638171c40ec198c3f652a4edaacde3" "checksum criterion-plot 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "885431f7865f9d4956b466126674e5ea40a0f193d42157e56630c356c5501957" "checksum criterion-stats 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c71521cb4c7b7eac76b540e75447fb0172c4234d6333729001b886aaa21d6da4" @@ -4748,17 +4510,19 @@ dependencies = [ "checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a" "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" -"checksum crypto-mac 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0999b4ff4d3446d4ddb19a63e9e00c1876e75cd7000d20e57a693b4b3f08d958" "checksum crypto-mac 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7afa06d05a046c7a47c3a849907ec303504608c927f4e85f7bfff22b7180d971" +"checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" "checksum ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b669fcb8e20124db86dbd9b01e74ec0e9e420e65381311ce5249864fc7ff0c0" "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" +"checksum cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f" "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" "checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" -"checksum datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" +"checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c" "checksum discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" +"checksum dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" "checksum ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cd66d8a16ef71c23cf5eeb2140d8d3cd293457c6c7fd6804b593397a933fcf1e" "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" "checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" @@ -4767,7 +4531,6 @@ dependencies = [ "checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db746025e3ea695bfa0ae744dbacd5fcfc8db51b9760cf8bd0ab69708bb93c49" "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" -"checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "" "checksum etrace 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f17311e68ea07046ee809b8513f6c259518bc10173681d98c21f8c3926f56f40" "checksum exit-future 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "87559b08e99a81a92bbb867d237543e43495857749f688e0773390a20d56c61c" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" @@ -4785,6 +4548,7 @@ dependencies = [ "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +"checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" "checksum getset 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "54c7f36a235738bb25904d6a2b3dbb28f6f5736cd3918c4bf80d6bb236200782" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" @@ -4801,7 +4565,6 @@ dependencies = [ "checksum http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "02096a6d2c55e63f7fcb800690e4f889a25f6ec342e3adb4594e293b625215ab" "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114" -"checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" "checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" "checksum impl-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c88568d828291c50eed30cd7fb9f8e688ad0013620186fa3e777b9f206c79f2" @@ -4825,28 +4588,26 @@ dependencies = [ "checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" -"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" -"checksum libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a92f6f1c0bd32ac7bb23c33af667149df5518e38f9ad2f517df71e52f1f0bbc" +"checksum libp2p-core 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bdcd726ea75447b332288169581c921e49e893e34ca9925d49fd28dda16afe3" +"checksum libp2p-core-derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e52a2262f187aa45d07054bc80e39f0da582eb0288ca5f2dc0074b372e4b7eaa" +"checksum libp2p-dns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f7ad92f9711efece48bb7ce30e3f1e662cd3524dc5d9f96b8f68b6e4e7cde96" +"checksum libp2p-floodsub 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4feda0ff3afcf84dfee9ea088835293829d199a34491d7f0990a4ccfd627816c" +"checksum libp2p-identify 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "548f9180101bd5846f4f60e060a00032ba3671a77fc735c48a85b7d1016d28ef" +"checksum libp2p-kad 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e06312d4a1655d2d531b2f9293039a66d6e89854e11ef3eac6d2f9137cae99f0" +"checksum libp2p-mdns 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1bbcb82063545605abf697967d919d418b1725f7d3688973fa26c98f81e8cda8" +"checksum libp2p-mplex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9406ea58ce4fef47820f7d2d6aa62b7e42b4972c30cc87de577d4da40852d4b1" +"checksum libp2p-ping 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1ca7b60c2edb0cae7f9db56fbe6c21ca6960e96ec92cd1ed265ac06db24a1fe" +"checksum libp2p-plaintext 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bdbdd4700d5edea10214e4733ab5ac5be87862bac8a9b259c987bc9c15004" +"checksum libp2p-ratelimit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d3001ea6afed5ccd1e5934715aa388b60b23e7587117db36b89d697e8ea43ff3" +"checksum libp2p-secio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8a066857eeadf4e632d0c2aedab66022bee02daf21bb60b4ce45977082c8196a" +"checksum libp2p-tcp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcb2bcb9402f5fe42441dd4558306ff83a28624f67c6066bdbaa98928c180e3" +"checksum libp2p-uds 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3e88ac8f419f8d9487aaee9ef8785f592b37d78067c6764fe0adc1874a72c6c" +"checksum libp2p-yamux 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71b4fd69a1c038152d017366d759177e2580fb4fbb56ce65429a642e011a07b1" "checksum librocksdb-sys 5.14.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b9024327233e7fac7982440f73301c00046d438c5b1011e8f4e394226ce19007" "checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" @@ -4862,16 +4623,12 @@ dependencies = [ "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum memory_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "71d96e3f3c0b6325d8ccd83c33b28acb183edcb6c67938ba104ec546854b0882" -"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum multistream-select 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "886fe7ba983a194afdd9074323171c8e313b2c145561da69464d5443f1a3d121" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" -"checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" @@ -4885,18 +4642,18 @@ dependencies = [ "checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c" "checksum once_cell 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d7ce3535d54560c937c1652ba4a0da66bfc63e0f8e07bed127483afb6e5ee925" "checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7" +"checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682" "checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" -"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" -"checksum owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8adf489acb31f1922db0ce43803b6f48a425241a8473611be3cc625a8e4a4c47" +"checksum parity-multiaddr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a8e5d637787fe097ec1bfca2aa3eb687396518003df991c6c7216d86682d5ff" +"checksum parity-multihash 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3e8eab0287ccde7821e337a124dc5a4f1d6e4c25d10cc91e3f9361615dd95076" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" -"checksum parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fa12d706797d42551663426a45e2db2e0364bd1dbf6aeada87e89c5f981f43e9" "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" @@ -4950,24 +4707,19 @@ dependencies = [ "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum rw-stream-sink 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "108ad7c3d65ba866ec50a224b7b3b0cb6c682c3d805015cea859d491232346a5" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f7bf422d23a88c16d5090d455f182bc99c60af4df6a345c63428acf5129e347" -"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" -"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" -"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" -"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" -"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2" +"checksum secp256k1 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4070f3906e65249228094cf97b04a90799fba04468190bbbcfa812309cf86e32" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "0e732ed5a5592c17d961555e3b552985baf98d50ce418b7b655f31f6ba7eb1b7" "checksum serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d6115a3ca25c224e409185325afc16a0d5aaaabc15c42b09587d6f1ba39a5b" "checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545" -"checksum sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "171698ce4ec7cbb93babeb3190021b4d72e96ccb98e33d277ae4ea959d6f2d9e" "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" "checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" +"checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" "checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c" "checksum simplelog 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "24b615b1a3cc51ffa565d9a1d0cfcc49fe7d64737ada84eca284cddb0292d125" "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" @@ -4978,7 +4730,6 @@ dependencies = [ "checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum static_assertions 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c19be23126415861cb3a23e501d34a708f7f9b2183c5252d690941c2e69199d5" -"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" "checksum stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "b84f9c829ef7d2e6abf1965393b231c0fd495f0293d612f32dbadd637e91fd0d" "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" "checksum stdweb-internal-macros 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d60e306bddd5d213f86f7b417b6cdcefbf742917414ac9dda6e9750ef4553dce" @@ -4998,12 +4749,10 @@ dependencies = [ "checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" -"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" "checksum term 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "fa63644f74ce96fbeb9b794f66aff2a52d601cbd5e80f4b97123e3899f4570f1" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" -"checksum thread-id 3.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" "checksum thread-scoped 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbb6aa301e5d3b0b5ef639c9a9c7e2f1c944f177b460c04dc24c69b1fa2bd99" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c" @@ -5011,9 +4760,8 @@ dependencies = [ "checksum tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5462b0f968c0457efe38fcd2df7e487096b992419e4f5337b06775a614bbda4b" "checksum tokio 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4790d0be6f4ba6ae4f48190efa2ed7780c9e3567796abdb285003cf39840d9c5" "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" -"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" -"checksum tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb9bf62ca2c53bf2f2faec3e48a98b6d8c9577c27011cb0203a4beacdc8ab328" +"checksum tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82c65483db54eb91b4ef3a9389a3364558590faf30ce473141707c0e16fda975" "checksum tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30c6dbf2d1ad1de300b393910e8a3aa272b724a400b6531da03eed99e329fbf0" "checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d" "checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f" @@ -5021,10 +4769,8 @@ dependencies = [ "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" "checksum tokio-threadpool 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "17465013014410310f9f61fa10bf4724803c149ea1d51efece131c38efca93aa" "checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" -"checksum tokio-tls 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" "checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" "checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" -"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" "checksum trie-bench 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum trie-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" "checksum trie-root 0.9.0 (git+https://github.com/paritytech/trie)" = "" @@ -5032,11 +4778,9 @@ dependencies = [ "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" "checksum twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1eef327f05b0d0ec1b9d7d119d8f4d9f602ceee37e0540aff8071e8e66c2e22e" "checksum twox-hash 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "555cd4909480122bbbf21e34faac4cb08a171f324775670447ed116726c474af" -"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" "checksum uint 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "082df6964410f6aa929a61ddfafc997e4f32c62c22490e439ac351cec827f436" -"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" "checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" @@ -5044,7 +4788,6 @@ dependencies = [ "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "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 unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c1441164e5da61f00acd15f5a9e61939693c2c6e8b9fae36a220b82de7e212" "checksum unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8abc4b7d8158bdfbbaaccc35331ed3c30c2673e99000d7ae665a2eb6576f4" "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" @@ -5058,7 +4801,6 @@ dependencies = [ "checksum wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "462336bb61096e64761730e0dea1bc8b777bd4e3689c7e813c81f1cfdf4e8a51" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" "checksum wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" -"checksum websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9faed2bff8af2ea6b9f8b917d3d00b467583f6781fe3def174a9e33c879703" "checksum which 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e84a603e7e0b1ce1aa1ee2b109c7be00155ce52df5081590d1ffb93f4f515cb2" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" @@ -5072,4 +4814,4 @@ dependencies = [ "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" -"checksum yamux 0.1.6 (git+https://github.com/paritytech/yamux)" = "" +"checksum yamux 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e25561b512df3c287cf52404cab0b07ea43d095cb96230e9e2cb635db72d75f0" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 7c7271e396..4fee117b4e 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/tomaka/libp2p-rs", rev = "997d0163bc8a7e11559524ad8466bc3b1850c8ec", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } +libp2p = { version = "0.2", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } parking_lot = "0.7.1" libc = "0.2" log = "0.4" @@ -19,10 +19,12 @@ rand = "0.5.0" serde = "1.0.70" serde_derive = "1.0.70" serde_json = "1.0.24" +smallvec = "0.6" tokio = "0.1" tokio-io = "0.1" tokio-timer = "0.2" unsigned-varint = { version = "0.2.1", features = ["codec"] } +void = "1.0" [dev-dependencies] assert_matches = "1.2" diff --git a/core/network-libp2p/src/behaviour.rs b/core/network-libp2p/src/behaviour.rs new file mode 100644 index 0000000000..ccaab248ff --- /dev/null +++ b/core/network-libp2p/src/behaviour.rs @@ -0,0 +1,262 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +use crate::custom_proto::{CustomProtos, CustomProtosOut, RegisteredProtocols}; +use crate::{NetworkConfiguration, ProtocolId}; +use bytes::Bytes; +use futures::prelude::*; +use libp2p::core::{PeerId, ProtocolsHandler}; +use libp2p::core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction}; +use libp2p::core::swarm::{NetworkBehaviourEventProcess, PollParameters}; +use libp2p::identify::{Identify, IdentifyEvent}; +use libp2p::kad::{Kademlia, KademliaOut, KademliaTopology}; +use libp2p::ping::{Ping, PingEvent}; +use std::{cmp, time::Duration, time::Instant}; +use tokio_io::{AsyncRead, AsyncWrite}; +use tokio_timer::Delay; +use void; + +/// General behaviour of the network. +#[derive(NetworkBehaviour)] +#[behaviour(out_event = "CustomProtosOut", poll_method = "poll")] +pub struct Behaviour { + /// Periodically ping nodes, and close the connection if it's unresponsive. + ping: Ping, + /// Custom protocols (dot, bbq, sub, etc.). + custom_protocols: CustomProtos, + /// Discovers nodes of the network. Defined below. + discovery: DiscoveryBehaviour, + /// Periodically identifies the remote and responds to incoming requests. + identify: Identify, + + /// Queue of events to produce for the outside. + #[behaviour(ignore)] + events: Vec, +} + +impl Behaviour { + /// Builds a new `Behaviour`. + // TODO: redundancy between config and local_peer_id (https://github.com/libp2p/rust-libp2p/issues/745) + pub fn new(config: &NetworkConfiguration, local_peer_id: PeerId, protocols: RegisteredProtocols) -> Self { + Behaviour { + ping: Ping::new(), + custom_protocols: CustomProtos::new(config, protocols), + discovery: DiscoveryBehaviour::new(local_peer_id), + identify: Identify::new( + // The agent and protocol versions; maybe we should use something better? + concat!("substrate/", env!("CARGO_PKG_VERSION")).to_owned(), + concat!("substrate/", env!("CARGO_PKG_VERSION")).to_owned() + ), + events: Vec::new(), + } + } + + /// Sends a message to a peer using the given custom protocol. + /// + /// Has no effect if the custom protocol is not open with the given peer. + /// + /// Also note that even we have a valid open substream, it may in fact be already closed + /// without us knowing, in which case the packet will not be received. + #[inline] + pub fn send_custom_message(&mut self, target: &PeerId, protocol_id: ProtocolId, data: impl Into) { + self.custom_protocols.send_packet(target, protocol_id, data) + } + + /// Try to add a reserved peer. + pub fn add_reserved_peer(&mut self, peer_id: PeerId) { + self.custom_protocols.add_reserved_peer(peer_id) + } + + /// Try to remove a reserved peer. + /// + /// If we are in reserved mode and we were connected to a node with this peer ID, then this + /// method will disconnect it and return its index. + pub fn remove_reserved_peer(&mut self, peer_id: PeerId) { + self.custom_protocols.remove_reserved_peer(peer_id) + } + + /// Start accepting all peers again if we weren't. + pub fn accept_unreserved_peers(&mut self) { + self.custom_protocols.accept_unreserved_peers() + } + + /// Start refusing non-reserved nodes. Returns the list of nodes that have been disconnected. + pub fn deny_unreserved_peers(&mut self) { + self.custom_protocols.deny_unreserved_peers() + } + + /// Disconnects a peer and bans it for a little while. + /// + /// Same as `drop_node`, except that the same peer will not be able to reconnect later. + #[inline] + pub fn ban_node(&mut self, peer_id: PeerId) { + self.custom_protocols.ban_peer(peer_id) + } + + /// Disconnects the custom protocols from a peer. + /// + /// The peer will still be able to use Kademlia or other protocols, but will get disconnected + /// after a few seconds of inactivity. + /// + /// This is asynchronous and does not instantly close the custom protocols. + /// Corresponding closing events will be generated once the closing actually happens. + /// + /// Has no effect if we're not connected to the `PeerId`. + #[inline] + pub fn drop_node(&mut self, peer_id: &PeerId) { + self.custom_protocols.disconnect_peer(peer_id) + } +} + +impl NetworkBehaviourEventProcess for Behaviour { + fn inject_event(&mut self, event: void::Void) { + void::unreachable(event) + } +} + +impl NetworkBehaviourEventProcess for Behaviour { + fn inject_event(&mut self, event: CustomProtosOut) { + self.events.push(event); + } +} + +impl NetworkBehaviourEventProcess for Behaviour { + fn inject_event(&mut self, event: IdentifyEvent) { + match event { + IdentifyEvent::Identified { peer_id, info, .. } => { + trace!(target: "sub-libp2p", "Identified {:?} => {:?}", peer_id, info); + } + IdentifyEvent::Error { .. } => {} + } + } +} + +impl NetworkBehaviourEventProcess for Behaviour { + fn inject_event(&mut self, _: KademliaOut) { + // We only ever use Kademlia for discovering nodes, and nodes discovered by Kademlia are + // automatically added to the topology. Therefore we don't need to do anything. + } +} + +impl NetworkBehaviourEventProcess for Behaviour { + fn inject_event(&mut self, event: PingEvent) { + match event { + PingEvent::PingSuccess { peer, time } => { + trace!(target: "sub-libp2p", "Ping time with {:?}: {:?}", peer, time); + } + } + } +} + +impl Behaviour { + fn poll(&mut self) -> Async> { + if !self.events.is_empty() { + return Async::Ready(NetworkBehaviourAction::GenerateEvent(self.events.remove(0))) + } + + Async::NotReady + } +} + +/// Implementation of `NetworkBehaviour` that discovers the nodes on the network. +pub struct DiscoveryBehaviour { + /// Kademlia requests and answers. + kademlia: Kademlia, + /// Stream that fires when we need to perform the next random Kademlia query. + next_kad_random_query: Delay, + /// After `next_kad_random_query` triggers, the next one triggers after this duration. + duration_to_next_kad: Duration, +} + +impl DiscoveryBehaviour { + fn new(local_peer_id: PeerId) -> Self { + DiscoveryBehaviour { + kademlia: Kademlia::without_init(local_peer_id), + next_kad_random_query: Delay::new(Instant::now()), + duration_to_next_kad: Duration::from_secs(1), + } + } +} + +impl NetworkBehaviour for DiscoveryBehaviour +where + TSubstream: AsyncRead + AsyncWrite, + TTopology: KademliaTopology, +{ + type ProtocolsHandler = as NetworkBehaviour>::ProtocolsHandler; + type OutEvent = as NetworkBehaviour>::OutEvent; + + fn new_handler(&mut self) -> Self::ProtocolsHandler { + NetworkBehaviour::::new_handler(&mut self.kademlia) + } + + fn inject_connected(&mut self, peer_id: PeerId, endpoint: ConnectedPoint) { + NetworkBehaviour::::inject_connected(&mut self.kademlia, peer_id, endpoint) + } + + fn inject_disconnected(&mut self, peer_id: &PeerId, endpoint: ConnectedPoint) { + NetworkBehaviour::::inject_disconnected(&mut self.kademlia, peer_id, endpoint) + } + + fn inject_node_event( + &mut self, + peer_id: PeerId, + event: ::OutEvent, + ) { + NetworkBehaviour::::inject_node_event(&mut self.kademlia, peer_id, event) + } + + fn poll( + &mut self, + params: &mut PollParameters, + ) -> Async< + NetworkBehaviourAction< + ::InEvent, + Self::OutEvent, + >, + > { + // Poll Kademlia. + match self.kademlia.poll(params) { + Async::Ready(action) => return Async::Ready(action), + Async::NotReady => (), + } + + // Poll the stream that fires when we need to start a random Kademlia query. + loop { + match self.next_kad_random_query.poll() { + Ok(Async::NotReady) => break, + Ok(Async::Ready(_)) => { + let random_peer_id = PeerId::random(); + debug!(target: "sub-libp2p", "Starting random Kademlia request for {:?}", + random_peer_id); + self.kademlia.find_node(random_peer_id); + + // Reset the `Delay` to the next random. + self.next_kad_random_query.reset(Instant::now() + self.duration_to_next_kad); + self.duration_to_next_kad = cmp::min(self.duration_to_next_kad * 2, + Duration::from_secs(60)); + }, + Err(err) => { + warn!(target: "sub-libp2p", "Kad query timer errored: {:?}", err); + break + } + } + } + + Async::NotReady + } +} + diff --git a/core/network-libp2p/src/custom_proto/behaviour.rs b/core/network-libp2p/src/custom_proto/behaviour.rs new file mode 100644 index 0000000000..521c204ff2 --- /dev/null +++ b/core/network-libp2p/src/custom_proto/behaviour.rs @@ -0,0 +1,471 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +use crate::custom_proto::handler::{CustomProtosHandler, CustomProtosHandlerOut, CustomProtosHandlerIn}; +use crate::custom_proto::upgrade::RegisteredProtocols; +use crate::{NetworkConfiguration, NonReservedPeerMode, ProtocolId, topology::NetTopology}; +use bytes::Bytes; +use fnv::{FnvHashMap, FnvHashSet}; +use futures::prelude::*; +use libp2p::core::swarm::{ConnectedPoint, NetworkBehaviour, NetworkBehaviourAction, PollParameters}; +use libp2p::core::{protocols_handler::ProtocolsHandler, PeerId}; +use smallvec::SmallVec; +use std::{io, marker::PhantomData, time::Duration, time::Instant}; +use tokio_io::{AsyncRead, AsyncWrite}; +use tokio_timer::Delay; + +// Duration during which a peer is disabled. +const PEER_DISABLE_DURATION: Duration = Duration::from_secs(5 * 60); + +/// Network behaviour that handles opening substreams for custom protocols with other nodes. +pub struct CustomProtos { + /// List of protocols to open with peers. Never modified. + registered_protocols: RegisteredProtocols, + + /// List of custom protocols that we have open with remotes. + open_protocols: Vec<(PeerId, ProtocolId)>, + + /// List of peer handlers that were enabled, and whether we're dialing or listening. + /// + /// Note that it is possible for a peer to be in the shutdown process, in which case it will + /// not be in this list but will be present in `open_protocols`. + /// It is also possible that we have *just* enabled a peer, in which case it will be in this + /// list but not in `open_protocols`. + enabled_peers: FnvHashMap, + + /// Maximum number of incoming non-reserved connections, taken from the config. Never modified. + max_incoming_connections: usize, + + /// Maximum number of outgoing non-reserved connections, taken from the config. Never modified. + max_outgoing_connections: usize, + + /// If true, only reserved peers can connect. + reserved_only: bool, + + /// List of the IDs of the reserved peers. We always try to maintain a connection these peers. + reserved_peers: FnvHashSet, + + /// List of the IDs of peers that are forbidden, and the moment their ban expires. + banned_peers: Vec<(PeerId, Instant)>, + + /// When this delay expires, we need to synchronize our active connectons with the + /// network topology. + next_connect_to_nodes: Delay, + + /// Events to produce from `poll()`. + events: SmallVec<[NetworkBehaviourAction; 4]>, + + /// Marker to pin the generics. + marker: PhantomData, +} + +/// Event that can be emitted by the `CustomProtos`. +#[derive(Debug)] +pub enum CustomProtosOut { + /// Opened a custom protocol with the remote. + CustomProtocolOpen { + /// Identifier of the protocol. + protocol_id: ProtocolId, + /// Version of the protocol that has been opened. + version: u8, + /// Id of the node we have opened a connection with. + peer_id: PeerId, + /// Endpoint used for this custom protocol. + endpoint: ConnectedPoint, + }, + + /// Closed a custom protocol with the remote. + CustomProtocolClosed { + /// Id of the peer we were connected to. + peer_id: PeerId, + /// Identifier of the protocol. + protocol_id: ProtocolId, + /// Reason why the substream closed. If `Ok`, then it's a graceful exit (EOF). + result: io::Result<()>, + }, + + /// Receives a message on a custom protocol substream. + CustomMessage { + /// Id of the peer the message came from. + peer_id: PeerId, + /// Protocol which generated the message. + protocol_id: ProtocolId, + /// Data that has been received. + data: Bytes, + }, +} + +impl CustomProtos { + /// Creates a `CustomProtos`. + pub fn new(config: &NetworkConfiguration, registered_protocols: RegisteredProtocols) -> Self { + let max_incoming_connections = config.in_peers as usize; + let max_outgoing_connections = config.out_peers as usize; + + // Expected maximum number of connections. + let connec_cap = max_incoming_connections + .saturating_add(max_outgoing_connections) + .saturating_add(4); // We add an arbitrary number for reserved peers slots + + // Expected maximum number of substreams. + let open_protos_cap = connec_cap.saturating_mul(registered_protocols.len()); + + CustomProtos { + registered_protocols, + max_incoming_connections, + max_outgoing_connections, + reserved_only: config.non_reserved_mode == NonReservedPeerMode::Deny, + reserved_peers: Default::default(), + banned_peers: Vec::new(), + open_protocols: Vec::with_capacity(open_protos_cap), + enabled_peers: FnvHashMap::with_capacity_and_hasher(connec_cap, Default::default()), + next_connect_to_nodes: Delay::new(Instant::now()), + events: SmallVec::new(), + marker: PhantomData, + } + } + + /// Adds a reserved peer. + pub fn add_reserved_peer(&mut self, peer_id: PeerId) { + self.reserved_peers.insert(peer_id); + + // Trigger a `connect_to_nodes` round. + self.next_connect_to_nodes = Delay::new(Instant::now()); + } + + /// Removes a reserved peer. + /// + /// If we are in reserved mode and we were connected to a node with this peer ID, then this + /// method will disconnect it and return its index. + pub fn remove_reserved_peer(&mut self, peer_id: PeerId) { + self.reserved_peers.remove(&peer_id); + } + + /// Start accepting all peers again if we weren't. + pub fn accept_unreserved_peers(&mut self) { + if !self.reserved_only { + return + } + + self.reserved_only = false; + // Trigger a `connect_to_nodes` round. + self.next_connect_to_nodes = Delay::new(Instant::now()); + } + + /// Start refusing non-reserved nodes. + pub fn deny_unreserved_peers(&mut self) { + if self.reserved_only { + return + } + + self.reserved_only = true; + + // Disconnecting nodes that are connected to us and that aren't reserved + let reserved_peers = &mut self.reserved_peers; + let events = &mut self.events; + self.enabled_peers.retain(move |peer_id, _| { + if reserved_peers.contains(peer_id) { + return true + } + events.push(NetworkBehaviourAction::SendEvent { + peer_id: peer_id.clone(), + event: CustomProtosHandlerIn::Disable, + }); + false + }) + } + + /// Disconnects the given peer if we are connected to it. + pub fn disconnect_peer(&mut self, peer: &PeerId) { + if self.enabled_peers.remove(peer).is_some() { + self.events.push(NetworkBehaviourAction::SendEvent { + peer_id: peer.clone(), + event: CustomProtosHandlerIn::Disable, + }); + } + } + + /// Disconnects the given peer if we are connected to it and disables it for a little while. + pub fn ban_peer(&mut self, peer_id: PeerId) { + // Peer is already banned + if self.banned_peers.iter().any(|(p, _)| p == &peer_id) { + return + } + self.banned_peers.push((peer_id.clone(), Instant::now() + PEER_DISABLE_DURATION)); + if self.enabled_peers.remove(&peer_id).is_some() { + self.events.push(NetworkBehaviourAction::SendEvent { + peer_id, + event: CustomProtosHandlerIn::Disable, + }); + } + } + + /// Sends a message to a peer using the given custom protocol. + /// + /// Has no effect if the custom protocol is not open with the given peer. + /// + /// Also note that even we have a valid open substream, it may in fact be already closed + /// without us knowing, in which case the packet will not be received. + pub fn send_packet(&mut self, target: &PeerId, protocol_id: ProtocolId, data: impl Into) { + self.events.push(NetworkBehaviourAction::SendEvent { + peer_id: target.clone(), + event: CustomProtosHandlerIn::SendCustomMessage { + protocol: protocol_id, + data: data.into(), + } + }); + } + + /// Updates the attempted connections to nodes. + /// + /// Also updates `next_connect_to_nodes` with the earliest known moment when we need to + /// update connections again. + fn connect_to_nodes(&mut self, params: &mut PollParameters) { + // Make sure we are connected or connecting to all the reserved nodes. + for reserved in self.reserved_peers.iter() { + // TODO: don't generate an event if we're already in a pending connection (https://github.com/libp2p/rust-libp2p/issues/697) + if !self.enabled_peers.contains_key(&reserved) { + self.events.push(NetworkBehaviourAction::DialPeer { peer_id: reserved.clone() }); + } + } + + // We're done with reserved node; return early if there's nothing more to do. + if self.reserved_only { + return + } + + // Counter of number of connections to open, decreased when we open one. + let mut num_to_open = { + let num_outgoing_connections = self.enabled_peers + .iter() + .filter(|(_, endpoint)| endpoint.is_dialer()) + .filter(|(p, _)| !self.reserved_peers.contains(p)) + .count(); + self.max_outgoing_connections - num_outgoing_connections + }; + + trace!(target: "sub-libp2p", "Connect-to-nodes round; attempting to fill {:?} slots", + num_to_open); + + let local_peer_id = params.local_peer_id().clone(); + let (to_try, will_change) = params.topology().addrs_to_attempt(); + for (peer_id, _) in to_try { + if num_to_open == 0 { + break + } + + if peer_id == &local_peer_id { + continue + } + + if let Some((_, ban_end)) = self.banned_peers.iter().find(|(p, _)| p == peer_id) { + if *ban_end > Instant::now() { + continue + } + } + + num_to_open -= 1; + self.events.push(NetworkBehaviourAction::DialPeer { peer_id: peer_id.clone() }); + } + + // Next round is when we expect the topology will change. + self.next_connect_to_nodes.reset(will_change); + } +} + +impl NetworkBehaviour for CustomProtos +where + TSubstream: AsyncRead + AsyncWrite, +{ + type ProtocolsHandler = CustomProtosHandler; + type OutEvent = CustomProtosOut; + + fn new_handler(&mut self) -> Self::ProtocolsHandler { + CustomProtosHandler::new(self.registered_protocols.clone()) + } + + fn inject_connected(&mut self, peer_id: PeerId, endpoint: ConnectedPoint) { + // When a peer connects, its handler is initially in the disabled state. We make sure that + // the peer is allowed, and if so we put it in the enabled state. + + let is_reserved = self.reserved_peers.contains(&peer_id); + if self.reserved_only && !is_reserved { + debug!(target: "sub-libp2p", "Ignoring {:?} because we're in reserved mode", peer_id); + return + } + + // Check whether peer is banned. + if !is_reserved { + if let Some((_, expire)) = self.banned_peers.iter().find(|(p, _)| p == &peer_id) { + if *expire >= Instant::now() { + debug!(target: "sub-libp2p", "Ignoring banned peer {:?}", peer_id); + return + } + } + } + + // Check the limits on the ingoing and outgoing connections. + match endpoint { + ConnectedPoint::Dialer { .. } => { + let num_outgoing = self.enabled_peers.iter() + .filter(|(_, e)| e.is_dialer()) + .filter(|(p, _)| !self.reserved_peers.contains(p)) + .count(); + + debug_assert!(num_outgoing <= self.max_outgoing_connections); + if num_outgoing == self.max_outgoing_connections { + return + } + } + ConnectedPoint::Listener { .. } => { + let num_ingoing = self.enabled_peers.iter() + .filter(|(_, e)| e.is_listener()) + .filter(|(p, _)| !self.reserved_peers.contains(p)) + .count(); + + debug_assert!(num_ingoing <= self.max_incoming_connections); + if num_ingoing == self.max_incoming_connections { + debug!(target: "sub-libp2p", "Ignoring incoming connection from {:?} because \ + we're full", peer_id); + return + } + } + } + + // If everything is fine, enable the node. + debug_assert!(!self.enabled_peers.contains_key(&peer_id)); + // We ask the handler to actively open substreams only if we are the dialer; otherwise + // the two nodes will race to be the first to open the unique allowed substream. + if endpoint.is_dialer() { + trace!(target: "sub-libp2p", "Enabling custom protocols with {:?} (active)", peer_id); + self.events.push(NetworkBehaviourAction::SendEvent { + peer_id: peer_id.clone(), + event: CustomProtosHandlerIn::EnableActive, + }); + } else { + trace!(target: "sub-libp2p", "Enabling custom protocols with {:?} (passive)", peer_id); + self.events.push(NetworkBehaviourAction::SendEvent { + peer_id: peer_id.clone(), + event: CustomProtosHandlerIn::EnablePassive, + }); + } + + self.enabled_peers.insert(peer_id, endpoint); + } + + fn inject_disconnected(&mut self, peer_id: &PeerId, _: ConnectedPoint) { + while let Some(pos) = self.open_protocols.iter().position(|(p, _)| p == peer_id) { + let (_, protocol_id) = self.open_protocols.remove(pos); + + let event = CustomProtosOut::CustomProtocolClosed { + protocol_id, + peer_id: peer_id.clone(), + result: Ok(()), + }; + + self.events.push(NetworkBehaviourAction::GenerateEvent(event)); + + // Trigger a `connect_to_nodes` round. + self.next_connect_to_nodes = Delay::new(Instant::now()); + } + + self.enabled_peers.remove(peer_id); + } + + fn inject_node_event( + &mut self, + source: PeerId, + event: ::OutEvent, + ) { + match event { + CustomProtosHandlerOut::CustomProtocolClosed { protocol_id, result } => { + let pos = self.open_protocols.iter().position(|(s, p)| + s == &source && p == &protocol_id + ); + + if let Some(pos) = pos { + self.open_protocols.remove(pos); + } else { + debug_assert!(false, "Couldn't find protocol in open_protocols"); + } + + let event = CustomProtosOut::CustomProtocolClosed { + protocol_id, + result, + peer_id: source, + }; + + self.events.push(NetworkBehaviourAction::GenerateEvent(event)); + } + CustomProtosHandlerOut::CustomProtocolOpen { protocol_id, version } => { + debug_assert!(!self.open_protocols.iter().any(|(s, p)| + s == &source && p == &protocol_id + )); + self.open_protocols.push((source.clone(), protocol_id)); + + if let Some(address) = self.enabled_peers.get(&source) { + let event = CustomProtosOut::CustomProtocolOpen { + protocol_id, + version, + peer_id: source, + endpoint: address.clone() + }; + + self.events.push(NetworkBehaviourAction::GenerateEvent(event)); + } + } + CustomProtosHandlerOut::CustomMessage { protocol_id, data } => { + let event = CustomProtosOut::CustomMessage { + peer_id: source, + protocol_id, + data, + }; + + self.events.push(NetworkBehaviourAction::GenerateEvent(event)); + } + } + } + + fn poll( + &mut self, + params: &mut PollParameters, + ) -> Async< + NetworkBehaviourAction< + ::InEvent, + Self::OutEvent, + >, + > { + loop { + match self.next_connect_to_nodes.poll() { + Ok(Async::Ready(())) => self.connect_to_nodes(params), + Ok(Async::NotReady) => break, + Err(err) => { + warn!(target: "sub-libp2p", "Connect-to-nodes timer errored: {:?}", err); + break + } + } + } + + // Clean up `banned_peers` + self.banned_peers.retain(|(_, end)| *end < Instant::now()); + self.banned_peers.shrink_to_fit(); + + if !self.events.is_empty() { + return Async::Ready(self.events.remove(0)) + } + + Async::NotReady + } +} diff --git a/core/network-libp2p/src/custom_proto/handler.rs b/core/network-libp2p/src/custom_proto/handler.rs new file mode 100644 index 0000000000..d03f3f093d --- /dev/null +++ b/core/network-libp2p/src/custom_proto/handler.rs @@ -0,0 +1,327 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +use crate::ProtocolId; +use crate::custom_proto::upgrade::{RegisteredProtocol, RegisteredProtocols, RegisteredProtocolSubstream}; +use bytes::Bytes; +use futures::prelude::*; +use libp2p::core::{ + Endpoint, ProtocolsHandler, ProtocolsHandlerEvent, + protocols_handler::ProtocolsHandlerUpgrErr, + upgrade::{InboundUpgrade, OutboundUpgrade} +}; +use smallvec::SmallVec; +use std::{fmt, io}; +use tokio_io::{AsyncRead, AsyncWrite}; +use void::Void; + +/// Protocol handler that tries to maintain one substream per registered custom protocol. +/// +/// The handler initially starts in the "Disable" state. It can then be enabled by sending an +/// `Enable` message. +/// The handler can then be enabled and disabled at any time with the `Enable` and `Disable` +/// messages. +pub struct CustomProtosHandler { + /// List of all the protocols we support. + protocols: RegisteredProtocols, + + /// See the documentation of `State`. + state: State, + + /// The active substreams. There should always ever be only one substream per protocol. + substreams: SmallVec<[RegisteredProtocolSubstream; 6]>, + + /// Queue of events to send to the outside. + events_queue: SmallVec<[ProtocolsHandlerEvent; 16]>, +} + +/// State of the handler. +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +enum State { + /// Normal functionning. + Normal, + + /// We are disabled. We close existing substreams and refuse incoming connections, but don't + /// shut down the entire handler. + Disabled, + + /// We are trying to shut down the existing node and thus should refuse any incoming + /// connection. + ShuttingDown, +} + +/// Event that can be received by a `CustomProtosHandler`. +#[derive(Debug)] +pub enum CustomProtosHandlerIn { + /// The node should start using custom protocols and actively open substreams. + EnableActive, + + /// The node should listen to custom protocols but not open substreams. + EnablePassive, + + /// The node should stop using custom protocols. + Disable, + + /// Sends a message through a custom protocol substream. + SendCustomMessage { + /// The protocol to use. + protocol: ProtocolId, + /// The data to send. + data: Bytes, + }, +} + +/// Event that can be emitted by a `CustomProtosHandler`. +#[derive(Debug)] +pub enum CustomProtosHandlerOut { + /// Opened a custom protocol with the remote. + CustomProtocolOpen { + /// Identifier of the protocol. + protocol_id: ProtocolId, + /// Version of the protocol that has been opened. + version: u8, + }, + + /// Closed a custom protocol with the remote. + CustomProtocolClosed { + /// Identifier of the protocol. + protocol_id: ProtocolId, + /// Reason why the substream closed. If `Ok`, then it's a graceful exit (EOF). + result: io::Result<()>, + }, + + /// Receives a message on a custom protocol substream. + CustomMessage { + /// Protocol which generated the message. + protocol_id: ProtocolId, + /// Data that has been received. + data: Bytes, + }, +} + +impl CustomProtosHandler +where + TSubstream: AsyncRead + AsyncWrite, +{ + /// Builds a new `CustomProtosHandler`. + pub fn new(protocols: RegisteredProtocols) -> Self { + CustomProtosHandler { + protocols, + state: State::Disabled, + substreams: SmallVec::new(), + events_queue: SmallVec::new(), + } + } + + /// Called by `inject_fully_negotiated_inbound` and `inject_fully_negotiated_outbound`. + fn inject_fully_negotiated( + &mut self, + proto: RegisteredProtocolSubstream, + _: Endpoint, + ) { + match self.state { + State::Disabled | State::ShuttingDown => return, + State::Normal => () + } + + if self.substreams.iter().any(|p| p.protocol_id() == proto.protocol_id()) { + // Skipping protocol that's already open. + return + } + + let event = CustomProtosHandlerOut::CustomProtocolOpen { + protocol_id: proto.protocol_id(), + version: proto.protocol_version(), + }; + + self.substreams.push(proto); + self.events_queue.push(ProtocolsHandlerEvent::Custom(event)); + } +} + +impl ProtocolsHandler for CustomProtosHandler +where + TSubstream: AsyncRead + AsyncWrite, +{ + type InEvent = CustomProtosHandlerIn; + type OutEvent = CustomProtosHandlerOut; + type Substream = TSubstream; + type Error = Void; + type InboundProtocol = RegisteredProtocols; + type OutboundProtocol = RegisteredProtocol; + type OutboundOpenInfo = (); + + #[inline] + fn listen_protocol(&self) -> Self::InboundProtocol { + self.protocols.clone() + } + + fn inject_fully_negotiated_inbound( + &mut self, + proto: >::Output + ) { + self.inject_fully_negotiated(proto, Endpoint::Listener); + } + + #[inline] + fn inject_fully_negotiated_outbound( + &mut self, + proto: >::Output, + _: Self::OutboundOpenInfo + ) { + self.inject_fully_negotiated(proto, Endpoint::Dialer); + } + + fn inject_event(&mut self, message: CustomProtosHandlerIn) { + match message { + CustomProtosHandlerIn::Disable => { + match self.state { + State::Normal => self.state = State::Disabled, + State::Disabled | State::ShuttingDown => (), + } + + for substream in self.substreams.iter_mut() { + substream.shutdown(); + } + }, + CustomProtosHandlerIn::EnableActive | CustomProtosHandlerIn::EnablePassive => { + match self.state { + State::Disabled => self.state = State::Normal, + State::Normal | State::ShuttingDown => (), + } + + // Try open one substream for each registered protocol. + if let CustomProtosHandlerIn::EnableActive = message { + for protocol in self.protocols.0.iter() { + if self.substreams.iter().any(|p| p.protocol_id() == protocol.id()) { + // Skipping protocol that's already open. + continue + } + + self.events_queue.push(ProtocolsHandlerEvent::OutboundSubstreamRequest { + upgrade: protocol.clone(), + info: (), + }); + } + } + }, + CustomProtosHandlerIn::SendCustomMessage { protocol, data } => { + debug_assert!(self.protocols.has_protocol(protocol), + "invalid protocol id requested in the API of the libp2p networking"); + let proto = match self.substreams.iter_mut().find(|p| p.protocol_id() == protocol) { + Some(proto) => proto, + None => { + // We are processing a message event before we could report to the outside + // that we disconnected from the protocol. This is not an error. + trace!(target: "sub-libp2p", "Tried to send message through closed \ + protocol"); + return + }, + }; + + proto.send_message(data); + }, + } + } + + #[inline] + fn inject_inbound_closed(&mut self) {} + + #[inline] + fn inject_dial_upgrade_error(&mut self, _: Self::OutboundOpenInfo, err: ProtocolsHandlerUpgrErr) { + warn!(target: "sub-libp2p", "Error while opening custom protocol: {:?}", err); + } + + #[inline] + fn connection_keep_alive(&self) -> bool { + // Right now if the remote doesn't support one of the custom protocols, we shut down the + // entire connection. This is a hack-ish solution to the problem where we connect to nodes + // that support libp2p but not the testnet that we want. + self.substreams.len() == self.protocols.len() + } + + fn shutdown(&mut self) { + match self.state { + State::Normal | State::Disabled => self.state = State::ShuttingDown, + State::ShuttingDown => (), + } + + for substream in self.substreams.iter_mut() { + substream.shutdown(); + } + } + + fn poll( + &mut self, + ) -> Poll< + ProtocolsHandlerEvent, + Self::Error, + > { + if !self.events_queue.is_empty() { + let event = self.events_queue.remove(0); + return Ok(Async::Ready(event)) + } + + if self.state == State::ShuttingDown && self.substreams.is_empty() { + return Ok(Async::Ready(ProtocolsHandlerEvent::Shutdown)) + } + + for n in (0..self.substreams.len()).rev() { + let mut substream = self.substreams.swap_remove(n); + match substream.poll() { + Ok(Async::Ready(Some(data))) => { + let event = CustomProtosHandlerOut::CustomMessage { + protocol_id: substream.protocol_id(), + data + }; + self.substreams.push(substream); + return Ok(Async::Ready(ProtocolsHandlerEvent::Custom(event))) + }, + Ok(Async::NotReady) => + self.substreams.push(substream), + Ok(Async::Ready(None)) => { + let event = CustomProtosHandlerOut::CustomProtocolClosed { + protocol_id: substream.protocol_id(), + result: Ok(()) + }; + return Ok(Async::Ready(ProtocolsHandlerEvent::Custom(event))) + }, + Err(err) => { + let event = CustomProtosHandlerOut::CustomProtocolClosed { + protocol_id: substream.protocol_id(), + result: Err(err) + }; + return Ok(Async::Ready(ProtocolsHandlerEvent::Custom(event))) + }, + } + } + + Ok(Async::NotReady) + } +} + +impl fmt::Debug for CustomProtosHandler +where + TSubstream: AsyncRead + AsyncWrite, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { + f.debug_struct("CustomProtosHandler") + .field("protocols", &self.protocols.len()) + .field("state", &self.state) + .field("substreams", &self.substreams.len()) + .finish() + } +} diff --git a/core/network-libp2p/src/custom_proto/mod.rs b/core/network-libp2p/src/custom_proto/mod.rs new file mode 100644 index 0000000000..f8b7e8edc5 --- /dev/null +++ b/core/network-libp2p/src/custom_proto/mod.rs @@ -0,0 +1,22 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +pub use self::behaviour::{CustomProtos, CustomProtosOut}; +pub use self::upgrade::{RegisteredProtocol, RegisteredProtocols}; + +mod behaviour; +mod handler; +mod upgrade; diff --git a/core/network-libp2p/src/custom_proto.rs b/core/network-libp2p/src/custom_proto/upgrade.rs similarity index 64% rename from core/network-libp2p/src/custom_proto.rs rename to core/network-libp2p/src/custom_proto/upgrade.rs index fd76581d3e..94bc657902 100644 --- a/core/network-libp2p/src/custom_proto.rs +++ b/core/network-libp2p/src/custom_proto/upgrade.rs @@ -15,10 +15,10 @@ // along with Substrate. If not, see . use bytes::Bytes; -use libp2p::core::{ConnectionUpgrade, Endpoint}; +use libp2p::core::{UpgradeInfo, InboundUpgrade, OutboundUpgrade, upgrade::ProtocolName}; use libp2p::tokio_codec::Framed; use std::{collections::VecDeque, io, vec::IntoIter as VecIntoIter}; -use futures::{prelude::*, future, stream, task}; +use futures::{prelude::*, future, stream}; use tokio_io::{AsyncRead, AsyncWrite}; use unsigned_varint::codec::UviBytes; use ProtocolId; @@ -80,8 +80,6 @@ pub struct RegisteredProtocolSubstream { protocol_id: ProtocolId, /// Version of the protocol that was negotiated. protocol_version: u8, - /// Task to notify when something is changed and we need to be polled. - to_notify: Option, } impl RegisteredProtocolSubstream { @@ -105,9 +103,6 @@ impl RegisteredProtocolSubstream { /// After calling this, the stream is guaranteed to finish soon-ish. pub fn shutdown(&mut self) { self.is_closing = true; - if let Some(task) = self.to_notify.take() { - task.notify(); - } } /// Sends a message to the substream. @@ -119,10 +114,6 @@ impl RegisteredProtocolSubstream { warn!(target: "sub-libp2p", "Queue of packets to send over substream is pretty \ large: {}", self.send_queue.len()); } - - if let Some(task) = self.to_notify.take() { - task.notify(); - } } } @@ -135,7 +126,7 @@ where TSubstream: AsyncRead + AsyncWrite, fn poll(&mut self) -> Poll, Self::Error> { // If we are closing, close as soon as the Sink is closed. if self.is_closing { - return Ok(self.inner.close()?.map(|()| None)); + return Ok(self.inner.close()?.map(|()| None)) } // Flushing the local queue. @@ -143,7 +134,7 @@ where TSubstream: AsyncRead + AsyncWrite, match self.inner.start_send(packet)? { AsyncSink::NotReady(packet) => { self.send_queue.push_front(packet); - break; + break }, AsyncSink::Ready => self.requires_poll_complete = true, } @@ -158,51 +149,64 @@ where TSubstream: AsyncRead + AsyncWrite, // Receiving incoming packets. // Note that `inner` is wrapped in a `Fuse`, therefore we can poll it forever. - loop { - match self.inner.poll()? { - Async::Ready(Some(data)) => - return Ok(Async::Ready(Some(data.freeze()))), - Async::Ready(None) => - if !self.requires_poll_complete && self.send_queue.is_empty() { - return Ok(Async::Ready(None)) - } else { - break - }, - Async::NotReady => break, - } + match self.inner.poll()? { + Async::Ready(Some(data)) => Ok(Async::Ready(Some(data.freeze()))), + Async::Ready(None) => + if !self.requires_poll_complete && self.send_queue.is_empty() { + Ok(Async::Ready(None)) + } else { + Ok(Async::NotReady) + }, + Async::NotReady => Ok(Async::NotReady), } - - self.to_notify = Some(task::current()); - Ok(Async::NotReady) } } -impl ConnectionUpgrade for RegisteredProtocol -where TSubstream: AsyncRead + AsyncWrite, -{ - type NamesIter = VecIntoIter<(Bytes, Self::UpgradeIdentifier)>; - type UpgradeIdentifier = u8; // Protocol version +impl UpgradeInfo for RegisteredProtocol { + type Info = RegisteredProtocolName; + type InfoIter = VecIntoIter; #[inline] - fn protocol_names(&self) -> Self::NamesIter { + fn protocol_info(&self) -> Self::InfoIter { // Report each version as an individual protocol. - self.supported_versions.iter().map(|&ver| { - let num = ver.to_string(); + self.supported_versions.iter().map(|&version| { + let num = version.to_string(); let mut name = self.base_name.clone(); name.extend_from_slice(num.as_bytes()); - (name, ver) + RegisteredProtocolName { + name, + version, + } }).collect::>().into_iter() } +} + +/// Implementation of `ProtocolName` for a custom protocol. +#[derive(Debug, Clone)] +pub struct RegisteredProtocolName { + /// Protocol name, as advertised on the wire. + name: Bytes, + /// Version number. Stored in string form in `name`, but duplicated here for easier retrieval. + version: u8, +} + +impl ProtocolName for RegisteredProtocolName { + fn protocol_name(&self) -> &[u8] { + &self.name + } +} +impl InboundUpgrade for RegisteredProtocol +where TSubstream: AsyncRead + AsyncWrite, +{ type Output = RegisteredProtocolSubstream; type Future = future::FutureResult; + type Error = io::Error; - #[allow(deprecated)] - fn upgrade( + fn upgrade_inbound( self, socket: TSubstream, - protocol_version: Self::UpgradeIdentifier, - _: Endpoint + info: Self::Info, ) -> Self::Future { let framed = Framed::new(socket, UviBytes::default()); @@ -212,12 +216,28 @@ where TSubstream: AsyncRead + AsyncWrite, requires_poll_complete: false, inner: framed.fuse(), protocol_id: self.id, - protocol_version, - to_notify: None, + protocol_version: info.version, }) } } +impl OutboundUpgrade for RegisteredProtocol +where TSubstream: AsyncRead + AsyncWrite, +{ + type Output = >::Output; + type Future = >::Future; + type Error = >::Error; + + fn upgrade_outbound( + self, + socket: TSubstream, + info: Self::Info, + ) -> Self::Future { + // Upgrades are symmetrical. + self.upgrade_inbound(socket, info) + } +} + // Connection upgrade for all the protocols contained in it. #[derive(Clone)] pub struct RegisteredProtocols(pub Vec); @@ -229,12 +249,6 @@ impl RegisteredProtocols { self.0.len() } - /// Finds a protocol in the list by its id. - pub fn find_protocol(&self, protocol: ProtocolId) - -> Option<&RegisteredProtocol> { - self.0.iter().find(|p| p.id == protocol) - } - /// Returns true if the given protocol is in the list. pub fn has_protocol(&self, protocol: ProtocolId) -> bool { self.0.iter().any(|p| p.id == protocol) @@ -247,36 +261,75 @@ impl Default for RegisteredProtocols { } } -impl ConnectionUpgrade for RegisteredProtocols -where TSubstream: AsyncRead + AsyncWrite, -{ - type NamesIter = VecIntoIter<(Bytes, Self::UpgradeIdentifier)>; - type UpgradeIdentifier = (usize, - >::UpgradeIdentifier); +impl UpgradeInfo for RegisteredProtocols { + type Info = RegisteredProtocolsName; + type InfoIter = VecIntoIter; - fn protocol_names(&self) -> Self::NamesIter { + #[inline] + fn protocol_info(&self) -> Self::InfoIter { // We concat the lists of `RegisteredProtocol::protocol_names` for // each protocol. self.0.iter().enumerate().flat_map(|(n, proto)| - ConnectionUpgrade::::protocol_names(proto) - .map(move |(name, id)| (name, (n, id))) + UpgradeInfo::protocol_info(proto) + .map(move |inner| { + RegisteredProtocolsName { + inner, + index: n, + } + }) ).collect::>().into_iter() } +} - type Output = >::Output; - type Future = >::Future; +/// Implementation of `ProtocolName` for several custom protocols. +#[derive(Debug, Clone)] +pub struct RegisteredProtocolsName { + /// Inner registered protocol. + inner: RegisteredProtocolName, + /// Index of the protocol in the list of registered custom protocols. + index: usize, +} + +impl ProtocolName for RegisteredProtocolsName { + fn protocol_name(&self) -> &[u8] { + self.inner.protocol_name() + } +} + +impl InboundUpgrade for RegisteredProtocols +where TSubstream: AsyncRead + AsyncWrite, +{ + type Output = >::Output; + type Future = >::Future; + type Error = io::Error; #[inline] - fn upgrade( + fn upgrade_inbound( self, socket: TSubstream, - upgrade_identifier: Self::UpgradeIdentifier, - endpoint: Endpoint + info: Self::Info, ) -> Self::Future { - let (protocol_index, inner_proto_id) = upgrade_identifier; self.0.into_iter() - .nth(protocol_index) + .nth(info.index) .expect("invalid protocol index ; programmer logic error") - .upgrade(socket, inner_proto_id, endpoint) + .upgrade_inbound(socket, info.inner) + } +} + +impl OutboundUpgrade for RegisteredProtocols +where TSubstream: AsyncRead + AsyncWrite, +{ + type Output = >::Output; + type Future = >::Future; + type Error = >::Error; + + #[inline] + fn upgrade_outbound( + self, + socket: TSubstream, + info: Self::Info, + ) -> Self::Future { + // Upgrades are symmetrical. + self.upgrade_inbound(socket, info) } } diff --git a/core/network-libp2p/src/lib.rs b/core/network-libp2p/src/lib.rs index 6890450763..9fb1bb8a13 100644 --- a/core/network-libp2p/src/lib.rs +++ b/core/network-libp2p/src/lib.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . -//! Substrate libp2p implementation of the ethcore network library +//! Networking layer of Substrate. #![recursion_limit = "128"] @@ -31,6 +31,8 @@ extern crate rand; #[macro_use] extern crate serde_derive; extern crate serde_json; +extern crate smallvec; +extern crate void; extern crate bytes; extern crate unsigned_varint; @@ -41,12 +43,11 @@ extern crate log; #[cfg(test)] #[macro_use] extern crate assert_matches; +mod behaviour; mod custom_proto; mod error; -mod node_handler; mod secret; mod service_task; -mod swarm; mod topology; mod traits; mod transport; diff --git a/core/network-libp2p/src/node_handler.rs b/core/network-libp2p/src/node_handler.rs deleted file mode 100644 index ad1f4b7504..0000000000 --- a/core/network-libp2p/src/node_handler.rs +++ /dev/null @@ -1,863 +0,0 @@ -// Copyright 2018 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use bytes::Bytes; -use custom_proto::{RegisteredProtocols, RegisteredProtocolSubstream}; -use futures::{prelude::*, task}; -use libp2p::core::{ConnectionUpgrade, Endpoint, PeerId, PublicKey, upgrade}; -use libp2p::core::nodes::handled_node::{NodeHandler, NodeHandlerEndpoint, NodeHandlerEvent}; -use libp2p::kad::{KadConnecConfig, KadFindNodeRespond, KadIncomingRequest, KadConnecController}; -use libp2p::{identify, ping}; -use parking_lot::Mutex; -use std::io::{Error as IoError, ErrorKind as IoErrorKind}; -use std::sync::Arc; -use std::time::{Duration, Instant}; -use tokio_io::{AsyncRead, AsyncWrite}; -use tokio_timer::{Delay, Interval}; -use {Multiaddr, ProtocolId}; - -/// Duration after which we consider that a ping failed. -const PING_TIMEOUT: Duration = Duration::from_secs(30); -/// After a ping succeeded, wait this long before the next ping. -const DELAY_TO_NEXT_PING: Duration = Duration::from_secs(15); -/// Period at which we identify the remote. -const PERIOD_IDENTIFY: Duration = Duration::from_secs(5 * 60); -/// Delay between the moment we connect and the first time we ping. -const DELAY_TO_FIRST_PING: Duration = Duration::from_secs(5); -/// Delay between the moment we connect and the first time we identify. -const DELAY_TO_FIRST_IDENTIFY: Duration = Duration::from_secs(2); - -/// This struct handles the open substreams of a specific node. -/// -/// It doesn't handle opening the substreams, but only what to do with substreams that have been -/// opened. -/// -/// The node will be pinged at a regular interval to determine whether it's still alive. We will -/// also regularly query the remote for identification information, for statistics purposes. -pub struct SubstrateNodeHandler { - /// List of registered custom protocols. - registered_custom: Arc, - /// Substreams open for "custom" protocols (eg. dot). - custom_protocols_substreams: Vec>, - - /// Substream open for Kademlia, if any. - kademlia_substream: Option<(KadConnecController, Box + Send>)>, - /// If true, we need to send back a `KadOpen` event on the stream (if Kademlia is open). - need_report_kad_open: bool, - - /// Substream open for sending pings, if any. - ping_out_substream: Option>, - /// Active pinging attempt with the moment it expires. - active_ping_out: Option, - /// Substreams open for receiving pings. - ping_in_substreams: Vec>, - /// Future that fires when we need to ping the node again. - /// - /// Every time we receive a pong, we reset the timer to the next time. - next_ping: Delay, - - /// Substreams for sending back our identify info to the remote. - /// - /// This is in an `Arc` in order to avoid borrowing issues with the future. - identify_send_back: Arc + Send>>>>, - /// Stream that fires when we need to identify the node again. - next_identify: Interval, - - /// Substreams being upgraded on the listening side. - upgrades_in_progress_listen: Vec, Error = IoError> + Send>>, - /// Substreams being upgraded on the dialing side. Contrary to `upgrades_in_progress_listen`, - /// these have a known purpose. - upgrades_in_progress_dial: Vec<(UpgradePurpose, Box, Error = IoError> + Send>)>, - /// The substreams we want to open. - queued_dial_upgrades: Vec, - /// Number of outbound substreams the outside should open for us. - num_out_user_must_open: usize, - - /// The node has started its shutdown process. - is_shutting_down: bool, - - /// Task to notify if we add an element to one of the lists from the public API. - to_notify: Option, -} - -/// Purpose of an upgrade in progress on the dialing side. -#[derive(Debug, Copy, Clone, PartialEq, Eq)] -enum UpgradePurpose { - Custom(ProtocolId), - Kad, - Identify, - Ping, -} - -/// Event that can happen on the `SubstrateNodeHandler`. -pub enum SubstrateOutEvent { - /// The node has been determined to be unresponsive. - Unresponsive, - - /// The node works but we can't do anything useful with it. - Useless, - - /// Started pinging the remote. This can be used to print a diagnostic message in the logs. - PingStart, - - /// The node has successfully responded to a ping. - PingSuccess(Duration), - - /// Opened a custom protocol with the remote. - CustomProtocolOpen { - /// Identifier of the protocol. - protocol_id: ProtocolId, - /// Version of the protocol that has been opened. - version: u8, - }, - - /// Closed a custom protocol with the remote. - CustomProtocolClosed { - /// Identifier of the protocol. - protocol_id: ProtocolId, - /// Reason why the substream closed. If `Ok`, then it's a graceful exit (EOF). - result: Result<(), IoError>, - }, - - /// Receives a message on a custom protocol substream. - CustomMessage { - /// Protocol which generated the message. - protocol_id: ProtocolId, - /// Data that has been received. - data: Bytes, - }, - - /// We obtained identification information from the remote - Identified { - /// Information of the remote. - info: identify::IdentifyInfo, - /// Address the remote observes us as. - observed_addr: Multiaddr, - }, - - /// The remote wants us to send back identification information. - /// - /// The `IdentificationRequest` object should be used to send the information. - IdentificationRequest(IdentificationRequest), - - /// Opened a Kademlia substream with the node. - KadOpen(KadConnecController), - - /// The remote wants us to answer a Kademlia `FIND_NODE` request. - /// - /// The `responder` should be used to answer that query. - // TODO: this API with the "responder" is bad, but changing it requires modifications in libp2p - KadFindNode { - /// The value being searched. - searched: PeerId, - /// Object to use to respond to the request. - responder: KadFindNodeRespond, - }, - - /// The Kademlia substream has been closed. - /// - /// The parameter contains the reason why it has been closed. `Ok` means that it's been closed - /// gracefully. - KadClosed(Result<(), IoError>), - - /// An error happened while upgrading a substream. - /// - /// This can be used to print a diagnostic message. - SubstreamUpgradeFail(IoError), -} - -/// The remote wants us to send back information. -pub struct IdentificationRequest { - /// Where to store the future that sends back the information. - identify_send_back: Arc + Send>>>>, - /// Object that sends back the information. - sender: identify::IdentifySender, - /// Protocol names that we support, to send back. - protocols: Vec, -} - -impl IdentificationRequest { - /// Responds to the request. - /// - /// - `local_key` must contain our local public key. - /// - `listen_addrs` must contain the list of addresses we're listening on (preferably after - /// NAT traversal). - /// - `remote_addr` must be the address of the remote from our local point of view. - /// - pub fn respond( - self, - local_key: PublicKey, - listen_addrs: Vec, - remote_addr: &Multiaddr - ) where TSubstream: AsyncRead + AsyncWrite + Send + 'static { - // TODO: what to return for `protocol_version` and `agent_version`? - let sender = self.sender.send( - identify::IdentifyInfo { - public_key: local_key, - protocol_version: concat!("substrate/", env!("CARGO_PKG_VERSION")).to_owned(), - agent_version: concat!("substrate/", env!("CARGO_PKG_VERSION")).to_owned(), - listen_addrs, - protocols: self.protocols, - }, - remote_addr - ); - - self.identify_send_back.lock().push(sender); - } -} - -/// Event that can be received by a `SubstrateNodeHandler`. -#[derive(Debug, Clone)] -pub enum SubstrateInEvent { - /// Before anything happens on the node, we wait for an `Accept` event. This is used to deny - /// nodes based on their peer ID. - Accept, - - /// Sends a message through a custom protocol substream. - SendCustomMessage { - protocol: ProtocolId, - data: Vec, - }, - - /// Requests to open a Kademlia substream. - // TODO: document better - OpenKademlia, -} - -/// Ideally we would have a method on `SubstrateNodeHandler` that builds this type, but in practice it's a -/// bit tedious to express, even with the `impl Trait` syntax. -/// Therefore we simply use a macro instead. -macro_rules! listener_upgrade { - ($self:expr) => ( - upgrade::or(upgrade::or(upgrade::or( - upgrade::map((*$self.registered_custom).clone(), move |c| FinalUpgrade::Custom(c)), - upgrade::map(KadConnecConfig::new(), move |(c, s)| FinalUpgrade::Kad(c, s))), - upgrade::map(ping::protocol::Ping::default(), move |p| FinalUpgrade::from(p))), - upgrade::map(identify::IdentifyProtocolConfig, move |i| FinalUpgrade::from(i))) - // TODO: meh for cloning a Vec here - ) -} - -impl SubstrateNodeHandler -where TSubstream: AsyncRead + AsyncWrite + Send + 'static, -{ - /// Creates a new node handler. - #[inline] - pub fn new(registered_custom: Arc) -> Self { - let registered_custom_len = registered_custom.len(); - let queued_dial_upgrades = registered_custom.0 - .iter() - .map(|proto| UpgradePurpose::Custom(proto.id())) - .collect(); - - SubstrateNodeHandler { - custom_protocols_substreams: Vec::with_capacity(registered_custom_len), - kademlia_substream: None, - need_report_kad_open: false, - identify_send_back: Arc::new(Mutex::new(Vec::with_capacity(1))), - ping_in_substreams: Vec::with_capacity(1), - ping_out_substream: None, - active_ping_out: None, - registered_custom, - upgrades_in_progress_listen: Vec::with_capacity(registered_custom_len + 3), - upgrades_in_progress_dial: Vec::with_capacity(registered_custom_len + 3), - next_ping: Delay::new(Instant::now() + DELAY_TO_FIRST_PING), - next_identify: Interval::new(Instant::now() + DELAY_TO_FIRST_IDENTIFY, PERIOD_IDENTIFY), - queued_dial_upgrades, - num_out_user_must_open: registered_custom_len, - is_shutting_down: false, - to_notify: None, - } - } -} - -impl NodeHandler for SubstrateNodeHandler -where TSubstream: AsyncRead + AsyncWrite + Send + 'static, -{ - type InEvent = SubstrateInEvent; - type OutEvent = SubstrateOutEvent; - type OutboundOpenInfo = (); - type Substream = TSubstream; - - fn inject_substream(&mut self, substream: TSubstream, endpoint: NodeHandlerEndpoint) { - // For listeners, propose all the possible upgrades. - if endpoint == NodeHandlerEndpoint::Listener { - let listener_upgrade = listener_upgrade!(self); - let upgrade = upgrade::apply(substream, listener_upgrade, Endpoint::Listener); - self.upgrades_in_progress_listen.push(Box::new(upgrade) as Box<_>); - // Since we pushed to `upgrades_in_progress_listen`, we have to notify the task. - if let Some(task) = self.to_notify.take() { - task.notify(); - } - return; - } - - // If we're the dialer, we have to decide which upgrade we want. - let purpose = if self.queued_dial_upgrades.is_empty() { - // Since we sometimes remove elements from `queued_dial_upgrades` before they succeed - // but after the outbound substream has started opening, it is possible that the queue - // is empty when we receive a substream. This is not an error. - // Example: we want to open a Kademlia substream, we start opening one, but in the - // meanwhile the remote opens a Kademlia substream. When we receive the new substream, - // we don't need it anymore. - return; - } else { - self.queued_dial_upgrades.remove(0) - }; - - match purpose { - UpgradePurpose::Custom(id) => { - let wanted = if let Some(proto) = self.registered_custom.find_protocol(id) { - // TODO: meh for cloning - upgrade::map(proto.clone(), move |c| FinalUpgrade::Custom(c)) - } else { - error!(target: "sub-libp2p", "Logic error: wrong custom protocol id for \ - opened substream"); - return; - }; - - let upgrade = upgrade::apply(substream, wanted, Endpoint::Dialer); - self.upgrades_in_progress_dial.push((purpose, Box::new(upgrade) as Box<_>)); - } - UpgradePurpose::Kad => { - let wanted = upgrade::map(KadConnecConfig::new(), move |(c, s)| FinalUpgrade::Kad(c, s)); - let upgrade = upgrade::apply(substream, wanted, Endpoint::Dialer); - self.upgrades_in_progress_dial.push((purpose, Box::new(upgrade) as Box<_>)); - } - UpgradePurpose::Identify => { - let wanted = upgrade::map(identify::IdentifyProtocolConfig, move |i| FinalUpgrade::from(i)); - let upgrade = upgrade::apply(substream, wanted, Endpoint::Dialer); - self.upgrades_in_progress_dial.push((purpose, Box::new(upgrade) as Box<_>)); - } - UpgradePurpose::Ping => { - let wanted = upgrade::map(ping::protocol::Ping::default(), move |p| FinalUpgrade::from(p)); - let upgrade = upgrade::apply(substream, wanted, Endpoint::Dialer); - self.upgrades_in_progress_dial.push((purpose, Box::new(upgrade) as Box<_>)); - } - }; - - // Since we pushed to `upgrades_in_progress_dial`, we have to notify the task. - if let Some(task) = self.to_notify.take() { - task.notify(); - } - } - - #[inline] - fn inject_inbound_closed(&mut self) { - } - - #[inline] - fn inject_outbound_closed(&mut self, _: Self::OutboundOpenInfo) { - } - - fn inject_event(&mut self, event: Self::InEvent) { - match event { - SubstrateInEvent::SendCustomMessage { protocol, data } => { - self.send_custom_message(protocol, data); - }, - SubstrateInEvent::OpenKademlia => self.open_kademlia(), - SubstrateInEvent::Accept => { - // TODO: implement - }, - } - } - - fn shutdown(&mut self) { - // TODO: close gracefully - self.is_shutting_down = true; - - for custom_proto in &mut self.custom_protocols_substreams { - custom_proto.shutdown(); - } - - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - } - - fn poll(&mut self) -> Poll>, IoError> { - if self.is_shutting_down { - // TODO: finish only when everything is closed - return Ok(Async::Ready(None)); - } - - match self.poll_upgrades_in_progress()? { - Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), - Async::NotReady => (), - }; - - match self.poll_custom_protocols()? { - Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), - Async::NotReady => (), - }; - - match self.poll_kademlia()? { - Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), - Async::NotReady => (), - }; - - match self.poll_ping()? { - Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), - Async::NotReady => (), - }; - - match self.poll_identify()? { - Async::Ready(value) => return Ok(Async::Ready(value.map(NodeHandlerEvent::Custom))), - Async::NotReady => (), - }; - - // Request new outbound substreams from the user if necessary. - if self.num_out_user_must_open >= 1 { - self.num_out_user_must_open -= 1; - return Ok(Async::Ready(Some(NodeHandlerEvent::OutboundSubstreamRequest(())))); - } - - // Nothing happened. Register our task to be notified and return. - self.to_notify = Some(task::current()); - Ok(Async::NotReady) - } -} - -impl SubstrateNodeHandler -where TSubstream: AsyncRead + AsyncWrite + Send + 'static, -{ - /// Sends a message on a custom protocol substream. - fn send_custom_message( - &mut self, - protocol: ProtocolId, - data: Vec, - ) { - debug_assert!(self.registered_custom.has_protocol(protocol), - "invalid protocol id requested in the API of the libp2p networking"); - let proto = match self.custom_protocols_substreams.iter_mut().find(|p| p.protocol_id() == protocol) { - Some(proto) => proto, - None => { - // We are processing a message event before we could report to the outside that - // we disconnected from the protocol. This is not an error. - return - }, - }; - - proto.send_message(data.into()); - } - - /// The node will try to open a Kademlia substream and produce a `KadOpen` event containing the - /// controller. If a Kademlia substream is already open, produces the event immediately. - fn open_kademlia(&mut self) { - if self.kademlia_substream.is_some() { - self.need_report_kad_open = true; - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - } else if self.has_upgrade_purpose(&UpgradePurpose::Kad) { - // We are currently upgrading a substream to Kademlia ; nothing more to do except wait. - } else { - // Opening a new substream for Kademlia. - self.queued_dial_upgrades.push(UpgradePurpose::Kad); - self.num_out_user_must_open += 1; - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - } - } - - /// Returns true if we are currently upgrading to the given protocol. - fn has_upgrade_purpose(&self, purpose: &UpgradePurpose) -> bool { - self.upgrades_in_progress_dial.iter().any(|&(ref p, _)| p == purpose) || - self.queued_dial_upgrades.iter().any(|p| p == purpose) - } - - /// Cancels a dialing upgrade in progress. - /// - /// Useful when the listener opened the protocol we wanted. - fn cancel_dial_upgrade(&mut self, purpose: &UpgradePurpose) { - self.upgrades_in_progress_dial.retain(|&(purp, _)| &purp != purpose); - self.queued_dial_upgrades.retain(|u| u != purpose); - } - - /// Returns the names of the protocols that we supporitt. - fn supported_protocol_names(&self) -> Vec { - let list = listener_upgrade!(self); - ConnectionUpgrade::::protocol_names(&list) - .filter_map(|(n, _)| String::from_utf8(n.to_vec()).ok()) - .collect() - } - - /// Inject a fully negotiated substream into the state. - /// - /// Optionally produces an event to dispatch. - fn inject_fully_negotiated( - &mut self, - upgrade: FinalUpgrade - ) -> Option> { - match upgrade { - FinalUpgrade::IdentifyListener(sender) => - Some(SubstrateOutEvent::IdentificationRequest(IdentificationRequest { - sender, - identify_send_back: self.identify_send_back.clone(), - protocols: self.supported_protocol_names(), - })), - FinalUpgrade::IdentifyDialer(info, observed_addr) => { - self.cancel_dial_upgrade(&UpgradePurpose::Identify); - Some(SubstrateOutEvent::Identified { info, observed_addr }) - }, - FinalUpgrade::PingDialer(ping_dialer) => { - self.cancel_dial_upgrade(&UpgradePurpose::Ping); - // We always open the ping substream for a reason, which is to immediately ping. - self.ping_out_substream = Some(ping_dialer); - self.active_ping_out = None; - if self.ping_remote() { - Some(SubstrateOutEvent::PingStart) - } else { - None - } - }, - FinalUpgrade::PingListener(ping_listener) => { - self.ping_in_substreams.push(ping_listener); - None - }, - FinalUpgrade::Kad(controller, stream) => { - // Remove all upgrades in the progress for Kademlia. - self.cancel_dial_upgrade(&UpgradePurpose::Kad); - // Refuse the substream if we already have Kademlia substream open. - if self.kademlia_substream.is_none() { - self.kademlia_substream = Some((controller.clone(), stream)); - Some(SubstrateOutEvent::KadOpen(controller)) - } else { - None - } - }, - FinalUpgrade::Custom(proto) => { - self.cancel_dial_upgrade(&UpgradePurpose::Custom(proto.protocol_id())); - if self.custom_protocols_substreams.iter().any(|p| p.protocol_id() == proto.protocol_id()) { - // Skipping protocol that's already open. - return None; - } - - let event = SubstrateOutEvent::CustomProtocolOpen { - protocol_id: proto.protocol_id(), - version: proto.protocol_version(), - }; - - self.custom_protocols_substreams.push(proto); - Some(event) - }, - } - } - - /// Start the process of identifying the remote. - fn identify_remote(&mut self) { - if !self.has_upgrade_purpose(&UpgradePurpose::Identify) { - self.queued_dial_upgrades.push(UpgradePurpose::Identify); - self.num_out_user_must_open += 1; - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - } - } - - /// Start the process of pinging the remote. - /// - /// Doesn't do anything if a ping attempt is already in progress. - /// - /// Returns true if this actually starts a ping, false is this just opens a substream or does - /// nothing. - fn ping_remote(&mut self) -> bool { - // Ignore if we are already actively pinging. - if self.active_ping_out.is_some() { - return false; - } - - // If we have a ping open, ping it! - if let Some(ref mut pinger) = self.ping_out_substream { - let now = Instant::now(); - pinger.ping(now); - let future = Delay::new(now + PING_TIMEOUT); - self.active_ping_out = Some(future); - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - return true; - } - - // Otherwise, ensure we have an upgrade for a ping substream in queue. - if !self.has_upgrade_purpose(&UpgradePurpose::Ping) { - self.queued_dial_upgrades.push(UpgradePurpose::Ping); - self.num_out_user_must_open += 1; - // We also start the unresponsiveness counter when opening the substream, as a - // peer may not respond to our opening request. - let future = Delay::new(Instant::now() + PING_TIMEOUT); - self.active_ping_out = Some(future); - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - } - - false - } - - /// Polls the upgrades in progress. - fn poll_upgrades_in_progress(&mut self) -> Poll>, IoError> { - // Continue negotiation of newly-opened substreams on the listening side. - // We remove each element from `upgrades_in_progress_listen` one by one and add them back - // if not ready. - for n in (0 .. self.upgrades_in_progress_listen.len()).rev() { - let mut in_progress = self.upgrades_in_progress_listen.swap_remove(n); - match in_progress.poll() { - Ok(Async::Ready(upgrade)) => { - if let Some(event) = self.inject_fully_negotiated(upgrade) { - return Ok(Async::Ready(Some(event))); - } - }, - Ok(Async::NotReady) => { - self.upgrades_in_progress_listen.push(in_progress); - }, - Err(err) => { - return Ok(Async::Ready(Some(SubstrateOutEvent::SubstreamUpgradeFail(err)))); - }, - } - } - - // Continue negotiation of newly-opened substreams. - // We remove each element from `upgrades_in_progress_dial` one by one and add them back if - // not ready. - for n in (0 .. self.upgrades_in_progress_dial.len()).rev() { - let (purpose, mut in_progress) = self.upgrades_in_progress_dial.swap_remove(n); - match in_progress.poll() { - Ok(Async::Ready(upgrade)) => { - if let Some(event) = self.inject_fully_negotiated(upgrade) { - return Ok(Async::Ready(Some(event))); - } - }, - Ok(Async::NotReady) => - self.upgrades_in_progress_dial.push((purpose, in_progress)), - Err(err) => { - // TODO: dispatch depending on actual error ; right now we assume that - // error == not supported, which is not necessarily true in theory - if let UpgradePurpose::Custom(_) = purpose { - return Ok(Async::Ready(Some(SubstrateOutEvent::Useless))); - } else { - let msg = format!("While upgrading to {:?}: {:?}", purpose, err); - let err = IoError::new(IoErrorKind::Other, msg); - return Ok(Async::Ready(Some(SubstrateOutEvent::SubstreamUpgradeFail(err)))); - } - }, - } - } - - Ok(Async::NotReady) - } - - /// Polls the upgrades in progress. - fn poll_custom_protocols(&mut self) -> Poll>, IoError> { - // Poll for messages on the custom protocol stream. - for n in (0 .. self.custom_protocols_substreams.len()).rev() { - let mut custom_proto = self.custom_protocols_substreams.swap_remove(n); - match custom_proto.poll() { - Ok(Async::NotReady) => self.custom_protocols_substreams.push(custom_proto), - Ok(Async::Ready(Some(data))) => { - let protocol_id = custom_proto.protocol_id(); - self.custom_protocols_substreams.push(custom_proto); - return Ok(Async::Ready(Some(SubstrateOutEvent::CustomMessage { - protocol_id, - data, - }))); - }, - Ok(Async::Ready(None)) => { - // Trying to reopen the protocol. - self.queued_dial_upgrades.push(UpgradePurpose::Custom(custom_proto.protocol_id())); - self.num_out_user_must_open += 1; - return Ok(Async::Ready(Some(SubstrateOutEvent::CustomProtocolClosed { - protocol_id: custom_proto.protocol_id(), - result: Ok(()), - }))) - }, - Err(err) => { - // Trying to reopen the protocol. - self.queued_dial_upgrades.push(UpgradePurpose::Custom(custom_proto.protocol_id())); - self.num_out_user_must_open += 1; - return Ok(Async::Ready(Some(SubstrateOutEvent::CustomProtocolClosed { - protocol_id: custom_proto.protocol_id(), - result: Err(err), - }))) - }, - } - } - - Ok(Async::NotReady) - } - - /// Polls the open Kademlia substream, if any. - fn poll_kademlia(&mut self) -> Poll>, IoError> { - // Produce a `KadOpen` event if necessary. - if self.need_report_kad_open { - self.need_report_kad_open = false; - if let Some((ref kad_ctrl, _)) = self.kademlia_substream { - return Ok(Async::Ready(Some(SubstrateOutEvent::KadOpen(kad_ctrl.clone())))); - } - } - - // Poll for Kademlia events. - if let Some((controller, mut stream)) = self.kademlia_substream.take() { - loop { - match stream.poll() { - Ok(Async::Ready(Some(KadIncomingRequest::FindNode { searched, responder }))) => { - self.kademlia_substream = Some((controller, stream)); - return Ok(Async::Ready(Some(SubstrateOutEvent::KadFindNode { searched, responder }))); - }, - // We don't care about Kademlia pings, they are unused. - Ok(Async::Ready(Some(KadIncomingRequest::PingPong))) => {}, - // Other Kademlia messages are unimplemented. - Ok(Async::Ready(Some(KadIncomingRequest::GetProviders { .. }))) => {}, - Ok(Async::Ready(Some(KadIncomingRequest::AddProvider { .. }))) => {}, - Ok(Async::NotReady) => { - self.kademlia_substream = Some((controller, stream)); - break; - }, - Ok(Async::Ready(None)) => return Ok(Async::Ready(Some(SubstrateOutEvent::KadClosed(Ok(()))))), - Err(err) => return Ok(Async::Ready(Some(SubstrateOutEvent::KadClosed(Err(err))))), - } - } - } - - Ok(Async::NotReady) - } - - /// Polls the ping substreams. - fn poll_ping(&mut self) -> Poll>, IoError> { - // Poll the future that fires when we need to ping the node again. - match self.next_ping.poll() { - Ok(Async::NotReady) => {}, - Ok(Async::Ready(())) => { - // We reset `next_ping` to a very long time in the future so that we can poll - // it again without having an accident. - self.next_ping.reset(Instant::now() + Duration::from_secs(5 * 60)); - if self.ping_remote() { - return Ok(Async::Ready(Some(SubstrateOutEvent::PingStart))); - } - }, - Err(err) => { - warn!(target: "sub-libp2p", "Ping timer errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); - } - } - - // Poll for answering pings. - for n in (0 .. self.ping_in_substreams.len()).rev() { - let mut ping = self.ping_in_substreams.swap_remove(n); - match ping.poll() { - Ok(Async::Ready(())) => {}, - Ok(Async::NotReady) => self.ping_in_substreams.push(ping), - Err(err) => warn!(target: "sub-libp2p", "Remote ping substream errored: {:?}", err), - } - } - - // Poll the ping substream. - if let Some(mut ping_dialer) = self.ping_out_substream.take() { - match ping_dialer.poll() { - Ok(Async::Ready(Some(started))) => { - self.active_ping_out = None; - self.next_ping.reset(Instant::now() + DELAY_TO_NEXT_PING); - return Ok(Async::Ready(Some(SubstrateOutEvent::PingSuccess(started.elapsed())))); - }, - Ok(Async::Ready(None)) => { - // Try re-open ping if it got closed. - self.queued_dial_upgrades.push(UpgradePurpose::Ping); - self.num_out_user_must_open += 1; - }, - Ok(Async::NotReady) => self.ping_out_substream = Some(ping_dialer), - Err(_) => {}, - } - } - - // Poll the active ping attempt. - if let Some(mut deadline) = self.active_ping_out.take() { - match deadline.poll() { - Ok(Async::Ready(())) => - return Ok(Async::Ready(Some(SubstrateOutEvent::Unresponsive))), - Ok(Async::NotReady) => self.active_ping_out = Some(deadline), - Err(err) => { - warn!(target: "sub-libp2p", "Active ping deadline errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); - }, - } - } - - Ok(Async::NotReady) - } - - /// Polls the identify substreams. - fn poll_identify(&mut self) -> Poll>, IoError> { - // Poll the future that fires when we need to identify the node again. - loop { - match self.next_identify.poll() { - Ok(Async::NotReady) => break, - Ok(Async::Ready(Some(_))) => self.identify_remote(), - Ok(Async::Ready(None)) => { - warn!(target: "sub-libp2p", "Identify timer closed unexpectedly"); - return Ok(Async::Ready(None)); - } - Err(err) => { - warn!(target: "sub-libp2p", "Identify timer errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); - } - } - } - - // Poll for sending identify information to the remote. - let mut identify_send_back = self.identify_send_back.lock(); - for n in (0 .. identify_send_back.len()).rev() { - let mut id_send_back = identify_send_back.swap_remove(n); - match id_send_back.poll() { - Ok(Async::Ready(())) => {}, - Ok(Async::NotReady) => identify_send_back.push(id_send_back), - Err(err) => warn!(target: "sub-libp2p", "Sending back identify info errored: {:?}", err), - } - } - - Ok(Async::NotReady) - } -} - -/// Enum of all the possible protocols our service handles. -enum FinalUpgrade { - Kad(KadConnecController, Box + Send>), - IdentifyListener(identify::IdentifySender), - IdentifyDialer(identify::IdentifyInfo, Multiaddr), - PingDialer(ping::protocol::PingDialer), - PingListener(ping::protocol::PingListener), - Custom(RegisteredProtocolSubstream), -} - -impl From> for FinalUpgrade { - fn from(out: ping::protocol::PingOutput) -> Self { - match out { - ping::protocol::PingOutput::Ponger(ponger) => FinalUpgrade::PingListener(ponger), - ping::protocol::PingOutput::Pinger(pinger) => FinalUpgrade::PingDialer(pinger), - } - } -} - -impl From> for FinalUpgrade { - fn from(out: identify::IdentifyOutput) -> Self { - match out { - identify::IdentifyOutput::RemoteInfo { info, observed_addr } => - FinalUpgrade::IdentifyDialer(info, observed_addr), - identify::IdentifyOutput::Sender { sender } => - FinalUpgrade::IdentifyListener(sender), - } - } -} diff --git a/core/network-libp2p/src/service_task.rs b/core/network-libp2p/src/service_task.rs index 5fd03caa4b..0a6b094408 100644 --- a/core/network-libp2p/src/service_task.rs +++ b/core/network-libp2p/src/service_task.rs @@ -14,36 +14,26 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . +use crate::{behaviour::Behaviour, custom_proto::CustomProtosOut, secret::obtain_private_key, transport}; use bytes::Bytes; use custom_proto::{RegisteredProtocol, RegisteredProtocols}; -use fnv::{FnvHashMap, FnvHashSet}; -use futures::{prelude::*, task, Stream}; -use futures::sync::{oneshot, mpsc}; +use fnv::FnvHashMap; +use futures::{prelude::*, Stream}; use libp2p::{Multiaddr, PeerId}; -use libp2p::core::{Endpoint, PublicKey}; +use libp2p::core::{Swarm, nodes::Substream, transport::boxed::Boxed, muxing::StreamMuxerBox}; use libp2p::core::nodes::ConnectedPoint; -use libp2p::kad::{KadSystem, KadSystemConfig, KadConnecController, KadPeer}; -use libp2p::kad::{KadConnectionType, KadQueryEvent}; -use parking_lot::Mutex; -use rand; -use secret::obtain_private_key; +use std::collections::hash_map::Entry; use std::fs; use std::io::{Error as IoError, ErrorKind as IoErrorKind}; -use std::iter; use std::net::SocketAddr; use std::path::Path; -use std::sync::Arc; -use std::time::{Duration, Instant}; -use swarm::{self, Swarm, SwarmEvent}; -use topology::{DisconnectReason, NetTopology}; -use tokio_timer::{Delay, Interval}; -use {Error, ErrorKind, NetworkConfiguration, NodeIndex, parse_str_addr}; -use {NonReservedPeerMode, ProtocolId}; +use std::time::Duration; +use topology::NetTopology; +use tokio_timer::Interval; +use {Error, NetworkConfiguration, NodeIndex, ProtocolId, parse_str_addr}; // File where the network topology is stored. const NODES_FILE: &str = "nodes.json"; -// Duration during which a peer is disabled. -const PEER_DISABLE_DURATION: Duration = Duration::from_secs(5 * 60); /// Starts the substrate libp2p service. /// @@ -55,7 +45,7 @@ pub fn start_service( where TProtos: IntoIterator { if let Some(ref path) = config.net_config_path { - fs::create_dir_all(Path::new(path))?; + fs::create_dir_all(Path::new(path))?; } // Private and public keys configuration. @@ -63,133 +53,90 @@ where TProtos: IntoIterator { let local_public_key = local_private_key.to_public_key(); let local_peer_id = local_public_key.clone().into_peer_id(); - // Build the swarm. - let registered_custom = RegisteredProtocols(registered_custom.into_iter().collect()); - let mut swarm = swarm::start_swarm(registered_custom, local_private_key)?; - - // Listen on multiaddresses. - for addr in &config.listen_addresses { - match swarm.listen_on(addr.clone()) { - Ok(new_addr) => debug!(target: "sub-libp2p", "Libp2p listening on {}", new_addr), - Err(_) => { - warn!(target: "sub-libp2p", "Can't listen on {}, protocol not supported", addr); - return Err(ErrorKind::BadProtocol.into()) - }, - } - } - - // Register the external addresses provided by the user. - for addr in &config.public_addresses { - swarm.add_external_address(addr.clone()); - } - // Initialize the topology of the network. let mut topology = if let Some(ref path) = config.net_config_path { let path = Path::new(path).join(NODES_FILE); debug!(target: "sub-libp2p", "Initializing peer store for JSON file {:?}", path); - NetTopology::from_file(path) + NetTopology::from_file(local_public_key, path) } else { debug!(target: "sub-libp2p", "No peers file configured ; peers won't be saved"); - NetTopology::memory() + NetTopology::memory(local_public_key) }; - // Create the Kademlia system, containing the kbuckets. - let kad_system = KadSystem::without_init(KadSystemConfig { - parallelism: 3, - local_peer_id, - kbuckets_timeout: Duration::from_secs(600), - request_timeout: Duration::from_secs(10), - known_initial_peers: iter::empty(), - }); + // Register the external addresses provided by the user as our own. + topology.add_external_addrs(config.public_addresses.clone().into_iter()); + + // Build the swarm. + let mut swarm = { + let registered_custom = RegisteredProtocols(registered_custom.into_iter().collect()); + let behaviour = Behaviour::new(&config, local_peer_id.clone(), registered_custom); + let transport = transport::build_transport(local_private_key); + Swarm::new(transport, behaviour, topology) + }; + + // Listen on multiaddresses. + for addr in &config.listen_addresses { + match Swarm::listen_on(&mut swarm, addr.clone()) { + Ok(new_addr) => debug!(target: "sub-libp2p", "Libp2p listening on {}", new_addr), + Err(err) => warn!(target: "sub-libp2p", "Can't listen on {} because: {:?}", addr, err) + } + } // Add the bootstrap nodes to the topology and connect to them. for bootnode in config.boot_nodes.iter() { match parse_str_addr(bootnode) { Ok((peer_id, addr)) => { - topology.add_bootstrap_addr(&peer_id, addr.clone()); - kad_system.update_kbuckets(peer_id.clone()); - if let Err(_) = swarm.ensure_connection(peer_id, addr) { - warn!(target: "sub-libp2p", "Failed to dial boot node: {}", bootnode); - } + Swarm::topology_mut(&mut swarm).add_bootstrap_addr(&peer_id, addr.clone()); + Swarm::dial(&mut swarm, peer_id); }, Err(_) => { // If the format of the bootstrap node is not a multiaddr, try to parse it as // a `SocketAddr`. This corresponds to the format `IP:PORT`. - let addr = match bootnode.parse::() { + let addr = match bootnode.parse::() { Ok(SocketAddr::V4(socket)) => multiaddr![Ip4(*socket.ip()), Tcp(socket.port())], Ok(SocketAddr::V6(socket)) => multiaddr![Ip6(*socket.ip()), Tcp(socket.port())], _ => { warn!(target: "sub-libp2p", "Not a valid bootnode address: {}", bootnode); - continue; + continue } }; - debug!(target: "sub-libp2p", "Dialing {} with no peer id", addr); - if let Err(addr) = swarm.dial(addr) { - warn!(target: "sub-libp2p", "Bootstrap address not supported: {}", addr); + info!(target: "sub-libp2p", "Dialing {} with no peer id. Keep in mind that doing \ + so is vulnerable to man-in-the-middle attacks.", addr); + if let Err(addr) = Swarm::dial_addr(&mut swarm, addr) { + warn!(target: "sub-libp2p", "Bootstrap address not supported: {}", addr) } }, } } // Initialize the reserved peers. - let mut reserved_peers = FnvHashSet::default(); for reserved in config.reserved_nodes.iter() { - match parse_str_addr(reserved) { - Ok((peer_id, addr)) => { - reserved_peers.insert(peer_id.clone()); - topology.add_bootstrap_addr(&peer_id, addr.clone()); - if let Err(_) = swarm.ensure_connection(peer_id, addr) { - warn!(target: "sub-libp2p", "Failed to dial reserved node: {}", reserved); - } - }, - Err(_) => - // TODO: also handle the `IP:PORT` format ; however we need to somehow add the - // reserved ID to `reserved_peers` at some point - warn!(target: "sub-libp2p", "Not a valid reserved node address: {}", reserved), + if let Ok((peer_id, addr)) = parse_str_addr(reserved) { + Swarm::topology_mut(&mut swarm).add_bootstrap_addr(&peer_id, addr); + swarm.add_reserved_peer(peer_id.clone()); + Swarm::dial(&mut swarm, peer_id); + } else { + warn!(target: "sub-libp2p", "Not a valid reserved node address: {}", reserved); } } - debug!(target: "sub-libp2p", "Topology started with {} entries", topology.num_peers()); - - let (kad_new_ctrl_req_tx, kad_new_ctrl_req_rx) = mpsc::unbounded(); + debug!(target: "sub-libp2p", "Topology started with {} entries", + Swarm::topology_mut(&mut swarm).num_peers()); Ok(Service { swarm, - max_incoming_connections: config.in_peers as usize, - max_outgoing_connections: config.out_peers as usize, - topology, nodes_addresses: Default::default(), - disabled_peers: Default::default(), - reserved_peers, - reserved_only: config.non_reserved_mode == NonReservedPeerMode::Deny, - kad_system, - kad_pending_ctrls: Default::default(), - kad_new_ctrl_req_tx, - kad_new_ctrl_req_rx, - kad_queries: Vec::with_capacity(1), - next_connect_to_nodes: Delay::new(Instant::now()), - next_kad_random_query: Interval::new(Instant::now() + Duration::from_secs(5), Duration::from_secs(45)), + index_by_id: Default::default(), + next_node_id: 1, cleanup: Interval::new_interval(Duration::from_secs(60)), injected_events: Vec::new(), - to_notify: None, }) } /// Event produced by the service. #[derive(Debug)] pub enum ServiceEvent { - /// Closed connection to a node. - /// - /// It is guaranteed that this node has been opened with a `NewNode` event beforehand. However - /// not all `ClosedCustomProtocol` events have been dispatched. - NodeClosed { - /// Index of the node. - node_index: NodeIndex, - /// List of custom protocols that were still open. - closed_custom_protocols: Vec, - }, - /// A custom protocol substream has been opened with a node. OpenedCustomProtocol { /// Index of the node. @@ -232,53 +179,16 @@ pub enum ServiceEvent { /// Network service. Must be polled regularly in order for the networking to work. pub struct Service { /// Stream of events of the swarm. - swarm: Swarm, - - /// Maximum number of incoming non-reserved connections, taken from the config. - max_incoming_connections: usize, - - /// Maximum number of outgoing non-reserved connections, taken from the config. - max_outgoing_connections: usize, + swarm: Swarm, Behaviour>, NetTopology>, /// For each node we're connected to, how we're connected to it. - nodes_addresses: FnvHashMap, - - /// If true, only reserved peers can connect. - reserved_only: bool, - - /// List of the IDs of the reserved peers. - reserved_peers: FnvHashSet, - - /// List of the IDs of disabled peers, and when the ban expires. - /// Purged at a regular interval. - disabled_peers: FnvHashMap, + nodes_addresses: FnvHashMap, - /// Topology of the network. - topology: NetTopology, + /// Opposite of `nodes_addresses`. + index_by_id: FnvHashMap, - /// Handles the Kademlia queries. - // TODO: put the kbuckets in the topology instead - kad_system: KadSystem, - - /// List of Kademlia controller we want to open. - /// - /// A clone of tihs `Arc` is stored in each Kademlia query stream. - // TODO: use a better container? - kad_pending_ctrls: Arc>>>>, - - /// Sender whenever we inserted an entry in `kad_pending_ctrls`, so that we can process it. - kad_new_ctrl_req_tx: mpsc::UnboundedSender, - /// Receiver side of `kad_new_ctrl_req_tx`. - kad_new_ctrl_req_rx: mpsc::UnboundedReceiver, - - /// Active Kademlia queries. - kad_queries: Vec>, Error = IoError> + Send>>, - - /// Future that will fire when we need to connect to new nodes. - next_connect_to_nodes: Delay, - - /// Stream that fires when we need to perform the next Kademlia query. - next_kad_random_query: Interval, + /// Next index to assign to a node. + next_node_id: NodeIndex, /// Stream that fires when we need to cleanup and flush the topology, and cleanup the disabled /// peers. @@ -286,22 +196,19 @@ pub struct Service { /// Events to produce on the Stream. injected_events: Vec, - - /// Task to notify when elements are added to `injected_events`. - to_notify: Option, } impl Service { - /// Returns an iterator that produces the list of addresses we're listening on. + /// Returns an iterator that produces the list of addresses we're listening on. #[inline] pub fn listeners(&self) -> impl Iterator { - self.swarm.listeners() + Swarm::listeners(&self.swarm) } /// Returns the peer id of the local node. #[inline] pub fn peer_id(&self) -> &PeerId { - self.kad_system.local_peer_id() + Swarm::local_peer_id(&self.swarm) } /// Returns the list of all the peers we are connected to. @@ -312,76 +219,57 @@ impl Service { /// Try to add a reserved peer. pub fn add_reserved_peer(&mut self, peer_id: PeerId, addr: Multiaddr) { - self.reserved_peers.insert(peer_id.clone()); - self.topology.add_bootstrap_addr(&peer_id, addr.clone()); - let _ = self.swarm.ensure_connection(peer_id, addr); + Swarm::topology_mut(&mut self.swarm).add_bootstrap_addr(&peer_id, addr); + self.swarm.add_reserved_peer(peer_id); } /// Try to remove a reserved peer. /// /// If we are in reserved mode and we were connected to a node with this peer ID, then this - /// method will disconnect it and return its index. - pub fn remove_reserved_peer(&mut self, peer_id: PeerId) -> Option { - self.reserved_peers.remove(&peer_id); - if self.reserved_only { - if let Some(node_index) = self.swarm.latest_node_by_peer_id(&peer_id) { - self.drop_node_inner(node_index, DisconnectReason::NoSlot, None); - return Some(node_index); - } - } - None + /// method will disconnect it. + pub fn remove_reserved_peer(&mut self, peer_id: PeerId) { + self.swarm.remove_reserved_peer(peer_id); } /// Start accepting all peers again if we weren't. + #[inline] pub fn accept_unreserved_peers(&mut self) { - if self.reserved_only { - self.reserved_only = false; - self.connect_to_nodes(); - } + self.swarm.accept_unreserved_peers(); } - /// Start refusing non-reserved nodes. Returns the list of nodes that have been disconnected. - pub fn deny_unreserved_peers(&mut self) -> Vec { - self.reserved_only = true; - - // Disconnect the nodes that are not reserved. - let to_disconnect: Vec = self.swarm - .nodes() - .filter(|&n| { - let peer_id = self.swarm.peer_id_of_node(n) - .expect("swarm.nodes() always returns valid node indices"); - !self.reserved_peers.contains(peer_id) - }) - .collect(); - - for &node_index in &to_disconnect { - self.drop_node_inner(node_index, DisconnectReason::NoSlot, None); - } - - to_disconnect + /// Start refusing non-reserved nodes. Disconnects the nodes that we are connected to that + /// aren't reserved. + pub fn deny_unreserved_peers(&mut self) { + self.swarm.deny_unreserved_peers(); } /// Returns the `PeerId` of a node. #[inline] pub fn peer_id_of_node(&self, node_index: NodeIndex) -> Option<&PeerId> { - self.swarm.peer_id_of_node(node_index) + self.nodes_addresses.get(&node_index).map(|(id, _)| id) } /// Returns the way we are connected to a node. #[inline] pub fn node_endpoint(&self, node_index: NodeIndex) -> Option<&ConnectedPoint> { - self.nodes_addresses.get(&node_index) + self.nodes_addresses.get(&node_index).map(|(_, cp)| cp) } /// Sends a message to a peer using the custom protocol. - // TODO: report invalid node index or protocol? + /// + /// Has no effect if the connection to the node has been closed, or if the node index is + /// invalid. pub fn send_custom_message( &mut self, node_index: NodeIndex, protocol: ProtocolId, data: Vec ) { - self.swarm.send_custom_message(node_index, protocol, data) + if let Some(peer_id) = self.nodes_addresses.get(&node_index).map(|(id, _)| id) { + self.swarm.send_custom_message(peer_id, protocol, data); + } else { + warn!(target: "sub-libp2p", "Tried to send message to unknown node: {:}", node_index); + } } /// Disconnects a peer and bans it for a little while. @@ -389,11 +277,10 @@ impl Service { /// Same as `drop_node`, except that the same peer will not be able to reconnect later. #[inline] pub fn ban_node(&mut self, node_index: NodeIndex) { - if let Some(peer_id) = self.swarm.peer_id_of_node(node_index) { - info!(target: "sub-libp2p", "Banned {:?}", peer_id); + if let Some(peer_id) = self.nodes_addresses.get(&node_index).map(|(id, _)| id) { + info!(target: "sub-libp2p", "Banned {:?} (#{:?})", peer_id, node_index); + self.swarm.ban_node(peer_id.clone()); } - - self.drop_node_inner(node_index, DisconnectReason::Banned, Some(PEER_DISABLE_DURATION)); } /// Disconnects a peer. @@ -402,526 +289,62 @@ impl Service { /// Corresponding closing events will be generated once the closing actually happens. #[inline] pub fn drop_node(&mut self, node_index: NodeIndex) { - if let Some(peer_id) = self.swarm.peer_id_of_node(node_index) { - info!(target: "sub-libp2p", "Dropped {:?}", peer_id); - } - - self.drop_node_inner(node_index, DisconnectReason::Useless, None); - } - - /// Common implementation of `drop_node` and `ban_node`. - fn drop_node_inner( - &mut self, - node_index: NodeIndex, - reason: DisconnectReason, - disable_duration: Option - ) { - let peer_id = match self.swarm.peer_id_of_node(node_index) { - Some(pid) => pid.clone(), - None => return, // TODO: report? - }; - - // Kill the node from the swarm, and inject an event about it. - let closed_custom_protocols = self.swarm.drop_node(node_index) - .expect("we checked right above that node is valid"); - self.injected_events.push(ServiceEvent::NodeClosed { - node_index, - closed_custom_protocols, - }); - - if let Some(to_notify) = self.to_notify.take() { - to_notify.notify(); - } - - if let Some(ConnectedPoint::Dialer { address }) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&address, reason); - } - - if let Some(disable_duration) = disable_duration { - let timeout = Instant::now() + disable_duration; - self.disabled_peers.insert(peer_id, timeout); - } - - self.connect_to_nodes(); - } - - /// Counts the number of non-reserved ingoing connections. - fn num_ingoing_connections(&self) -> usize { - self.swarm.nodes() - .filter(|&i| self.swarm.node_endpoint(i) == Some(Endpoint::Listener) && - !self.reserved_peers.contains(&self.swarm.peer_id_of_node(i).unwrap())) - .count() - } - - /// Counts the number of non-reserved outgoing connections. - fn num_outgoing_connections(&self) -> usize { - self.swarm.nodes() - .filter(|&i| self.swarm.node_endpoint(i) == Some(Endpoint::Dialer) && - !self.reserved_peers.contains(&self.swarm.peer_id_of_node(i).unwrap())) - .count() - } - - /// Updates the attempted connections to nodes. - /// - /// Also updates `next_connect_to_nodes` with the earliest known moment when we need to - /// update connections again. - fn connect_to_nodes(&mut self) { - // Make sure we are connected or connecting to all the reserved nodes. - for reserved in self.reserved_peers.iter() { - let addrs = self.topology.addrs_of_peer(&reserved); - for (addr, _) in addrs { - let _ = self.swarm.ensure_connection(reserved.clone(), addr.clone()); - } - } - - // Counter of number of connections to open, decreased when we open one. - let mut num_to_open = self.max_outgoing_connections - self.num_outgoing_connections(); - - let (to_try, will_change) = self.topology.addrs_to_attempt(); - for (peer_id, addr) in to_try { - if num_to_open == 0 { - break; - } - - if peer_id == self.kad_system.local_peer_id() { - continue; - } - - if self.disabled_peers.contains_key(&peer_id) { - continue; - } - - // It is possible that we are connected to this peer, but the topology doesn't know - // about that because it is an incoming connection. - match self.swarm.ensure_connection(peer_id.clone(), addr.clone()) { - Ok(true) => (), - Ok(false) => num_to_open -= 1, - Err(_) => () - } + if let Some(peer_id) = self.nodes_addresses.get(&node_index).map(|(id, _)| id) { + debug!(target: "sub-libp2p", "Dropping {:?} on purpose (#{:?})", peer_id, node_index); + self.swarm.drop_node(peer_id); } - - self.next_connect_to_nodes.reset(will_change); - } - - /// Starts a random Kademlia query in order to fill the topology. - /// - /// Query the node IDs that are closest to a random ID. - /// Note that the randomness doesn't have to be secure, as this only influences which nodes we - /// end up being connected to. - fn perform_kad_random_query(&mut self) { - let random_key = PublicKey::Ed25519((0 .. 32) - .map(|_| -> u8 { rand::random() }).collect()); - let random_peer_id = random_key.into_peer_id(); - debug!(target: "sub-libp2p", "Start random Kademlia query for {:?}", random_peer_id); - - let kad_pending_ctrls = self.kad_pending_ctrls.clone(); - let kad_new_ctrl_req_tx = self.kad_new_ctrl_req_tx.clone(); - let stream = self.kad_system - .find_node(random_peer_id, move |who| { - let (tx, rx) = oneshot::channel(); - let mut kad_pending_ctrls = kad_pending_ctrls.lock(); - kad_pending_ctrls.entry(who.clone()).or_insert(Vec::new()).push(tx); - let _ = kad_new_ctrl_req_tx.unbounded_send(who.clone()); - rx.map_err(|_| IoError::new(IoErrorKind::Other, "Couldn't reach peer")) - }); - - self.kad_queries.push(Box::new(stream)); - } - - /// If a remote performs a `FIND_NODE` Kademlia request for `searched`, this function builds - /// the response to send back. - fn build_kademlia_response(&self, searched: &PeerId) -> Vec { - self.kad_system - .known_closest_peers(searched) - .map(|who| { - if who == *self.kad_system.local_peer_id() { - KadPeer { - node_id: who.clone(), - multiaddrs: self.swarm.external_addresses().cloned().collect(), - connection_ty: KadConnectionType::Connected, - } - } else { - let mut addrs = self.topology.addrs_of_peer(&who) - .map(|(a, c)| (a.clone(), c)) - .collect::>(); - let connected = addrs.iter().any(|&(_, conn)| conn); - // The Kademlia protocol of libp2p doesn't allow specifying which address is valid - // and which is outdated, therefore in order to stay honest towards the network - // we only report the addresses we're connected to if we're connected to any. - if connected { - addrs.retain(|&(_, connected)| connected); - } - - KadPeer { - node_id: who.clone(), - multiaddrs: addrs.into_iter().map(|(a, _)| a).collect(), - connection_ty: if connected { - KadConnectionType::Connected - } else { - KadConnectionType::NotConnected - }, - } - } - }) - // TODO: we really want to remove nodes with no multiaddress from - // the results, but a flaw in the Kad protocol of libp2p makes it - // impossible to return empty results ; therefore we must at least - // return ourselves - .filter(|p| p.node_id == *self.kad_system.local_peer_id() || !p.multiaddrs.is_empty()) - .take(20) - .collect::>() } - /// Adds a list of peers to the network topology. - fn add_discovered_peers(&mut self, list: impl IntoIterator) { - let mut topology_has_changed = false; - - for peer in list { - let connected = match peer.connection_ty { - KadConnectionType::NotConnected => false, - KadConnectionType::Connected => true, - KadConnectionType::CanConnect => true, - KadConnectionType::CannotConnect => continue, - }; - - let changed = self.topology.add_kademlia_discovered_addrs( - &peer.node_id, - peer.multiaddrs.iter().map(|a| (a.clone(), connected)) - ); - - if changed { - topology_has_changed = true; - } - } - - // Potentially connect to the newly-discovered nodes. - if topology_has_changed { - self.connect_to_nodes(); - } - } - - /// Handles the swarm opening a connection to the given peer. - /// - /// > **Note**: Must be called from inside `poll()`, otherwise it will panic. - fn handle_connection( - &mut self, - node_index: NodeIndex, - peer_id: PeerId, - endpoint: ConnectedPoint - ) { - // Reject connections to our own node, which can happen if the DHT contains `127.0.0.1` - // for example. - if &peer_id == self.kad_system.local_peer_id() { - debug!(target: "sub-libp2p", "Rejected connection to/from ourself: {:?}", endpoint); - assert_eq!(self.swarm.drop_node(node_index), Ok(Vec::new())); - if let ConnectedPoint::Dialer { ref address } = endpoint { - self.topology.report_failed_to_connect(address); - } - return; - } - - // Reject non-reserved nodes if we're in reserved mode. - let is_reserved = self.reserved_peers.contains(&peer_id); - if self.reserved_only && !is_reserved { - debug!(target: "sub-libp2p", "Rejected non-reserved peer {:?}", peer_id); - assert_eq!(self.swarm.drop_node(node_index), Ok(Vec::new())); - if let ConnectedPoint::Dialer { ref address } = endpoint { - self.topology.report_failed_to_connect(address); - } - return; - } - - // Reject connections from disabled peers. - if let Some(expires) = self.disabled_peers.get(&peer_id) { - if expires > &Instant::now() { - info!(target: "sub-libp2p", "Rejected connection from disabled peer: {:?}", peer_id); - assert_eq!(self.swarm.drop_node(node_index), Ok(Vec::new())); - if let ConnectedPoint::Dialer { ref address } = endpoint { - self.topology.report_failed_to_connect(address); - } - return; - } - } - - match endpoint { - ConnectedPoint::Listener { ref listen_addr, ref send_back_addr } => { - if is_reserved || self.num_ingoing_connections() < self.max_incoming_connections { - debug!(target: "sub-libp2p", "Connected to {:?} through {} on listener {}", - peer_id, send_back_addr, listen_addr); - } else { - info!(target: "sub-libp2p", "Rejected incoming peer {:?} because we are full", peer_id); - assert_eq!(self.swarm.drop_node(node_index), Ok(Vec::new())); - return; - } - }, - ConnectedPoint::Dialer { ref address } => { - if is_reserved || self.num_outgoing_connections() < self.max_outgoing_connections { - debug!(target: "sub-libp2p", "Connected to {:?} through {}", peer_id, address); - self.topology.report_connected(address, &peer_id); - } else { - debug!(target: "sub-libp2p", "Rejected dialed peer {:?} because we are full", peer_id); - assert_eq!(self.swarm.drop_node(node_index), Ok(Vec::new())); - return; - } - }, - }; - - if let Err(_) = self.swarm.accept_node(node_index) { - error!(target: "sub-libp2p", "accept_node returned an error"); - } - - // We are finally sure that we're connected. - - if let ConnectedPoint::Dialer { ref address } = endpoint { - self.topology.report_connected(address, &peer_id); - } - self.nodes_addresses.insert(node_index, endpoint.clone()); - - // If we're waiting for a Kademlia substream for this peer id, open one. - let kad_pending_ctrls = self.kad_pending_ctrls.lock(); - if kad_pending_ctrls.contains_key(&peer_id) { - let res = self.swarm.open_kademlia(node_index); - debug_assert!(res.is_ok()); - } - } - - /// Processes an event received by the swarm. - /// - /// Optionally returns an event to report back to the outside. - /// - /// > **Note**: Must be called from inside `poll()`, otherwise it will panic. - fn process_network_event( - &mut self, - event: SwarmEvent - ) -> Option { - match event { - SwarmEvent::NodePending { node_index, peer_id, endpoint } => { - self.handle_connection(node_index, peer_id, endpoint); - None - }, - SwarmEvent::Reconnected { node_index, endpoint, closed_custom_protocols } => { - if let Some(ConnectedPoint::Dialer { address }) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&address, DisconnectReason::FoundBetterAddr); - } - if let ConnectedPoint::Dialer { ref address } = endpoint { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.topology.report_connected(address, peer_id); - } - self.nodes_addresses.insert(node_index, endpoint); - Some(ServiceEvent::ClosedCustomProtocols { - node_index, - protocols: closed_custom_protocols, - }) - }, - SwarmEvent::NodeClosed { node_index, peer_id, closed_custom_protocols } => { - debug!(target: "sub-libp2p", "Connection to {:?} closed gracefully", peer_id); - if let Some(ConnectedPoint::Dialer { ref address }) = self.nodes_addresses.get(&node_index) { - self.topology.report_disconnected(address, DisconnectReason::RemoteClosed); - } - self.connect_to_nodes(); - Some(ServiceEvent::NodeClosed { - node_index, - closed_custom_protocols, - }) - }, - SwarmEvent::DialFail { address, error } => { - debug!(target: "sub-libp2p", "Failed to dial address {}: {:?}", address, error); - self.topology.report_failed_to_connect(&address); - self.connect_to_nodes(); - None - }, - SwarmEvent::UnresponsiveNode { node_index } => { - let closed_custom_protocols = self.swarm.drop_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - if let Some(ConnectedPoint::Dialer { address }) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&address, DisconnectReason::Useless); - } - Some(ServiceEvent::NodeClosed { - node_index, - closed_custom_protocols, - }) - }, - SwarmEvent::UselessNode { node_index } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices") - .clone(); - let closed_custom_protocols = self.swarm.drop_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.topology.report_useless(&peer_id); - if let Some(ConnectedPoint::Dialer { address }) = self.nodes_addresses.remove(&node_index) { - self.topology.report_disconnected(&address, DisconnectReason::Useless); - } - Some(ServiceEvent::NodeClosed { - node_index, - closed_custom_protocols, - }) - }, - SwarmEvent::NodeInfos { node_index, listen_addrs, .. } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.topology.add_self_reported_listen_addrs( - peer_id, - listen_addrs.into_iter() - ); - None - }, - SwarmEvent::KadFindNode { searched, responder, .. } => { - let response = self.build_kademlia_response(&searched); - responder.respond(response); - None - }, - SwarmEvent::KadOpen { node_index, controller } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - trace!(target: "sub-libp2p", "Opened Kademlia substream with {:?}", peer_id); - if let Some(list) = self.kad_pending_ctrls.lock().remove(&peer_id) { - for tx in list { - let _ = tx.send(controller.clone()); - } - } - None - }, - SwarmEvent::KadClosed { .. } => { - None + /// Returns the `NodeIndex` of a peer, or assigns one if none exists. + fn index_of_peer_or_assign(&mut self, peer: PeerId, endpoint: ConnectedPoint) -> NodeIndex { + match self.index_by_id.entry(peer) { + Entry::Occupied(entry) => { + let id = *entry.get(); + self.nodes_addresses.insert(id, (entry.key().clone(), endpoint)); + id }, - SwarmEvent::OpenedCustomProtocol { node_index, protocol, version } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.kad_system.update_kbuckets(peer_id.clone()); - Some(ServiceEvent::OpenedCustomProtocol { - node_index, - protocol, - version, - }) + Entry::Vacant(entry) => { + let id = self.next_node_id; + self.next_node_id += 1; + self.nodes_addresses.insert(id, (entry.key().clone(), endpoint)); + entry.insert(id); + id }, - SwarmEvent::ClosedCustomProtocol { node_index, protocol } => - Some(ServiceEvent::ClosedCustomProtocol { - node_index, - protocol, - }), - SwarmEvent::CustomMessage { node_index, protocol_id, data } => { - let peer_id = self.swarm.peer_id_of_node(node_index) - .expect("the swarm always produces events containing valid node indices"); - self.kad_system.update_kbuckets(peer_id.clone()); - Some(ServiceEvent::CustomMessage { - node_index, - protocol_id, - data, - }) - }, - } - } - - /// Handles a Kademlia query requesting a Kademlia controller with the given peer. - fn handle_kad_ctrl_request(&mut self, peer_id: PeerId) { - if let Some(node_index) = self.swarm.latest_node_by_peer_id(&peer_id) { - if let Err(_) = self.swarm.open_kademlia(node_index) { - self.kad_pending_ctrls.lock().remove(&peer_id); - } - } else { - let addrs = self.topology.addrs_of_peer(&peer_id); - let mut one_worked = false; - for (addr, _) in addrs { - if let Ok(_) = self.swarm.ensure_connection(peer_id.clone(), addr.clone()) { - one_worked = true; - } - } - if !one_worked { - debug!(target: "sub-libp2p", "Couldn't open Kad substream with {:?} \ - because no address is known", peer_id); - // Closing the senders in order to generate errors on the Kad query. - self.kad_pending_ctrls.lock().remove(&peer_id); - } } } - /// Polls for what happened on the main network side. + /// Polls for what happened on the network. fn poll_swarm(&mut self) -> Poll, IoError> { loop { match self.swarm.poll() { - Ok(Async::Ready(Some(event))) => - if let Some(event) = self.process_network_event(event) { - return Ok(Async::Ready(Some(event))); - } - Ok(Async::NotReady) => return Ok(Async::NotReady), - Ok(Async::Ready(None)) => unreachable!("The Swarm stream never ends"), - // TODO: this `Err` contains a `Void` ; remove variant when Rust allows that - Err(_) => unreachable!("The Swarm stream never errors"), - } - } - } - - /// Polls the Kademlia system. - fn poll_kademlia(&mut self) -> Poll, IoError> { - // Polls the active Kademlia queries. - // We remove each element from `kad_queries` one by one and add them back if not ready. - for n in (0 .. self.kad_queries.len()).rev() { - let mut query = self.kad_queries.swap_remove(n); - loop { - match query.poll() { - Ok(Async::Ready(Some(KadQueryEvent::PeersReported(list)))) => - self.add_discovered_peers(list), - // We don't actually care about the results - Ok(Async::Ready(Some(KadQueryEvent::Finished(_out)))) => { - if _out.is_empty() { - warn!(target: "sub-libp2p", "Random Kademlia request has yielded \ - empty results"); - } - break - }, - Ok(Async::Ready(None)) => break, - Ok(Async::NotReady) => { - self.kad_queries.push(query); - break; - }, - Err(err) => { - warn!(target: "sub-libp2p", "Kademlia query failed: {:?}", err); - break; - }, - } - } - } - - // Poll the future that fires when we need to reply to a Kademlia query. - loop { - match self.kad_new_ctrl_req_rx.poll() { - Ok(Async::NotReady) => break, - Ok(Async::Ready(Some(peer_id))) => self.handle_kad_ctrl_request(peer_id), - Ok(Async::Ready(None)) => unreachable!("The tx is in self"), - Err(()) => unreachable!("An UnboundedReceiver never errors"), - } - } - - // Poll the future that fires when we need to perform a random Kademlia query. - loop { - match self.next_kad_random_query.poll() { - Ok(Async::NotReady) => break, - Ok(Async::Ready(Some(_))) => self.perform_kad_random_query(), - Ok(Async::Ready(None)) => { - warn!(target: "sub-libp2p", "Kad query timer closed unexpectedly"); - return Ok(Async::Ready(None)); + Ok(Async::Ready(Some(CustomProtosOut::CustomProtocolOpen { protocol_id, peer_id, version, endpoint }))) => { + debug!(target: "sub-libp2p", "Opened custom protocol with {:?}", peer_id); + let node_index = self.index_of_peer_or_assign(peer_id, endpoint); + break Ok(Async::Ready(Some(ServiceEvent::OpenedCustomProtocol { + node_index, + protocol: protocol_id, + version, + }))) } - Err(err) => { - warn!(target: "sub-libp2p", "Kad query timer errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); + Ok(Async::Ready(Some(CustomProtosOut::CustomProtocolClosed { protocol_id, peer_id, result }))) => { + debug!(target: "sub-libp2p", "Custom protocol with {:?} closed: {:?}", peer_id, result); + let node_index = *self.index_by_id.get(&peer_id).expect("index_by_id is always kept in sync with the state of the behaviour"); + break Ok(Async::Ready(Some(ServiceEvent::ClosedCustomProtocol { + node_index, + protocol: protocol_id, + }))) } - } - } - - Ok(Async::NotReady) - } - - // Polls the future that fires when we need to refresh our connections. - fn poll_next_connect_refresh(&mut self) -> Poll, IoError> { - loop { - match self.next_connect_to_nodes.poll() { - Ok(Async::Ready(())) => self.connect_to_nodes(), - Ok(Async::NotReady) => return Ok(Async::NotReady), - Err(err) => { - warn!(target: "sub-libp2p", "Connect to nodes timer errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); + Ok(Async::Ready(Some(CustomProtosOut::CustomMessage { protocol_id, peer_id, data }))) => { + let node_index = *self.index_by_id.get(&peer_id).expect("index_by_id is always kept in sync with the state of the behaviour"); + break Ok(Async::Ready(Some(ServiceEvent::CustomMessage { + node_index, + protocol_id, + data, + }))) } + Ok(Async::NotReady) => break Ok(Async::NotReady), + Ok(Async::Ready(None)) => unreachable!("The Swarm stream never ends"), + Err(_) => unreachable!("The Swarm never errors"), } } } @@ -933,22 +356,20 @@ impl Service { Ok(Async::NotReady) => return Ok(Async::NotReady), Ok(Async::Ready(Some(_))) => { debug!(target: "sub-libp2p", "Cleaning and flushing topology"); - self.topology.cleanup(); - if let Err(err) = self.topology.flush_to_disk() { + Swarm::topology_mut(&mut self.swarm).cleanup(); + if let Err(err) = Swarm::topology_mut(&mut self.swarm).flush_to_disk() { warn!(target: "sub-libp2p", "Failed to flush topology: {:?}", err); } - let now = Instant::now(); - self.disabled_peers.retain(move |_, v| *v < now); debug!(target: "sub-libp2p", "Topology now contains {} nodes", - self.topology.num_peers()); + Swarm::topology_mut(&mut self.swarm).num_peers()); }, Ok(Async::Ready(None)) => { warn!(target: "sub-libp2p", "Topology flush stream ended unexpectedly"); - return Ok(Async::Ready(None)); + return Ok(Async::Ready(None)) } Err(err) => { warn!(target: "sub-libp2p", "Topology flush stream errored: {:?}", err); - return Err(IoError::new(IoErrorKind::Other, err)); + return Err(IoError::new(IoErrorKind::Other, err)) } } } @@ -957,7 +378,7 @@ impl Service { impl Drop for Service { fn drop(&mut self) { - if let Err(err) = self.topology.flush_to_disk() { + if let Err(err) = Swarm::topology_mut(&mut self.swarm).flush_to_disk() { warn!(target: "sub-libp2p", "Failed to flush topology: {:?}", err); } } @@ -977,16 +398,6 @@ impl Stream for Service { Async::NotReady => (), } - match self.poll_kademlia()? { - Async::Ready(value) => return Ok(Async::Ready(value)), - Async::NotReady => (), - } - - match self.poll_next_connect_refresh()? { - Async::Ready(value) => return Ok(Async::Ready(value)), - Async::NotReady => (), - } - match self.poll_cleanup()? { Async::Ready(value) => return Ok(Async::Ready(value)), Async::NotReady => (), @@ -994,7 +405,6 @@ impl Stream for Service { // The only way we reach this is if we went through all the `NotReady` paths above, // ensuring the current task is registered everywhere. - self.to_notify = Some(task::current()); Ok(Async::NotReady) } } diff --git a/core/network-libp2p/src/swarm.rs b/core/network-libp2p/src/swarm.rs deleted file mode 100644 index 0a6bfaa994..0000000000 --- a/core/network-libp2p/src/swarm.rs +++ /dev/null @@ -1,672 +0,0 @@ -// Copyright 2018 Parity Technologies (UK) Ltd. -// This file is part of Substrate. - -// Substrate is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Substrate is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Substrate. If not, see . - -use bytes::Bytes; -use custom_proto::RegisteredProtocols; -use fnv::FnvHashMap; -use futures::{prelude::*, Stream}; -use libp2p::{Multiaddr, multiaddr::Protocol, PeerId}; -use libp2p::core::{muxing, Endpoint, PublicKey}; -use libp2p::core::nodes::{ConnectedPoint, RawSwarm, RawSwarmEvent, Peer as SwarmPeer, Substream}; -use libp2p::core::transport::boxed::Boxed; -use libp2p::kad::{KadConnecController, KadFindNodeRespond}; -use libp2p::secio; -use node_handler::{SubstrateOutEvent, SubstrateNodeHandler, SubstrateInEvent, IdentificationRequest}; -use std::{io, mem, sync::Arc}; -use transport; -use {Error, NodeIndex, ProtocolId}; - -/// Starts a swarm. -/// -/// Returns a stream that must be polled regularly in order for the networking to function. -pub fn start_swarm( - registered_custom: RegisteredProtocols, - local_private_key: secio::SecioKeyPair, -) -> Result { - // Private and public keys. - let local_public_key = local_private_key.to_public_key(); - let local_peer_id = local_public_key.clone().into_peer_id(); - - // Build the transport layer. This is what allows us to listen or to reach nodes. - let transport = transport::build_transport(local_private_key); - - // Build the underlying libp2p swarm. - let swarm = RawSwarm::new(transport); - - Ok(Swarm { - swarm, - registered_custom: Arc::new(registered_custom), - local_public_key, - local_peer_id, - listening_addrs: Vec::new(), - node_by_peer: Default::default(), - nodes_info: Default::default(), - next_node_index: 0, - }) -} - -/// Event produced by the swarm. -pub enum SwarmEvent { - /// We have successfully connected to a node. - /// - /// The node is in pending node, and should be accepted by calling `accept_node(node_index)` - /// or denied by calling `drop_node(node_index)`. - NodePending { - /// Index of the node. - node_index: NodeIndex, - /// Public key of the node as a peer id. - peer_id: PeerId, - /// Whether we dialed the node or if it came to us. - endpoint: ConnectedPoint, - }, - - /// The connection to a peer has changed. - Reconnected { - /// Index of the node. - node_index: NodeIndex, - /// The new endpoint. - endpoint: ConnectedPoint, - /// List of custom protocols that were closed in the process. - closed_custom_protocols: Vec, - }, - - /// Closed connection to a node, either gracefully or because of an error. - /// - /// It is guaranteed that this node has been opened with a `NewNode` event beforehand. However - /// not all `ClosedCustomProtocol` events have been dispatched. - NodeClosed { - /// Index of the node. - node_index: NodeIndex, - /// Peer id we were connected to. - peer_id: PeerId, - /// List of custom protocols that were still open. - closed_custom_protocols: Vec, - }, - - /// Failed to dial an address. - DialFail { - /// Address that failed. - address: Multiaddr, - /// Reason why we failed. - error: io::Error, - }, - - /// Report information about the node. - NodeInfos { - /// Index of the node. - node_index: NodeIndex, - /// The client version. Note that it can be anything and should not be trusted. - client_version: String, - /// Multiaddresses the node is listening on. - listen_addrs: Vec, - }, - - /// A custom protocol substream has been opened with a node. - OpenedCustomProtocol { - /// Index of the node. - node_index: NodeIndex, - /// Protocol that has been opened. - protocol: ProtocolId, - /// Version of the protocol that was opened. - version: u8, - }, - - /// A custom protocol substream has been closed. - ClosedCustomProtocol { - /// Index of the node. - node_index: NodeIndex, - /// Protocol that has been closed. - protocol: ProtocolId, - }, - - /// Receives a message on a custom protocol stream. - CustomMessage { - /// Index of the node. - node_index: NodeIndex, - /// Protocol which generated the message. - protocol_id: ProtocolId, - /// Data that has been received. - data: Bytes, - }, - - /// The node has been determined to be unresponsive. - UnresponsiveNode { - /// Index of the node. - node_index: NodeIndex, - }, - - /// The node works but we can't do anything useful with it. - UselessNode { - /// Index of the node. - node_index: NodeIndex, - }, - - /// Opened a Kademlia substream with the node. - // TODO: the controller API is bad, but we need to make changes in libp2p to improve that - KadOpen { - /// Index of the node. - node_index: NodeIndex, - /// The Kademlia controller. Allows making queries. - controller: KadConnecController, - }, - - /// The remote wants us to answer a Kademlia `FIND_NODE` request. - /// - /// The `responder` should be used to answer that query. - // TODO: this API with the "responder" is bad, but changing it requires modifications in libp2p - KadFindNode { - /// Index of the node that wants an answer. - node_index: NodeIndex, - /// The value being searched. - searched: PeerId, - /// Object to use to respond to the request. - responder: KadFindNodeRespond, - }, - - /// A Kademlia substream has been closed. - KadClosed { - /// Index of the node. - node_index: NodeIndex, - /// Reason why it has been closed. `Ok` means that it's been closed gracefully. - result: Result<(), io::Error>, - }, -} - -/// Network swarm. Must be polled regularly in order for the networking to work. -pub struct Swarm { - /// Stream of events of the swarm. - swarm: RawSwarm< - Boxed<(PeerId, Muxer)>, - SubstrateInEvent, - SubstrateOutEvent>, - SubstrateNodeHandler> - >, - - /// List of registered protocols. Used when we open or receive a new connection. - registered_custom: Arc, - - /// Public key of the local node. - local_public_key: PublicKey, - - /// Peer id of the local node. - local_peer_id: PeerId, - - /// Addresses we know we're listening on. Only includes NAT traversed addresses. - listening_addrs: Vec, - - /// For each peer id, the corresponding node index. - node_by_peer: FnvHashMap, - - /// All the nodes tasks. Must be maintained consistent with `node_by_peer`. - nodes_info: FnvHashMap, - - /// Next key to use when we insert a new entry in `nodes_info`. - next_node_index: NodeIndex, -} - -/// Local information about a peer. -struct NodeInfo { - /// The peer id. Must be maintained consistent with the rest of the state. - peer_id: PeerId, - - /// Whether we opened the connection or the remote opened it. - endpoint: Endpoint, - - /// List of custom protocol substreams that are open. - open_protocols: Vec, -} - -/// The muxer used by the transport. -type Muxer = muxing::StreamMuxerBox; - -impl Swarm { - /// Start listening on a multiaddr. - #[inline] - pub fn listen_on(&mut self, addr: Multiaddr) -> Result { - match self.swarm.listen_on(addr) { - Ok(mut addr) => { - addr.append(Protocol::P2p(self.local_peer_id.clone().into())); - info!(target: "sub-libp2p", "Local node address is: {}", addr); - Ok(addr) - }, - Err(addr) => Err(addr) - } - } - - /// Returns an iterator that produces the list of addresses we're listening on. - #[inline] - pub fn listeners(&self) -> impl Iterator { - self.swarm.listeners() - } - - /// Adds an external address. Sent to other nodes when they query it. - #[inline] - pub fn add_external_address(&mut self, addr: Multiaddr) { - self.listening_addrs.push(addr); - } - - /// Returns an iterator to our known external addresses. - #[inline] - pub fn external_addresses(&self) -> impl Iterator { - self.listening_addrs.iter() - } - - /// Returns all the nodes that are currently active. - #[inline] - pub fn nodes<'a>(&'a self) -> impl Iterator + 'a { - self.nodes_info.keys().cloned() - } - - /// Returns the latest node connected to this peer ID. - #[inline] - pub fn latest_node_by_peer_id(&self, peer_id: &PeerId) -> Option { - self.node_by_peer.get(peer_id).map(|&i| i) - } - - /// Endpoint of the node. - /// - /// Returns `None` if the index is invalid. - #[inline] - pub fn node_endpoint(&self, node_index: NodeIndex) -> Option { - self.nodes_info.get(&node_index).map(|i| i.endpoint) - } - - /// Sends a message to a peer using the custom protocol. - // TODO: report invalid node index or protocol? - pub fn send_custom_message( - &mut self, - node_index: NodeIndex, - protocol: ProtocolId, - data: Vec - ) { - if let Some(info) = self.nodes_info.get_mut(&node_index) { - if let Some(mut connected) = self.swarm.peer(info.peer_id.clone()).as_connected() { - connected.send_event(SubstrateInEvent::SendCustomMessage { protocol, data }); - } else { - error!(target: "sub-libp2p", "Tried to send message to {:?}, but we're not \ - connected to it", info.peer_id); - } - } else { - error!(target: "sub-libp2p", "Tried to send message to invalid node index {:?}", - node_index); - } - } - - /// Returns the peer id of a node we're connected to. - #[inline] - pub fn peer_id_of_node(&self, node_index: NodeIndex) -> Option<&PeerId> { - self.nodes_info.get(&node_index).map(|i| &i.peer_id) - } - - /// If we're not already dialing the given peer, start dialing it and return false. - /// If we're dialing, adds the address to the queue of addresses to try (if not already) and - /// return false. - /// If we're already connected, do nothing and return true. - /// - /// Returns an error if the address is not supported. - pub fn ensure_connection(&mut self, peer_id: PeerId, addr: Multiaddr) -> Result { - match self.swarm.peer(peer_id.clone()) { - SwarmPeer::Connected(_) => Ok(true), - SwarmPeer::PendingConnect(mut peer) => { - peer.append_multiaddr_attempt(addr); - Ok(false) - }, - SwarmPeer::NotConnected(peer) => { - trace!(target: "sub-libp2p", "Starting to connect to {:?} through {}", - peer_id, addr); - match peer.connect(addr, SubstrateNodeHandler::new(self.registered_custom.clone())) { - Ok(_) => Ok(false), - Err(_) => Err(()), - } - }, - } - } - - /// Start dialing an address, not knowing which peer ID to expect. - #[inline] - pub fn dial(&mut self, addr: Multiaddr) -> Result<(), Multiaddr> { - self.swarm.dial(addr, SubstrateNodeHandler::new(self.registered_custom.clone())) - } - - /// After receiving a `NodePending` event, you should call either `accept_node` or `drop_node` - /// with the specified index. - /// - /// Returns an error if the node index is invalid, or if it was already accepted. - pub fn accept_node(&mut self, node_index: NodeIndex) -> Result<(), ()> { - // TODO: detect if already accepted? - let peer_id = match self.nodes_info.get(&node_index) { - Some(info) => &info.peer_id, - None => return Err(()) - }; - - match self.swarm.peer(peer_id.clone()) { - SwarmPeer::Connected(mut peer) => { - peer.send_event(SubstrateInEvent::Accept); - Ok(()) - }, - SwarmPeer::PendingConnect(_) | SwarmPeer::NotConnected(_) => { - error!(target: "sub-libp2p", "State inconsistency detected in accept_node ; \ - nodes_info is not in sync with the underlying swarm"); - Err(()) - }, - } - } - - /// Disconnects a peer. - /// - /// If the peer is connected, this disconnects it. - /// If the peer hasn't been accepted yet, this immediately drops it. - /// - /// Returns the list of custom protocol substreams that were opened. - #[inline] - pub fn drop_node(&mut self, node_index: NodeIndex) -> Result, ()> { - let info = match self.nodes_info.remove(&node_index) { - Some(i) => i, - None => { - error!(target: "sub-libp2p", "Trying to close non-existing node #{}", node_index); - return Err(()); - }, - }; - - let idx_in_hashmap = self.node_by_peer.remove(&info.peer_id); - debug_assert_eq!(idx_in_hashmap, Some(node_index)); - - if let Some(connected) = self.swarm.peer(info.peer_id.clone()).as_connected() { - connected.close(); - } else { - error!(target: "sub-libp2p", "State inconsistency: node_by_peer and nodes_info are \ - not in sync with the underlying swarm"); - } - - Ok(info.open_protocols) - } - - /// Opens a Kademlia substream with the given node. A `KadOpen` event will later be produced - /// for the given node. - /// - /// If a Kademlia substream is already open, also produces a `KadOpen` event. - /// - /// Returns an error if the node index is invalid. - pub fn open_kademlia(&mut self, node_index: NodeIndex) -> Result<(), ()> { - if let Some(info) = self.nodes_info.get_mut(&node_index) { - if let Some(mut connected) = self.swarm.peer(info.peer_id.clone()).as_connected() { - connected.send_event(SubstrateInEvent::OpenKademlia); - Ok(()) - } else { - error!(target: "sub-libp2p", "Tried to open Kademlia with {:?}, but we're not \ - connected to it", info.peer_id); - Err(()) - } - } else { - error!(target: "sub-libp2p", "Tried to open Kademlia with invalid node index {:?}", - node_index); - Err(()) - } - } - - /// Adds an address the given peer observes us as. - fn add_observed_addr(&mut self, peer_id: &PeerId, observed_addr: &Multiaddr) { - for mut addr in self.swarm.nat_traversal(observed_addr) { - // Ignore addresses we already know about. - if self.listening_addrs.iter().any(|a| a == &addr) { - continue; - } - - debug!(target: "sub-libp2p", - "NAT traversal: {:?} observes us as {}; registering {} as one of our own addresses", - peer_id, - observed_addr, - addr - ); - - self.listening_addrs.push(addr.clone()); - addr.append(Protocol::P2p(self.local_peer_id.clone().into())); - info!(target: "sub-libp2p", "New external node address: {}", addr); - } - } - - /// Responds to an answer to send back identification information. - fn respond_to_identify_request( - &mut self, - requester: &PeerId, - responder: IdentificationRequest> - ) { - let peer = match self.swarm.peer(requester.clone()).as_connected() { - Some(p) => p, - None => { - debug!(target: "sub-libp2p", "Ignoring identify request from {:?} because we are \ - disconnected", requester); - return; - } - }; - - let observed_addr = match peer.endpoint() { - &ConnectedPoint::Dialer { ref address } => address, - &ConnectedPoint::Listener { ref send_back_addr, .. } => send_back_addr, - }; - - trace!(target: "sub-libp2p", "Responding to identify request from {:?}", requester); - responder.respond( - self.local_public_key.clone(), - self.listening_addrs.clone(), - &observed_addr, - ); - } - - /// Processes an event obtained by a node in the swarm. - /// - /// Optionally returns an event that the service must emit. - /// - /// > **Note**: The event **must** have been produced by the swarm, otherwise state - /// > inconsistencies will likely happen. - fn handle_node_event( - &mut self, - peer_id: PeerId, - event: SubstrateOutEvent> - ) -> Option { - // Obtain the peer id and whether the node has been closed earlier. - // If the node has been closed, do not generate any additional event about it. - let node_index = *self.node_by_peer.get(&peer_id) - .expect("node_by_peer is always kept in sync with the underlying swarm"); - - match event { - SubstrateOutEvent::Unresponsive => { - debug!(target: "sub-libp2p", "Node {:?} is unresponsive", peer_id); - Some(SwarmEvent::UnresponsiveNode { node_index }) - }, - SubstrateOutEvent::Useless => { - debug!(target: "sub-libp2p", "Node {:?} is useless", peer_id); - Some(SwarmEvent::UselessNode { node_index }) - }, - SubstrateOutEvent::PingStart => { - trace!(target: "sub-libp2p", "Pinging {:?}", peer_id); - None - }, - SubstrateOutEvent::PingSuccess(ping) => { - trace!(target: "sub-libp2p", "Pong from {:?} in {:?}", peer_id, ping); - None - }, - SubstrateOutEvent::Identified { info, observed_addr } => { - self.add_observed_addr(&peer_id, &observed_addr); - trace!(target: "sub-libp2p", "Client version of {:?}: {:?}", peer_id, info.agent_version); - if !info.agent_version.contains("substrate") { - info!(target: "sub-libp2p", "Connected to non-substrate node {:?}: {}", - peer_id, info.agent_version); - } - - Some(SwarmEvent::NodeInfos { - node_index, - client_version: info.agent_version, - listen_addrs: info.listen_addrs, - }) - }, - SubstrateOutEvent::IdentificationRequest(request) => { - self.respond_to_identify_request(&peer_id, request); - None - }, - SubstrateOutEvent::KadFindNode { searched, responder } => { - Some(SwarmEvent::KadFindNode { node_index, searched, responder }) - }, - SubstrateOutEvent::KadOpen(ctrl) => { - trace!(target: "sub-libp2p", "Opened Kademlia substream with {:?}", peer_id); - Some(SwarmEvent::KadOpen { node_index, controller: ctrl }) - }, - SubstrateOutEvent::KadClosed(result) => { - trace!(target: "sub-libp2p", "Closed Kademlia substream with {:?}: {:?}", peer_id, result); - Some(SwarmEvent::KadClosed { node_index, result }) - }, - SubstrateOutEvent::CustomProtocolOpen { protocol_id, version } => { - trace!(target: "sub-libp2p", "Opened custom protocol with {:?}", peer_id); - self.nodes_info.get_mut(&node_index) - .expect("nodes_info is kept in sync with the underlying swarm") - .open_protocols.push(protocol_id); - Some(SwarmEvent::OpenedCustomProtocol { - node_index, - protocol: protocol_id, - version, - }) - }, - SubstrateOutEvent::CustomProtocolClosed { protocol_id, result } => { - trace!(target: "sub-libp2p", "Closed custom protocol with {:?}: {:?}", peer_id, result); - self.nodes_info.get_mut(&node_index) - .expect("nodes_info is kept in sync with the underlying swarm") - .open_protocols.retain(|p| p != &protocol_id); - Some(SwarmEvent::ClosedCustomProtocol { - node_index, - protocol: protocol_id, - }) - }, - SubstrateOutEvent::CustomMessage { protocol_id, data } => { - Some(SwarmEvent::CustomMessage { - node_index, - protocol_id, - data, - }) - }, - SubstrateOutEvent::SubstreamUpgradeFail(err) => { - debug!(target: "sub-libp2p", "Error while negotiating final protocol \ - with {:?}: {:?}", peer_id, err); - None - }, - } - } -} - -impl Stream for Swarm { - type Item = SwarmEvent; - type Error = io::Error; - - fn poll(&mut self) -> Poll, Self::Error> { - loop { - let (peer_id, node_event) = match self.swarm.poll() { - Async::Ready(RawSwarmEvent::Connected { peer_id, endpoint }) => { - let node_index = self.next_node_index.clone(); - self.next_node_index += 1; - self.node_by_peer.insert(peer_id.clone(), node_index); - self.nodes_info.insert(node_index, NodeInfo { - peer_id: peer_id.clone(), - endpoint: match endpoint { - ConnectedPoint::Listener { .. } => Endpoint::Listener, - ConnectedPoint::Dialer { .. } => Endpoint::Dialer, - }, - open_protocols: Vec::new(), - }); - - return Ok(Async::Ready(Some(SwarmEvent::NodePending { - node_index, - peer_id, - endpoint - }))); - } - Async::Ready(RawSwarmEvent::Replaced { peer_id, endpoint, .. }) => { - let node_index = *self.node_by_peer.get(&peer_id) - .expect("node_by_peer is always kept in sync with the inner swarm"); - let infos = self.nodes_info.get_mut(&node_index) - .expect("nodes_info is always kept in sync with the swarm"); - debug_assert_eq!(infos.peer_id, peer_id); - infos.endpoint = match endpoint { - ConnectedPoint::Listener { .. } => Endpoint::Listener, - ConnectedPoint::Dialer { .. } => Endpoint::Dialer, - }; - let closed_custom_protocols = mem::replace(&mut infos.open_protocols, Vec::new()); - - return Ok(Async::Ready(Some(SwarmEvent::Reconnected { - node_index, - endpoint, - closed_custom_protocols, - }))); - }, - Async::Ready(RawSwarmEvent::NodeClosed { peer_id, .. }) => { - debug!(target: "sub-libp2p", "Connection to {:?} closed gracefully", peer_id); - let node_index = self.node_by_peer.remove(&peer_id) - .expect("node_by_peer is always kept in sync with the inner swarm"); - let infos = self.nodes_info.remove(&node_index) - .expect("nodes_info is always kept in sync with the inner swarm"); - debug_assert_eq!(infos.peer_id, peer_id); - return Ok(Async::Ready(Some(SwarmEvent::NodeClosed { - node_index, - peer_id, - closed_custom_protocols: infos.open_protocols, - }))); - }, - Async::Ready(RawSwarmEvent::NodeError { peer_id, error, .. }) => { - debug!(target: "sub-libp2p", "Closing {:?} because of error: {:?}", peer_id, error); - let node_index = self.node_by_peer.remove(&peer_id) - .expect("node_by_peer is always kept in sync with the inner swarm"); - let infos = self.nodes_info.remove(&node_index) - .expect("nodes_info is always kept in sync with the inner swarm"); - debug_assert_eq!(infos.peer_id, peer_id); - return Ok(Async::Ready(Some(SwarmEvent::NodeClosed { - node_index, - peer_id, - closed_custom_protocols: infos.open_protocols, - }))); - }, - Async::Ready(RawSwarmEvent::DialError { multiaddr, error, .. }) => - return Ok(Async::Ready(Some(SwarmEvent::DialFail { - address: multiaddr, - error, - }))), - Async::Ready(RawSwarmEvent::UnknownPeerDialError { multiaddr, error, .. }) => - return Ok(Async::Ready(Some(SwarmEvent::DialFail { - address: multiaddr, - error, - }))), - Async::Ready(RawSwarmEvent::ListenerClosed { listen_addr, result, .. }) => { - warn!(target: "sub-libp2p", "Listener closed for {}: {:?}", listen_addr, result); - continue; - }, - Async::Ready(RawSwarmEvent::NodeEvent { peer_id, event }) => (peer_id, event), - Async::Ready(RawSwarmEvent::IncomingConnection(incoming)) => { - trace!(target: "sub-libp2p", "Incoming connection with {} on listener {}", - incoming.send_back_addr(), incoming.listen_addr()); - incoming.accept(SubstrateNodeHandler::new(self.registered_custom.clone())); - continue; - }, - Async::Ready(RawSwarmEvent::IncomingConnectionError { listen_addr, send_back_addr, error }) => { - trace!(target: "sub-libp2p", "Incoming connection with {} on listener {} \ - errored: {:?}", send_back_addr, listen_addr, error); - continue; - }, - Async::NotReady => return Ok(Async::NotReady), - }; - - if let Some(event) = self.handle_node_event(peer_id, node_event) { - return Ok(Async::Ready(Some(event))); - } - } - } -} diff --git a/core/network-libp2p/src/topology.rs b/core/network-libp2p/src/topology.rs index 061a3d1795..0bd3067076 100644 --- a/core/network-libp2p/src/topology.rs +++ b/core/network-libp2p/src/topology.rs @@ -15,10 +15,11 @@ // along with Substrate. If not, see .? use fnv::FnvHashMap; -use parking_lot::Mutex; -use libp2p::{Multiaddr, PeerId}; +use libp2p::{Multiaddr, PeerId, identify::IdentifyTopology, multihash::Multihash}; +use libp2p::core::{PublicKey, swarm::ConnectedPoint, topology::DisconnectReason, topology::Topology}; +use libp2p::kad::{KBucketsPeerId, KadConnectionType, KademliaTopology}; use serde_json; -use std::{cmp, fs}; +use std::{cmp, fs, iter, vec}; use std::io::{Read, Cursor, Error as IoError, ErrorKind as IoErrorKind, Write, BufReader, BufWriter}; use std::path::{Path, PathBuf}; use std::time::{Duration, Instant, SystemTime}; @@ -46,8 +47,6 @@ const KADEMLIA_DISCOVERY_EXPIRATION: Duration = Duration::from_secs(2 * 3600); const EXPIRATION_PUSH_BACK_CONNEC: Duration = Duration::from_secs(2 * 3600); /// Initial score that a bootstrap node receives when registered. const BOOTSTRAP_NODE_SCORE: u32 = 100; -/// Score modifier to apply on a peer that has been determined to be useless. -const USELESS_PEER_SCORE_CHANGE: i32 = -9; /// Time to live of a boostrap node. This only applies if you start the node later *without* /// that bootstrap node configured anymore. const BOOTSTRAP_NODE_EXPIRATION: Duration = Duration::from_secs(24 * 3600); @@ -63,15 +62,16 @@ const MAX_BACKOFF: Duration = Duration::from_secs(30 * 60); /// Stores information about the topology of the network. #[derive(Debug)] pub struct NetTopology { + /// The actual storage. Never contains a key for `local_peer_id`. store: FnvHashMap, + /// Optional path to the file that caches the serialized version of `store`. cache_path: Option, -} - -impl Default for NetTopology { - #[inline] - fn default() -> NetTopology { - NetTopology::memory() - } + /// Public key of the local node. + local_public_key: PublicKey, + /// PeerId of the local node. Derived from `local_public_key`. + local_peer_id: PeerId, + /// Known addresses for the local node to report to the network. + external_addresses: Vec, } impl NetTopology { @@ -79,10 +79,14 @@ impl NetTopology { /// /// `flush_to_disk()` will be a no-op. #[inline] - pub fn memory() -> NetTopology { + pub fn memory(local_public_key: PublicKey) -> NetTopology { + let local_peer_id = local_public_key.clone().into_peer_id(); NetTopology { store: Default::default(), cache_path: None, + local_peer_id, + local_public_key, + external_addresses: Vec::new(), } } @@ -92,19 +96,24 @@ impl NetTopology { /// or contains garbage data, the execution still continues. /// /// Calling `flush_to_disk()` in the future writes to the given path. - pub fn from_file>(path: P) -> NetTopology { + pub fn from_file>(local_public_key: PublicKey, path: P) -> NetTopology { let path = path.as_ref(); + let local_peer_id = local_public_key.clone().into_peer_id(); debug!(target: "sub-libp2p", "Initializing peer store for JSON file {:?}", path); + let store = try_load(path, &local_peer_id); NetTopology { - store: try_load(path), + store, cache_path: Some(path.to_owned()), + local_peer_id, + local_public_key, + external_addresses: Vec::new(), } } /// Writes the topology into the path passed to `from_file`. /// /// No-op if the object was created with `memory()`. - pub fn flush_to_disk(&self) -> Result<(), IoError> { + pub fn flush_to_disk(&mut self) -> Result<(), IoError> { let path = match self.cache_path { Some(ref p) => p, None => return Ok(()) @@ -112,10 +121,10 @@ impl NetTopology { let file = fs::File::create(path)?; // TODO: the capacity of the BufWriter is kind of arbitrary ; decide better - serialize(BufWriter::with_capacity(1024 * 1024, file), &self.store) + serialize(BufWriter::with_capacity(1024 * 1024, file), &mut self.store) } - /// Returns the number of peers in the topology. + /// Returns the number of peers in the topology, excluding the local peer. #[inline] pub fn num_peers(&self) -> usize { self.store.len() @@ -127,40 +136,19 @@ impl NetTopology { pub fn cleanup(&mut self) { let now_systime = SystemTime::now(); self.store.retain(|_, peer| { - peer.addrs.retain(|a| { - a.expires > now_systime || a.is_connected() - }); + let new_addrs = peer.addrs + .drain(..) + .filter(|a| a.expires > now_systime || a.is_connected()) + .collect(); + peer.addrs = new_addrs; !peer.addrs.is_empty() }); } - /// Returns the known potential addresses of a peer, ordered by score. Excludes backed-off - /// addresses. - /// - /// The boolean associated to each address indicates whether we're connected to it. - pub fn addrs_of_peer(&self, peer: &PeerId) -> impl Iterator { - let peer = if let Some(peer) = self.store.get(peer) { - peer - } else { - // TODO: use an EitherIterator or something - return Vec::new().into_iter(); - }; - - let now_st = SystemTime::now(); - let now_is = Instant::now(); - - let mut list = peer.addrs.iter().filter_map(move |addr| { - let (score, connected) = addr.score_and_is_connected(); - if (addr.expires >= now_st && score > 0 && addr.back_off_until < now_is) || connected { - Some((score, connected, &addr.addr)) - } else { - None - } - }).collect::>(); - list.sort_by(|a, b| a.0.cmp(&b.0)); - // TODO: meh, optimize - let l = list.into_iter().map(|(_, connec, addr)| (addr, connec)).collect::>(); - l.into_iter() + /// Add the external addresses that are known for the local node. + pub fn add_external_addrs(&mut self, addrs: TIter) + where TIter: Iterator { + self.external_addresses.extend(addrs); } /// Returns a list of all the known addresses of peers, ordered by the @@ -170,7 +158,7 @@ impl NetTopology { /// by itself over time. The `Instant` that is returned corresponds to /// the earlier known time when a new entry will be added automatically to /// the list. - pub fn addrs_to_attempt(&self) -> (impl Iterator, Instant) { + pub fn addrs_to_attempt(&mut self) -> (impl Iterator, Instant) { // TODO: optimize let now = Instant::now(); let now_systime = SystemTime::now(); @@ -179,20 +167,20 @@ impl NetTopology { let mut peer_addrs = Vec::new(); - 'peer_loop: for (peer, info) in &self.store { + 'peer_loop: for (peer, info) in &mut self.store { peer_addrs.clear(); - for addr in &info.addrs { + for addr in &mut info.addrs { let (score, is_connected) = addr.score_and_is_connected(); if is_connected { - continue 'peer_loop; + continue 'peer_loop } if score == 0 || addr.expires < now_systime { - continue; + continue } if addr.back_off_until > now { instant = cmp::min(instant, addr.back_off_until); - continue; + continue } peer_addrs.push(((peer, &addr.addr), score)); @@ -217,15 +205,19 @@ impl NetTopology { let peer = peer_access(&mut self.store, peer); let mut found = false; - peer.addrs.retain(|a| { - if a.expires < now_systime && !a.is_connected() { - return false; - } - if a.addr == addr { - found = true; - } - true - }); + let new_addrs = peer.addrs + .drain(..) + .filter_map(|a| { + if a.expires < now_systime && !a.is_connected() { + return None + } + if a.addr == addr { + found = true; + } + Some(a) + }) + .collect(); + peer.addrs = new_addrs; if !found { peer.addrs.push(Addr { @@ -233,50 +225,15 @@ impl NetTopology { expires: now_systime + BOOTSTRAP_NODE_EXPIRATION, back_off_until: now, next_back_off: FIRST_CONNECT_FAIL_BACKOFF, - score: Mutex::new(AddrScore { + score: AddrScore { connected_since: None, score: BOOTSTRAP_NODE_SCORE, latest_score_update: now, - }), + }, }); } } - /// Adds addresses that a node says it is listening on. - /// - /// The addresses are most likely to be valid. - /// - /// Returns `true` if the topology has changed in some way. Returns `false` if calling this - /// method was a no-op. - #[inline] - pub fn add_self_reported_listen_addrs( - &mut self, - peer_id: &PeerId, - addrs: I, - ) -> bool - where I: Iterator { - self.add_discovered_addrs(peer_id, addrs.map(|a| (a, true))) - } - - /// Adds addresses discovered through the Kademlia DHT. - /// - /// The addresses are not necessarily valid and should expire after a TTL. - /// - /// For each address, incorporates a boolean. If true, that means we have some sort of hint - /// that this address can be reached. - /// - /// Returns `true` if the topology has changed in some way. Returns `false` if calling this - /// method was a no-op. - #[inline] - pub fn add_kademlia_discovered_addrs( - &mut self, - peer_id: &PeerId, - addrs: I, - ) -> bool - where I: Iterator { - self.add_discovered_addrs(peer_id, addrs) - } - /// Inner implementaiton of the `add_*_discovered_addrs` methods. /// Returns `true` if the topology has changed in some way. Returns `false` if calling this /// method was a no-op. @@ -292,15 +249,19 @@ impl NetTopology { let peer = peer_access(&mut self.store, peer_id); - peer.addrs.retain(|a| { - if a.expires < now_systime && !a.is_connected() { - return false; - } - if let Some(pos) = addrs.iter().position(|&(ref addr, _)| addr == &a.addr) { - addrs.remove(pos); - } - true - }); + let new_addrs = peer.addrs + .drain(..) + .filter_map(|a| { + if a.expires < now_systime && !a.is_connected() { + return None + } + if let Some(pos) = addrs.iter().position(|&(ref addr, _)| addr == &a.addr) { + addrs.remove(pos); + } + Some(a) + }) + .collect(); + peer.addrs = new_addrs; let mut anything_changed = false; @@ -322,7 +283,7 @@ impl NetTopology { // Enforce `MAX_ADDRESSES_PER_PEER` before inserting, or skip this entry. while peer.addrs.len() >= MAX_ADDRESSES_PER_PEER { - let pos = peer.addrs.iter().position(|addr| addr.score() <= initial_score); + let pos = peer.addrs.iter_mut().position(|addr| addr.score() <= initial_score); if let Some(pos) = pos { let _ = peer.addrs.remove(pos); } else { @@ -336,23 +297,109 @@ impl NetTopology { expires: now_systime + KADEMLIA_DISCOVERY_EXPIRATION, back_off_until: now, next_back_off: FIRST_CONNECT_FAIL_BACKOFF, - score: Mutex::new(AddrScore { + score: AddrScore { connected_since: None, score: initial_score, latest_score_update: now, - }), + }, }); } anything_changed } +} + +impl KademliaTopology for NetTopology { + type ClosestPeersIter = vec::IntoIter; + type GetProvidersIter = iter::Empty; + + fn add_kad_discovered_address(&mut self, peer: PeerId, addr: Multiaddr, ty: KadConnectionType) { + self.add_discovered_addrs(&peer, iter::once((addr, ty == KadConnectionType::Connected))); + } + + fn closest_peers(&mut self, target: &Multihash, _max: usize) -> Self::ClosestPeersIter { + // TODO: very inefficient + let mut peers = self.store.keys().cloned().collect::>(); + peers.push(self.local_peer_id.clone()); + peers.sort_by(|a, b| { + b.as_ref().distance_with(target).cmp(&a.as_ref().distance_with(target)) + }); + peers.into_iter() + } + + fn add_provider(&mut self, _: Multihash, _: PeerId) { + // We don't implement ADD_PROVIDER/GET_PROVIDERS + } + + fn get_providers(&mut self, _: &Multihash) -> Self::GetProvidersIter { + // We don't implement ADD_PROVIDER/GET_PROVIDERS + iter::empty() + } +} + +impl IdentifyTopology for NetTopology { + #[inline] + fn add_identify_discovered_addrs(&mut self, peer: &PeerId, addrs: TIter) + where + TIter: Iterator + { + // These are addresses that peers indicate for themselves. + // The typical use case is: + // - A peer connects to one of our listening points. + // - We send an identify request to it, and it answers with a list of addresses. + // - If later it disconnects, we can try to dial it back through one of these addresses. + self.add_discovered_addrs(peer, addrs.map(move |a| (a, true))); + } +} + +impl Topology for NetTopology { + #[inline] + fn addresses_of_peer(&mut self, peer: &PeerId) -> Vec { + if peer == &self.local_peer_id { + return self.external_addresses.clone() + } + + let peer = if let Some(peer) = self.store.get_mut(peer) { + peer + } else { + return Vec::new() + }; + + let now_st = SystemTime::now(); + let now_is = Instant::now(); + + let mut list = peer.addrs.iter_mut().filter_map(move |addr| { + let (score, connected) = addr.score_and_is_connected(); + if (addr.expires >= now_st && score > 0 && addr.back_off_until < now_is) || connected { + Some((score, &addr.addr)) + } else { + None + } + }).collect::>(); + list.sort_by(|a, b| a.0.cmp(&b.0)); + // TODO: meh, optimize + list.into_iter().map(|(_, addr)| addr.clone()).collect::>() + } + + fn add_local_external_addrs(&mut self, addrs: TIter) + where TIter: Iterator { + self.add_external_addrs(addrs) + } + + fn local_peer_id(&self) -> &PeerId { + &self.local_peer_id + } + + fn local_public_key(&self) -> &PublicKey { + &self.local_public_key + } + + fn set_connected(&mut self, peer: &PeerId, endpoint: &ConnectedPoint) { + let addr = match endpoint { + ConnectedPoint::Dialer { address } => address, + ConnectedPoint::Listener { .. } => return + }; - /// Indicates the peer store that we're connected to this given address. - /// - /// This increases the score of the address that we connected to. Since we assume that only - /// one peer can be reached with any specific address, we also remove all addresses from other - /// peers that match the one we connected to. - pub fn report_connected(&mut self, addr: &Multiaddr, peer: &PeerId) { let now = Instant::now(); // Just making sure that we have an entry for this peer in `store`, but don't use it. @@ -364,20 +411,19 @@ impl NetTopology { addr.connected_now(CONNECTED_MINIMUM_SCORE); addr.back_off_until = now; addr.next_back_off = FIRST_CONNECT_FAIL_BACKOFF; - continue; + continue } - // TODO: a else block would be better, but we get borrowck errors info_in_store.addrs.push(Addr { addr: addr.clone(), expires: SystemTime::now() + EXPIRATION_PUSH_BACK_CONNEC, back_off_until: now, next_back_off: FIRST_CONNECT_FAIL_BACKOFF, - score: Mutex::new(AddrScore { + score: AddrScore { connected_since: Some(now), latest_score_update: now, score: CONNECTED_MINIMUM_SCORE, - }), + }, }); } else { @@ -391,17 +437,16 @@ impl NetTopology { } } - /// Indicates the peer store that we're disconnected from an address. - /// - /// There's no need to indicate a peer ID, as each address can only have one peer ID. - /// If we were indeed connected to this addr, then we can find out which peer ID it is. - pub fn report_disconnected(&mut self, addr: &Multiaddr, reason: DisconnectReason) { + fn set_disconnected(&mut self, _: &PeerId, endpoint: &ConnectedPoint, reason: DisconnectReason) { + let addr = match endpoint { + ConnectedPoint::Dialer { address } => address, + ConnectedPoint::Listener { .. } => return + }; + let score_diff = match reason { - DisconnectReason::NoSlot => -1, - DisconnectReason::FoundBetterAddr => -5, - DisconnectReason::RemoteClosed => -5, - DisconnectReason::Useless => -5, - DisconnectReason::Banned => -5, + DisconnectReason::Replaced => -3, + DisconnectReason::Graceful => -1, + DisconnectReason::Error => -5, }; for info in self.store.values_mut() { @@ -414,60 +459,28 @@ impl NetTopology { if a.expires < expires_push_back { a.expires = expires_push_back; } - return; + return } } } } - /// Indicates the peer store that we failed to connect to an address. - /// - /// We don't care about which peer is supposed to be behind that address. If we failed to dial - /// it for a specific peer, we would also fail to dial it for all peers that have this - /// address. - pub fn report_failed_to_connect(&mut self, addr: &Multiaddr) { + fn set_unreachable(&mut self, addr: &Multiaddr) { for info in self.store.values_mut() { for a in info.addrs.iter_mut() { - if &a.addr == addr { - a.adjust_score(SCORE_DIFF_ON_FAILED_TO_CONNECT); - trace!(target: "sub-libp2p", "Back off for {} = {:?}", addr, a.next_back_off); - a.back_off_until = Instant::now() + a.next_back_off; - a.next_back_off = cmp::min(a.next_back_off * FAIL_BACKOFF_MULTIPLIER, MAX_BACKOFF); + if &a.addr != addr { + continue } - } - } - } - /// Indicates the peer store that the given peer is useless. - /// - /// This decreases the scores of the addresses of that peer. - pub fn report_useless(&mut self, peer: &PeerId) { - for (peer_in_store, info_in_store) in self.store.iter_mut() { - if peer == peer_in_store { - for addr in info_in_store.addrs.iter_mut() { - addr.adjust_score(USELESS_PEER_SCORE_CHANGE); - } + a.adjust_score(SCORE_DIFF_ON_FAILED_TO_CONNECT); + trace!(target: "sub-libp2p", "Back off for {} = {:?}", addr, a.next_back_off); + a.back_off_until = Instant::now() + a.next_back_off; + a.next_back_off = cmp::min(a.next_back_off * FAIL_BACKOFF_MULTIPLIER, MAX_BACKOFF); } } } } -/// Reason why we disconnected from a peer. -#[derive(Debug)] -pub enum DisconnectReason { - /// No slot available locally anymore for this peer. - NoSlot, - /// A better way to connect to this peer has been found, therefore we disconnect from - /// the old one. - FoundBetterAddr, - /// The remote closed the connection. - RemoteClosed, - /// This node is considered useless for our needs. This includes time outs. - Useless, - /// The peer has been banned. - Banned, -} - fn peer_access<'a>(store: &'a mut FnvHashMap, peer: &PeerId) -> &'a mut PeerInfo { // TODO: should be optimizable if HashMap gets a better API store.entry(peer.clone()).or_insert_with(Default::default) @@ -488,17 +501,17 @@ struct Addr { next_back_off: Duration, /// Don't try to connect to this node until `Instant`. back_off_until: Instant, - score: Mutex, + score: AddrScore, } impl Clone for Addr { fn clone(&self) -> Addr { Addr { addr: self.addr.clone(), - expires: self.expires.clone(), - next_back_off: self.next_back_off.clone(), - back_off_until: self.back_off_until.clone(), - score: Mutex::new(self.score.lock().clone()), + expires: self.expires, + next_back_off: self.next_back_off, + back_off_until: self.back_off_until, + score: self.score.clone(), } } } @@ -516,58 +529,52 @@ struct AddrScore { impl Addr { /// Sets the addr to connected. If the score is lower than the given value, raises it to this /// value. - fn connected_now(&self, raise_to_min: u32) { - let mut score = self.score.lock(); + fn connected_now(&mut self, raise_to_min: u32) { let now = Instant::now(); - Addr::flush(&mut score, now); - score.connected_since = Some(now); - if score.score < raise_to_min { - score.score = raise_to_min; + Addr::flush(&mut self.score, now); + self.score.connected_since = Some(now); + if self.score.score < raise_to_min { + self.score.score = raise_to_min; } } /// Applies a modification to the score. - fn adjust_score(&self, score_diff: i32) { - let mut score = self.score.lock(); - Addr::flush(&mut score, Instant::now()); + fn adjust_score(&mut self, score_diff: i32) { + Addr::flush(&mut self.score, Instant::now()); if score_diff >= 0 { - score.score = cmp::min(MAX_SCORE, score.score + score_diff as u32); + self.score.score = cmp::min(MAX_SCORE, self.score.score + score_diff as u32); } else { - score.score = score.score.saturating_sub(-score_diff as u32); + self.score.score = self.score.score.saturating_sub(-score_diff as u32); } } /// Sets the addr to disconnected and applies a modification to the score. - fn disconnected_now(&self, score_diff: i32) { - let mut score = self.score.lock(); - Addr::flush(&mut score, Instant::now()); - score.connected_since = None; + fn disconnected_now(&mut self, score_diff: i32) { + Addr::flush(&mut self.score, Instant::now()); + self.score.connected_since = None; if score_diff >= 0 { - score.score = cmp::min(MAX_SCORE, score.score + score_diff as u32); + self.score.score = cmp::min(MAX_SCORE, self.score.score + score_diff as u32); } else { - score.score = score.score.saturating_sub(-score_diff as u32); + self.score.score = self.score.score.saturating_sub(-score_diff as u32); } } /// Returns true if we are connected to this addr. fn is_connected(&self) -> bool { - let score = self.score.lock(); - score.connected_since.is_some() + self.score.connected_since.is_some() } /// Returns the score, and true if we are connected to this addr. - fn score_and_is_connected(&self) -> (u32, bool) { - let mut score = self.score.lock(); - Addr::flush(&mut score, Instant::now()); - let is_connected = score.connected_since.is_some(); - (score.score, is_connected) + fn score_and_is_connected(&mut self) -> (u32, bool) { + Addr::flush(&mut self.score, Instant::now()); + let is_connected = self.score.connected_since.is_some(); + (self.score.score, is_connected) } /// Updates `score` and `latest_score_update`, and returns the score. - fn score(&self) -> u32 { - let mut score = self.score.lock(); - Addr::flush(&mut score, Instant::now()); - score.score + fn score(&mut self) -> u32 { + Addr::flush(&mut self.score, Instant::now()); + self.score.score } fn flush(score: &mut AddrScore, now: Instant) { @@ -588,8 +595,8 @@ impl Addr { /// Divides a `Duration` with a `Duration`. This exists in the stdlib but isn't stable yet. // TODO: remove this function once stable fn div_dur_with_dur(a: Duration, b: Duration) -> u32 { - let a_ms = a.as_secs() * 1_000_000 + (a.subsec_nanos() / 1_000) as u64; - let b_ms = b.as_secs() * 1_000_000 + (b.subsec_nanos() / 1_000) as u64; + let a_ms = a.as_secs() * 1_000_000 + u64::from(a.subsec_micros()); + let b_ms = b.as_secs() * 1_000_000 + u64::from(b.subsec_micros()); (a_ms / b_ms) as u32 } @@ -607,8 +614,8 @@ struct SerializedAddr { score: u32, } -impl<'a> From<&'a Addr> for SerializedAddr { - fn from(addr: &'a Addr) -> SerializedAddr { +impl<'a> From<&'a mut Addr> for SerializedAddr { + fn from(addr: &'a mut Addr) -> SerializedAddr { SerializedAddr { addr: addr.addr.to_string(), expires: addr.expires, @@ -618,9 +625,10 @@ impl<'a> From<&'a Addr> for SerializedAddr { } /// Attempts to load storage from a file. +/// Ignores any entry equal to `local_peer_id`. /// Deletes the file and returns an empty map if the file doesn't exist, cannot be opened /// or is corrupted. -fn try_load(path: impl AsRef) -> FnvHashMap { +fn try_load(path: impl AsRef, local_peer_id: &PeerId) -> FnvHashMap { let path = path.as_ref(); if !path.exists() { debug!(target: "sub-libp2p", "Peer storage file {:?} doesn't exist", path); @@ -664,7 +672,8 @@ fn try_load(path: impl AsRef) -> FnvHashMap { let data = Cursor::new(first_byte).chain(file); match serde_json::from_reader::<_, serde_json::Value>(data) { Ok(serde_json::Value::Null) => Default::default(), - Ok(serde_json::Value::Object(map)) => deserialize_tolerant(map.into_iter()), + Ok(serde_json::Value::Object(map)) => + deserialize_tolerant(map.into_iter(), local_peer_id), Ok(_) | Err(_) => { // The `Ok(_)` case means that the file doesn't contain a map. let _ = fs::remove_file(path); @@ -676,9 +685,10 @@ fn try_load(path: impl AsRef) -> FnvHashMap { /// Attempts to turn a deserialized version of the storage into the final version. /// -/// Skips entries that are invalid. +/// Skips entries that are invalid or equal to `local_peer_id`. fn deserialize_tolerant( - iter: impl Iterator + iter: impl Iterator, + local_peer_id: &PeerId ) -> FnvHashMap { let now = Instant::now(); let now_systime = SystemTime::now(); @@ -690,6 +700,10 @@ fn deserialize_tolerant( Err(_) => continue, }; + if &peer == local_peer_id { + continue + } + let info: SerializedPeerInfo = match serde_json::from_value(info) { Ok(i) => i, Err(_) => continue, @@ -711,16 +725,16 @@ fn deserialize_tolerant( expires: addr.expires, next_back_off: FIRST_CONNECT_FAIL_BACKOFF, back_off_until: now, - score: Mutex::new(AddrScore { + score: AddrScore { connected_since: None, score: addr.score, latest_score_update: now, - }), + }, }); } if addrs.is_empty() { - continue; + continue } out.insert(peer, PeerInfo { addrs }); @@ -732,18 +746,21 @@ fn deserialize_tolerant( /// Attempts to turn a deserialized version of the storage into the final version. /// /// Skips entries that are invalid or expired. -fn serialize(out: W, map: &FnvHashMap) -> Result<(), IoError> { +fn serialize(out: W, map: &mut FnvHashMap) -> Result<(), IoError> { let now = SystemTime::now(); - let array: FnvHashMap<_, _> = map.iter().filter_map(|(peer, info)| { + let array: FnvHashMap<_, _> = map.iter_mut().filter_map(|(peer, info)| { if info.addrs.is_empty() { return None } let peer = peer.to_base58(); let info = SerializedPeerInfo { - addrs: info.addrs.iter() - .filter(|a| a.expires > now || a.is_connected()) - .map(Into::into) + addrs: info.addrs.iter_mut() + .filter_map(|a| if a.expires > now || a.is_connected() { + Some(a.into()) + } else { + None + }) .collect(), }; diff --git a/core/network-libp2p/src/transport.rs b/core/network-libp2p/src/transport.rs index 89c6757bbc..b991917510 100644 --- a/core/network-libp2p/src/transport.rs +++ b/core/network-libp2p/src/transport.rs @@ -14,33 +14,33 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . -use libp2p::{self, PeerId, Transport, mplex, secio, yamux}; -use libp2p::core::{either, upgrade, transport::boxed::Boxed, muxing::StreamMuxerBox}; -use libp2p::transport_timeout::TransportTimeout; -use std::time::Duration; -use std::usize; +use futures::prelude::*; +use libp2p::{self, InboundUpgradeExt, OutboundUpgradeExt, PeerId, Transport, mplex, secio, yamux}; +use libp2p::core::{self, transport::boxed::Boxed, muxing::StreamMuxerBox}; +use std::{io, time::Duration, usize}; /// Builds the transport that serves as a common ground for all connections. pub fn build_transport( local_private_key: secio::SecioKeyPair -) -> Boxed<(PeerId, StreamMuxerBox)> { +) -> Boxed<(PeerId, StreamMuxerBox), io::Error> { let mut mplex_config = mplex::MplexConfig::new(); mplex_config.max_buffer_len_behaviour(mplex::MaxBufferBehaviour::Block); mplex_config.max_buffer_len(usize::MAX); - let base = libp2p::CommonTransport::new() + // TODO: rework the transport creation (https://github.com/libp2p/rust-libp2p/issues/783) + libp2p::tcp::TcpConfig::new() .with_upgrade(secio::SecioConfig::new(local_private_key)) .and_then(move |out, endpoint| { - let upgrade = upgrade::or( - upgrade::map(yamux::Config::default(), either::EitherOutput::First), - upgrade::map(mplex_config, either::EitherOutput::Second), - ); let peer_id = out.remote_key.into_peer_id(); - let upgrade = upgrade::map(upgrade, move |muxer| (peer_id, muxer)); - upgrade::apply(out.stream, upgrade, endpoint.into()) - }) - .map(|(id, muxer), _| (id, StreamMuxerBox::new(muxer))); + let peer_id2 = peer_id.clone(); + let upgrade = core::upgrade::SelectUpgrade::new(yamux::Config::default(), mplex_config) + .map_inbound(move |muxer| (peer_id, muxer)) + .map_outbound(move |muxer| (peer_id2, muxer)); - TransportTimeout::new(base, Duration::from_secs(20)) + core::upgrade::apply(out.stream, upgrade, endpoint) + .map(|(id, muxer)| (id, core::muxing::StreamMuxerBox::new(muxer))) + }) + .with_timeout(Duration::from_secs(20)) + .map_err(|err| io::Error::new(io::ErrorKind::Other, err)) .boxed() } diff --git a/core/network-libp2p/tests/test.rs b/core/network-libp2p/tests/test.rs new file mode 100644 index 0000000000..985a7c436e --- /dev/null +++ b/core/network-libp2p/tests/test.rs @@ -0,0 +1,83 @@ +// Copyright 2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +#[macro_use] +extern crate futures; +#[macro_use] +extern crate substrate_network_libp2p; +extern crate tokio; + +use futures::{future, prelude::*}; +use std::{io, iter}; +use substrate_network_libp2p::ServiceEvent; + +/// Builds two services. The second one has the first one as its bootstrap node. +/// This is to be used only for testing, and a panic will happen if something goes wrong. +fn build_two_nodes() -> (substrate_network_libp2p::Service, substrate_network_libp2p::Service) { + let service1 = { + let config = substrate_network_libp2p::NetworkConfiguration { + listen_addresses: vec![multiaddr![Ip4([127, 0, 0, 1]), Tcp(0u16)]], + ..substrate_network_libp2p::NetworkConfiguration ::default() + }; + let proto = substrate_network_libp2p::RegisteredProtocol::new(*b"tst", &[1]); + substrate_network_libp2p::start_service(config, iter::once(proto)).unwrap() + }; + + let service2 = { + let mut bootnode = service1.listeners().next().unwrap().clone(); + bootnode.append(libp2p::multiaddr::Protocol::P2p(service1.peer_id().clone().into())); + + let config = substrate_network_libp2p::NetworkConfiguration { + listen_addresses: vec![multiaddr![Ip4([127, 0, 0, 1]), Tcp(0u16)]], + boot_nodes: vec![bootnode.to_string()], + ..substrate_network_libp2p::NetworkConfiguration::default() + }; + let proto = substrate_network_libp2p::RegisteredProtocol::new(*b"tst", &[1]); + substrate_network_libp2p::start_service(config, iter::once(proto)).unwrap() + }; + + (service1, service2) +} + +#[test] +fn basic_two_nodes_connectivity() { + let (mut service1, mut service2) = build_two_nodes(); + + let fut1 = future::poll_fn(move || -> io::Result<_> { + match try_ready!(service1.poll()) { + Some(ServiceEvent::OpenedCustomProtocol { protocol, version, .. }) => { + assert_eq!(protocol, *b"tst"); + assert_eq!(version, 1); + Ok(Async::Ready(())) + }, + _ => panic!(), + } + }); + + let fut2 = future::poll_fn(move || -> io::Result<_> { + match try_ready!(service2.poll()) { + Some(ServiceEvent::OpenedCustomProtocol { protocol, version, .. }) => { + assert_eq!(protocol, *b"tst"); + assert_eq!(version, 1); + Ok(Async::Ready(())) + }, + _ => panic!(), + } + }); + + let combined = fut1.select(fut2).map_err(|(err, _)| err); + tokio::runtime::Runtime::new().unwrap().block_on_all(combined).unwrap(); +} diff --git a/core/network/src/service.rs b/core/network/src/service.rs index 501b5d6eb3..635b31566f 100644 --- a/core/network/src/service.rs +++ b/core/network/src/service.rs @@ -260,23 +260,11 @@ impl, H: ExHashT> ManageNetwork } fn deny_unreserved_peers(&self) { - // This method can disconnect nodes, in which case we have to properly close them in the - // protocol. - let disconnected = self.network.lock().deny_unreserved_peers(); - let mut net_sync = NetSyncIo::new(&self.network, self.protocol_id); - for node_index in disconnected { - self.handler.on_peer_disconnected(&mut net_sync, node_index) - } + self.network.lock().deny_unreserved_peers(); } fn remove_reserved_peer(&self, peer: PeerId) { - // This method can disconnect a node, in which case we have to properly close it in the - // protocol. - let disconnected = self.network.lock().remove_reserved_peer(peer); - if let Some(node_index) = disconnected { - let mut net_sync = NetSyncIo::new(&self.network, self.protocol_id); - self.handler.on_peer_disconnected(&mut net_sync, node_index) - } + self.network.lock().remove_reserved_peer(peer); } fn add_reserved_peer(&self, peer: String) -> Result<(), String> { @@ -388,12 +376,6 @@ fn run_thread, H: ExHashT>( let mut net_sync = NetSyncIo::new(&network_service, protocol_id); match event { - NetworkServiceEvent::NodeClosed { node_index, closed_custom_protocols } => { - if !closed_custom_protocols.is_empty() { - debug_assert_eq!(closed_custom_protocols, &[protocol_id]); - protocol.on_peer_disconnected(&mut net_sync, node_index); - } - } NetworkServiceEvent::ClosedCustomProtocols { node_index, protocols } => { if !protocols.is_empty() { debug_assert_eq!(protocols, &[protocol_id]); -- GitLab From f7514bd3cc982a21f6d30845d62b23bf3d74a96c Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Mon, 14 Jan 2019 13:42:20 +0100 Subject: [PATCH 063/349] Update CONTRIBUTING.adoc --- CONTRIBUTING.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index 10173e07a0..30bf3a1bb2 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -10,7 +10,7 @@ Individuals making significant and valuable contributions are given commit-acces There are a few basic ground-rules for contributors (including the maintainer(s) of the project): -. **No `--force` pushes** or modifying the Git history in any way. If you need to rebase, ensure you do it in your own repo. +. **No `--force` pushes** or modifying the master branch history in any way. If you need to rebase, ensure you do it in your own repo. . **Non-master branches**, prefixed with a short name moniker (e.g. `gav-my-feature`) must be used for ongoing work. . **All modifications** must be made in a **pull-request** to solicit feedback from other contributors. . A pull-request *must not be merged until CI* has finished successfully. -- GitLab From 56c7bb4f182eb1a1705259bd0203f2a4de940a43 Mon Sep 17 00:00:00 2001 From: Sergei Pepyakin Date: Mon, 14 Jan 2019 21:53:09 +0100 Subject: [PATCH 064/349] Update wabt to to not require python dependency (#1420) --- Cargo.lock | 12 ++++++------ core/executor/Cargo.toml | 2 +- core/sr-sandbox/Cargo.toml | 2 +- core/test-runtime/wasm/Cargo.lock | 12 ++++++------ .../substrate_test_runtime.compact.wasm | Bin 46028 -> 46045 bytes node/executor/Cargo.toml | 2 +- node/runtime/wasm/Cargo.lock | 12 ++++++------ .../release/node_runtime.compact.wasm | Bin 791154 -> 792120 bytes srml/contract/Cargo.toml | 2 +- 9 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4ec456004e..ecea328f3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1764,7 +1764,7 @@ dependencies = [ "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", "trie-root 0.9.0 (git+https://github.com/paritytech/trie)", - "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2690,7 +2690,7 @@ dependencies = [ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2802,7 +2802,7 @@ dependencies = [ "srml-support 0.1.0", "srml-system 0.1.0", "substrate-primitives 0.1.0", - "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3397,7 +3397,7 @@ dependencies = [ "substrate-serializer 0.1.0", "substrate-state-machine 0.1.0", "substrate-trie 0.4.0", - "wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -4288,7 +4288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wabt" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4797,7 +4797,7 @@ dependencies = [ "checksum vergen 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "93fb2d57fbc535fcd45548c99b141d2d960995daaf04b864c4d9fe1ea011c819" "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum wabt 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0246aa1834c47c5f3dd87c0932a2c78edd1e9318ced5e92a41f30a0ab4e3a91f" +"checksum wabt 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "74e463a508e390cc7447e70f640fbf44ad52e1bd095314ace1fdf99516d32add" "checksum wabt-sys 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "462336bb61096e64761730e0dea1bc8b777bd4e3689c7e813c81f1cfdf4e8a51" "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" "checksum wasmi 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "21ef487a11df1ed468cf613c78798c26282da5c30e9d49f824872d4c77b47d1d" diff --git a/core/executor/Cargo.toml b/core/executor/Cargo.toml index 594a34f964..aec2ccd2d4 100644 --- a/core/executor/Cargo.toml +++ b/core/executor/Cargo.toml @@ -22,7 +22,7 @@ log = "0.4" [dev-dependencies] assert_matches = "1.1" -wabt = "0.7" +wabt = "~0.7.4" hex-literal = "0.1.0" [features] diff --git a/core/sr-sandbox/Cargo.toml b/core/sr-sandbox/Cargo.toml index 2dc384f0fb..caa6552fbf 100755 --- a/core/sr-sandbox/Cargo.toml +++ b/core/sr-sandbox/Cargo.toml @@ -14,7 +14,7 @@ sr-std = { path = "../sr-std", default-features = false } parity-codec = { version = "2.1", default-features = false } [dev-dependencies] -wabt = "0.7" +wabt = "~0.7.4" assert_matches = "1.1" [features] diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 6bd62383c2..cb033b3aae 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -310,10 +310,10 @@ dependencies = [ [[package]] name = "kvdb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", ] [[package]] @@ -529,7 +529,7 @@ dependencies = [ [[package]] name = "parity-bytes" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" [[package]] name = "parity-codec" @@ -1020,7 +1020,7 @@ dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1594,7 +1594,7 @@ dependencies = [ "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" @@ -1621,7 +1621,7 @@ dependencies = [ "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-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 3b32eaae5b4fceef8dc3368b0ffa18a0fd59d501..828287ace52c5b19767c56b537ff2f8bba90ad6f 100644 GIT binary patch delta 2377 zcmaJ=eQ*`k72mt>CE+D`a9=_aUWj4&kOV`_-Q9b4?wdX!o|MsyuGJ#T4ht4QPy-IE>`VyT+Xi}a|e5n5D$*4bBmly3V zdL5<8l_D*v<>PYs_4M6nNvM zq^9E1Tz~Yz?Hg5eIBHmX3ql{sZ?&w4xL#^0L;$b0wy9`bs%<*#wCzFkzI?IGgNwYo zhVuYM?kz^ZX%AG%57rYj9u0(u&#)kE?J1NVKL^2(-AfR#lcDEq~_Jn$8C@ zIZY}+&YbdF(g_Vj4aw~rSPFH*4eHEk(R&*%7ooAIy5`G&xC`YvnI|XP|9*o=xxcz5 zT&ft~2kDvk7NsaR`xssHPN-;19t<`@>=%Pi;@IEb+6h8q#|3pdk@IM5wCk=Uq;hxn zawvgp>{uc9chskH|Je&pac(U7(<74z%JJ3?bJ~JPqvt+Q+}CqISY7Bz##Wy`dMm1k zvO7NnA&$9l*AwU!*}to@{*^ekC2?#sBeE7sl*U!FBZao3cy4mz^1WT%5MAr;$vEzj zd*{nea4`^(TLQPB^6UkpC}(*IhV?!iO*K&W~u z5l5-X2O*II(m?M=XXR1^V|n4}XJL?fpQ(cV@H4w%FCVCZ{kDNxFxWb9Q#!5O-v9F0 zsr|<${_v&}9UQ1ud;3dNn8QB!-TIPiRjgQwqHM~;N;}{rtUOqAfdASoUPUwfngR^0 zqWl`}RluJEmH~dAn7RKK$Z3#&3%C$a1;07KcVK}F<&uhJ{j)dsZcSok8OW0ftgHcC z4=eV!8u;2-{FbZyInaY&?YjQftNcfxUmc&Xz9ZqBf^`STrL*{pa8BOfd#@Y(_p2Az z`8eU&U}Zj5>H+TuECvh!Ay?&HzzpC8zzV=GAo{p)ae*{I0ayZ904x6DwYXHotAv=0|yx*1kpd4Q1sU zM^h3HX6Cti7_8zGK>Epc7pz{4tVeUs@pFJ@zmTLr-{aXnP)` zG!#^BI8MqK$cz#iIHqs0fLD`MwJYSAp_{O!Q{oslu>_^Q?>X|#R!lAOMdtC5o`w@buFfcmd5~HSvT5*gMd;fS0Jbj**Uh{Il2TxGkwZDi*hHl z4eraK(Hbm#gSnxAp$OwL`SScI#ZW2Fh3+%m6O=JSE{$sDx|~22ebe-yj*h%9YA=JI T#DHJN7MekHUauSVy0zke?_iC0 delta 2395 zcmZuweN0!^8NTQKet>*>0Rd5@S7!xEk#o;E_ug}XO@2+4hIXy2akX0vp8LgzR_LTe zlXmE4x;Cs*Jgu9Hon=^xbX}2~w6xt8w`Chkh_(ALabat>L|qtb`De=_%iMcGlqS2$ zInVn(=e+NE-uImQr|atUb#?q-D06P`f|A{*q~@ZV=sZF<q$LbE0IUDA42o;Vs>NNUF^_cxSqvsl}M7 zXJ{qS*3w@gSpDa^>KHbbSy`p9sO7=Pg-sc$Ra(K~=3Lm^z2%c6Dv4UFznz3*=4xL> zlhF&fIt>-eqoqaBMRQm!pFMs->8w?hdPUI_sjqiJiqn1j_4LjZ>PgMY0e&3)LzX*T zFduj7vtlJm>IeeyzjLb5ti0)L(^llj)=_FQdbmzcmy_m`(MOG+pqyjRUrUDXOx z&qY`6+ohtHqT22EAT%StvZDnw{cuMX0(hsXSw&M)Z8l(L%}>DmgJu^N(jFX30~p_# zgMicbmB}kD7)?c4UwQ!Pi5`LS3pACYNtq4m#qh)nVGW#`k9seUMr zYWFDFsg-7Q%{`~0N%>;13$$Mg{uXQhpsf>}y7sGaq58g$(B#Da2a{0BL)}}T1+uQa zO1{uulbQPWvyfCvO-8?cav=`9c#tkeU`cv*!^Zxe$06!!Pcn|0eQGNzib{KDz=<_y z9Xf_a3hUUY`2k^iN*Riv~}Y zt9>`~Rd|3$;7>b}+^%Yhr6@{Mnx?b@F2G2Gu?qOlui#a*#PbXdSVj2-tgC=O0xSZ& zo>*G{EBLwK{~B;T;EklF)B%1715zlTs+!z->h8Y1z;6bBA+dB$3)pc!4t(Vbe$Op_ z8ur0Ic6)!@Eq(^}mxH~0js!as27`JESMb-sPTt}BZU@}>?80q6E;tU@kgh2;fX#q8 zfL{iLT9qlle84M!C4hei^>O3k2I+vi0Sf>#V8mZs{3;mDt2Cup=~I-wV8opwfNKG( zL3W(rS@5d?&jZGteH;}IWumx1b2QT~E!H+w(d^5{&8t`#GxawnY)pPM#i{HWa zjxf6Py?Ip7-t|OKd$9Mg=;=Dpv9Hz-dgaHjY?L=n2XgN#ZU29{KJT+pQPuYoC~k=j~pB=m6wJyW&5zEdDs>KW`W^{ z+~>rWsk4t1QqK^?u+4xA)3w8}cu&KL*NWu)Svx;)h3in^Vsp`8C35I&MWIcE&3zJ3 zlQGL7=Gwit0`7)`iV6enI5@P0%5g(wmHcpYgBBXTLukN5;X`Qwlb2uLtPx@b%m|s!O>PmWKWp@^0!*+V zHX|OUp&_`l@!k{XN(<}i+Rc!0>boSwBDA<;%eK*7S{NF{XD)T2{la5ZPLFQVa1aK9 zm|n=3&qCjl{~fJZ9boL++;p&jd-OcX&Q<0IflUbGM&MD51K+EV&x~%QCsD8eJ!Y~>lOz(ynP)9+HRRptxJ3;)^Hd#0*81a`r;dJ zqkL)+hnk-4Gi>&|G#>hb zdfZ?n6r4hP-kqq>m@tVc96>Q-cIfzWeu8PHPbe0y0Y|$br=es~MIQWFa94&8{c@Ng XJEGPipFk>TnXMCSI5pU)!My5!Hu09w diff --git a/node/executor/Cargo.toml b/node/executor/Cargo.toml index 98cb1650ee..35e1d87200 100644 --- a/node/executor/Cargo.toml +++ b/node/executor/Cargo.toml @@ -29,7 +29,7 @@ srml-timestamp = { path = "../../srml/timestamp" } srml-treasury = { path = "../../srml/treasury" } srml-contract = { path = "../../srml/contract" } srml-grandpa = { path = "../../srml/grandpa" } -wabt = "0.7" +wabt = "~0.7.4" [features] benchmarks = [] diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index f1987f32d2..dcadee72d8 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -310,10 +310,10 @@ dependencies = [ [[package]] name = "kvdb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", ] [[package]] @@ -586,7 +586,7 @@ dependencies = [ [[package]] name = "parity-bytes" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" [[package]] name = "parity-codec" @@ -1380,7 +1380,7 @@ dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1938,7 +1938,7 @@ dependencies = [ "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" @@ -1965,7 +1965,7 @@ dependencies = [ "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-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index f0e4c77f77998fbfadaaeca112c6b3c6f6e871b7..5b177466a8dfe35a5addcea54248367bd0f1b3df 100644 GIT binary patch delta 156755 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

    > for Author whe }) } - fn unwatch_extrinsic(&self, _metadata: Self::Metadata, id: SubscriptionId) -> Result { + fn unwatch_extrinsic(&self, _metadata: Option, id: SubscriptionId) -> Result { Ok(self.subscriptions.cancel(id)) } } diff --git a/core/rpc/src/chain/mod.rs b/core/rpc/src/chain/mod.rs index c4e0899fa1..3f57bfe6fc 100644 --- a/core/rpc/src/chain/mod.rs +++ b/core/rpc/src/chain/mod.rs @@ -65,7 +65,7 @@ build_rpc_trait! { /// Unsubscribe from new head subscription. #[rpc(name = "chain_unsubscribeNewHead", alias = ["unsubscribe_newHead", ])] - fn unsubscribe_new_head(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_new_head(&self, Option, SubscriptionId) -> RpcResult; } #[pubsub(name = "chain_finalisedHead")] { @@ -75,7 +75,7 @@ build_rpc_trait! { /// Unsubscribe from new head subscription. #[rpc(name = "chain_unsubscribeFinalisedHeads")] - fn unsubscribe_finalised_heads(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_finalised_heads(&self, Option, SubscriptionId) -> RpcResult; } } } @@ -189,7 +189,7 @@ impl ChainApi, Sig ) } - fn unsubscribe_new_head(&self, _metadata: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_new_head(&self, _metadata: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } @@ -202,7 +202,7 @@ impl ChainApi, Sig ) } - fn unsubscribe_finalised_heads(&self, _metadata: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_finalised_heads(&self, _metadata: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } } diff --git a/core/rpc/src/state/mod.rs b/core/rpc/src/state/mod.rs index 19f4046aa8..209fe5bb3a 100644 --- a/core/rpc/src/state/mod.rs +++ b/core/rpc/src/state/mod.rs @@ -85,7 +85,7 @@ build_rpc_trait! { /// Unsubscribe from runtime version subscription #[rpc(name = "state_unsubscribeRuntimeVersion", alias = ["chain_unsubscribeRuntimeVersion", ])] - fn unsubscribe_runtime_version(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_runtime_version(&self, Option, SubscriptionId) -> RpcResult; } #[pubsub(name = "state_storage")] { @@ -95,7 +95,7 @@ build_rpc_trait! { /// Unsubscribe from storage subscription #[rpc(name = "state_unsubscribeStorage")] - fn unsubscribe_storage(&self, Self::Metadata, SubscriptionId) -> RpcResult; + fn unsubscribe_storage(&self, Option, SubscriptionId) -> RpcResult; } } } @@ -281,7 +281,7 @@ impl StateApi for State where }) } - fn unsubscribe_storage(&self, _meta: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_storage(&self, _meta: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } @@ -333,7 +333,7 @@ impl StateApi for State where }); } - fn unsubscribe_runtime_version(&self, _meta: Self::Metadata, id: SubscriptionId) -> RpcResult { + fn unsubscribe_runtime_version(&self, _meta: Option, id: SubscriptionId) -> RpcResult { Ok(self.subscriptions.cancel(id)) } } -- GitLab From 97e721116620abba6609de645ac541b6a7ba2b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Tue, 8 Jan 2019 22:44:39 +0100 Subject: [PATCH 037/349] Remove unneeded Deserialize impls. (#1370) --- Cargo.lock | 20 ++++++------- core/basic-authorship/src/basic_authorship.rs | 2 +- core/rpc-servers/src/lib.rs | 3 +- core/rpc/src/chain/mod.rs | 8 ++++-- core/rpc/src/lib.rs | 1 + core/service/src/components.rs | 3 +- core/sr-primitives/src/generic/block.rs | 28 ------------------- core/sr-primitives/src/generic/header.rs | 14 ---------- core/sr-primitives/src/traits.rs | 4 +-- 9 files changed, 22 insertions(+), 61 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1e242a9aeb..8b488369a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1088,7 +1088,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "jsonrpc-core" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1100,7 +1100,7 @@ dependencies = [ [[package]] name = "jsonrpc-http-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1113,7 +1113,7 @@ dependencies = [ [[package]] name = "jsonrpc-macros" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "jsonrpc-pubsub 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -1123,7 +1123,7 @@ dependencies = [ [[package]] name = "jsonrpc-pubsub" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1133,7 +1133,7 @@ dependencies = [ [[package]] name = "jsonrpc-server-utils" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1149,7 +1149,7 @@ dependencies = [ [[package]] name = "jsonrpc-ws-server" version = "9.0.0" -source = "git+https://github.com/paritytech/jsonrpc.git#0227e70fdce25cad9c71be222dc9e7f754c08033" +source = "git+https://github.com/paritytech/jsonrpc.git#24b9befa3389d9aa64b49b2573d1250143f17743" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "jsonrpc-core 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)", @@ -2358,7 +2358,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2379,7 +2379,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2416,7 +2416,7 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4363,7 +4363,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] diff --git a/core/basic-authorship/src/basic_authorship.rs b/core/basic-authorship/src/basic_authorship.rs index 0464d96dc4..d4d39c4541 100644 --- a/core/basic-authorship/src/basic_authorship.rs +++ b/core/basic-authorship/src/basic_authorship.rs @@ -26,7 +26,7 @@ use client::{self, error, Client as SubstrateClient, CallExecutor}; use client::{block_builder::api::BlockBuilder as BlockBuilderApi, runtime_api::Core}; use codec::{Decode, Encode}; use consensus_common::{self, evaluation}; -use primitives::{H256, Ed25519AuthorityId, ed25519, Blake2Hasher}; +use primitives::{H256, Blake2Hasher}; use runtime_primitives::traits::{Block as BlockT, Hash as HashT, Header as HeaderT, ProvideRuntimeApi, AuthorityIdFor}; use runtime_primitives::generic::BlockId; use runtime_primitives::BasicInherentData; diff --git a/core/rpc-servers/src/lib.rs b/core/rpc-servers/src/lib.rs index ec823b15fd..bef0d4a368 100644 --- a/core/rpc-servers/src/lib.rs +++ b/core/rpc-servers/src/lib.rs @@ -49,9 +49,8 @@ pub fn rpc_handler( ) -> RpcHandler where Block: BlockT + 'static, ExHash: Send + Sync + 'static + sr_primitives::Serialize + sr_primitives::DeserializeOwned, - SignedBlock: serde::Serialize + sr_primitives::DeserializeOwned, S: apis::state::StateApi, - C: apis::chain::ChainApi, SignedBlock, Metadata=Metadata>, + C: apis::chain::ChainApi, Block::Hash, Block::Header, SignedBlock, Metadata=Metadata>, A: apis::author::AuthorApi, Y: apis::system::SystemApi, { diff --git a/core/rpc/src/chain/mod.rs b/core/rpc/src/chain/mod.rs index 3f57bfe6fc..7675f42e22 100644 --- a/core/rpc/src/chain/mod.rs +++ b/core/rpc/src/chain/mod.rs @@ -26,6 +26,7 @@ use rpc::Result as RpcResult; use rpc::futures::{stream, Future, Sink, Stream}; use runtime_primitives::generic::{BlockId, SignedBlock}; use runtime_primitives::traits::{Block as BlockT, Header, NumberFor}; +use serde::Serialize; use subscriptions::Subscriptions; @@ -37,7 +38,10 @@ use self::error::Result; build_rpc_trait! { /// Substrate blockchain API - pub trait ChainApi { + pub trait ChainApi where + Header: Serialize, + SignedBlock: Serialize, + { type Metadata; /// Get header of a relay chain block. @@ -148,7 +152,7 @@ impl Chain where } } -impl ChainApi, SignedBlock> for Chain where +impl ChainApi, Block::Hash, Block::Header, SignedBlock> for Chain where Block: BlockT + 'static, B: client::backend::Backend + Send + Sync + 'static, E: client::CallExecutor + Send + Sync + 'static, diff --git a/core/rpc/src/lib.rs b/core/rpc/src/lib.rs index 2e7d4b1fa8..90caaaf291 100644 --- a/core/rpc/src/lib.rs +++ b/core/rpc/src/lib.rs @@ -22,6 +22,7 @@ extern crate jsonrpc_core as rpc; extern crate jsonrpc_pubsub; extern crate parity_codec as codec; extern crate parking_lot; +extern crate serde; extern crate serde_json; extern crate sr_primitives as runtime_primitives; extern crate sr_version as runtime_version; diff --git a/core/service/src/components.rs b/core/service/src/components.rs index 29b6768374..397e3d7a89 100644 --- a/core/service/src/components.rs +++ b/core/service/src/components.rs @@ -27,7 +27,7 @@ use consensus_common::import_queue::ImportQueue; use network::{self, OnDemand}; use substrate_executor::{NativeExecutor, NativeExecutionDispatch}; use transaction_pool::txpool::{self, Options as TransactionPoolOptions, Pool as TransactionPool}; -use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::{BlockId, SignedBlock}}; +use runtime_primitives::{BuildStorage, traits::{Block as BlockT, Header as HeaderT, ProvideRuntimeApi}, generic::BlockId}; use config::Configuration; use primitives::{Blake2Hasher, H256}; use rpc::{self, apis::system::SystemInfo}; @@ -136,7 +136,6 @@ pub trait StartRPC { impl StartRPC for C where C::RuntimeApi: Metadata>, - for<'de> SignedBlock>: ::serde::Deserialize<'de>, { type ServersHandle = (Option, Option>); diff --git a/core/sr-primitives/src/generic/block.rs b/core/sr-primitives/src/generic/block.rs index df9f656513..390bd22af5 100644 --- a/core/sr-primitives/src/generic/block.rs +++ b/core/sr-primitives/src/generic/block.rs @@ -19,10 +19,6 @@ #[cfg(feature = "std")] use std::fmt; -#[cfg(feature = "std")] -use serde::{Deserialize, Deserializer}; -#[cfg(feature = "std")] -use codec::Decode; use rstd::prelude::*; use codec::Codec; use traits::{self, Member, Block as BlockT, Header as HeaderT, MaybeSerialize}; @@ -73,17 +69,6 @@ pub struct Block { pub extrinsics: Vec, } -// TODO: Remove Deserialize for Block once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Header: 'a, Extrinsic: 'a + MaybeSerialize> Deserialize<'a> for Block where - Block: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} - impl traits::Block for Block where Header: HeaderT, @@ -118,16 +103,3 @@ pub struct SignedBlock { /// Block justification. pub justification: Option, } - -// TODO: Remove Deserialize for SignedBlock once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Block: BlockT,> Deserialize<'a> for SignedBlock where - Block::Header: 'a, - Block::Extrinsic: 'a + Codec + MaybeSerialize, - SignedBlock: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} diff --git a/core/sr-primitives/src/generic/header.rs b/core/sr-primitives/src/generic/header.rs index ec70d5d66b..3fed9e600d 100644 --- a/core/sr-primitives/src/generic/header.rs +++ b/core/sr-primitives/src/generic/header.rs @@ -16,9 +16,6 @@ //! Generic implementation of a block header. -#[cfg(feature = "std")] -use serde::{Deserialize, Deserializer}; - use codec::{Decode, Encode, Codec, Input, Output, HasCompact}; use traits::{self, Member, SimpleArithmetic, SimpleBitOps, MaybeDisplay, Hash as HashT, DigestItem as DigestItemT, MaybeSerializeDebug, MaybeSerializeDebugButNotDeserialize}; @@ -42,17 +39,6 @@ pub struct Header { pub digest: Digest, } -// TODO: Remove Deserialize for Header once RPC no longer needs it #1098 -#[cfg(feature = "std")] -impl<'a, Number: 'a, Hash: 'a + HashT, DigestItem: 'a> Deserialize<'a> for Header where - Header: Decode, -{ - fn deserialize>(de: D) -> Result { - let r = >::deserialize(de)?; - Decode::decode(&mut &r[..]).ok_or(::serde::de::Error::custom("Invalid value passed into decode")) - } -} - impl Decode for Header where Number: HasCompact, Hash: HashT, diff --git a/core/sr-primitives/src/traits.rs b/core/sr-primitives/src/traits.rs index 0354953bfb..67e441c792 100644 --- a/core/sr-primitives/src/traits.rs +++ b/core/sr-primitives/src/traits.rs @@ -441,7 +441,7 @@ impl Mem /// `parent_hash`, as well as a `digest` and a block `number`. /// /// You can also create a `new` one from those fields. -pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'static { +pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebugButNotDeserialize + 'static { type Number: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + SimpleArithmetic + Codec; type Hash: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]>; type Hashing: Hash; @@ -481,7 +481,7 @@ pub trait Header: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'stat /// `Extrinsic` piece of information as well as a `Header`. /// /// You can get an iterator over each of the `extrinsics` and retrieve the `header`. -pub trait Block: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebug + 'static { +pub trait Block: Clone + Send + Sync + Codec + Eq + MaybeSerializeDebugButNotDeserialize + 'static { type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize; type Header: Header; type Hash: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]>; -- GitLab From c68db9566a26fbc935df1b63e5906d0ff200f7c5 Mon Sep 17 00:00:00 2001 From: kyegupov Date: Wed, 9 Jan 2019 09:42:49 +0000 Subject: [PATCH 038/349] Some documentation for ext_ functions in Substrate Runtime API (#1369) * Some documentation for ext_ functions in Substrate Runtime API This would be useful for using non-Rust language to write Substrate-compatible modules and debugging modules at the WebAssembly level. * Update without_std.rs Update comment styles --- core/sr-io/without_std.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/core/sr-io/without_std.rs b/core/sr-io/without_std.rs index d0f112b76e..6cc5a15d7f 100644 --- a/core/sr-io/without_std.rs +++ b/core/sr-io/without_std.rs @@ -53,11 +53,23 @@ pub extern fn oom(_: ::core::alloc::Layout) -> ! { } } +/// Host functions, provided by the executor. +/// A WebAssembly runtime module would "import" these to access the execution environment +/// (most importantly, storage) or perform heavy hash calculations. +/// See also "ext_" functions in sr-sandbox and sr-std extern "C" { + /// Most of the functions below return fixed-size arrays (e.g. hashes) by writing them into + /// memory regions that should be preallocated by module. + /// Functions that return variable-sized data use host-side allocations. These should be + /// manually freed by the module. fn ext_free(addr: *mut u8); + + /// Printing, useful for debugging fn ext_print_utf8(utf8_data: *const u8, utf8_len: u32); fn ext_print_hex(data: *const u8, len: u32); fn ext_print_num(value: u64); + + /// Host storage access and verification fn ext_set_storage(key_data: *const u8, key_len: u32, value_data: *const u8, value_len: u32); fn ext_set_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, value_data: *const u8, value_len: u32); fn ext_clear_storage(key_data: *const u8, key_len: u32); @@ -66,18 +78,26 @@ extern "C" { fn ext_exists_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32) -> u32; fn ext_clear_prefix(prefix_data: *const u8, prefix_len: u32); fn ext_kill_child_storage(storage_key_data: *const u8, storage_key_len: u32); + /// Host-side result allocation fn ext_get_allocated_storage(key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8; + /// Host-side result allocation fn ext_get_allocated_child_storage(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, written_out: *mut u32) -> *mut u8; fn ext_get_storage_into(key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32; fn ext_get_child_storage_into(storage_key_data: *const u8, storage_key_len: u32, key_data: *const u8, key_len: u32, value_data: *mut u8, value_len: u32, value_offset: u32) -> u32; fn ext_storage_root(result: *mut u8); - fn ext_child_storage_root(storage_key_data: *const u8, storage_key_len: u32, written_out: *mut u32) -> *mut u8; + /// Host-side result allocation + fn ext_child_storage_root(storage_key_data: *const u8, storage_key_len: u32, written_out: *mut u32) -> *mut u8; fn ext_storage_changes_root(parent_hash_data: *const u8, parent_hash_len: u32, parent_num: u64, result: *mut u8) -> u32; - fn ext_blake2_256_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8); + + /// The current relay chain identifier. fn ext_chain_id() -> u64; + + /// Hash calculation and verification + fn ext_blake2_256_enumerated_trie_root(values_data: *const u8, lens_data: *const u32, lens_len: u32, result: *mut u8); fn ext_blake2_256(data: *const u8, len: u32, out: *mut u8); fn ext_twox_128(data: *const u8, len: u32, out: *mut u8); fn ext_twox_256(data: *const u8, len: u32, out: *mut u8); + /// Note: ext_ed25519_verify returns 0 if the signature is correct, nonzero otherwise. fn ext_ed25519_verify(msg_data: *const u8, msg_len: u32, sig_data: *const u8, pubkey_data: *const u8) -> u32; } -- GitLab From 9a9fb2ccd70faccfad151c357eba59ed135b3c95 Mon Sep 17 00:00:00 2001 From: Alexander Krupenkin Date: Wed, 9 Jan 2019 13:26:17 +0300 Subject: [PATCH 039/349] Fix duplicate sources (paritytech/polkadot#62) (#1351) --- Cargo.lock | 29 ++--------------------------- core/network-libp2p/Cargo.toml | 2 +- core/telemetry/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b488369a1..bf790171aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2064,11 +2064,6 @@ name = "parity-bytes" version = "0.1.0" source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" -[[package]] -name = "parity-bytes" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "parity-codec" version = "2.1.5" @@ -3651,7 +3646,7 @@ dependencies = [ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3829,7 +3824,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.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "ws 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -4645,24 +4640,6 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "ws" -version = "0.7.9" -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)", - "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "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)", - "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -4905,7 +4882,6 @@ dependencies = [ "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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-bytes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa5168b4cf41f3835e4bc6ffb32f51bc9365dc50cb351904595b3931d917fd0c" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1117f6574377d21309bfa1f7d69ff734120685d92b02c3f362b122585758840" @@ -5083,7 +5059,6 @@ dependencies = [ "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "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" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index d02652daa6..6eb7f39859 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -26,4 +26,4 @@ unsigned-varint = { version = "0.2.1", features = ["codec"] } [dev-dependencies] assert_matches = "1.2" -parity-bytes = "0.1" +parity-bytes = { git = "https://github.com/paritytech/parity-common", rev = "616b40150ded71f57f650067fcbc5c99d7c343e6" } diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index 7dda912792..8b05532913 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -12,4 +12,4 @@ slog = "^2" slog-json = "^2" slog-async = "^2" slog-scope = "^4" -ws = { version = "^0.7", features = ["ssl"] } +ws = { git = "https://github.com/tomusdrw/ws-rs" } -- GitLab From f2d171cbe0355ab9fe38fdc7bba559f76c3ecf96 Mon Sep 17 00:00:00 2001 From: kyegupov Date: Wed, 9 Jan 2019 10:27:53 +0000 Subject: [PATCH 040/349] Test compiled wasm code in test-runtime (#1364) * Test compiled wasm code in test-runtime * Drop lazy_static * Move substrate-executor to dev-dependencies --- Cargo.lock | 1 + core/test-runtime/Cargo.toml | 3 ++ core/test-runtime/src/lib.rs | 2 + core/test-runtime/src/system.rs | 46 +++++++++++++++--- .../substrate_test_runtime.compact.wasm | Bin 41771 -> 43197 bytes node/runtime/wasm/Cargo.lock | 2 +- 6 files changed, 47 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bf790171aa..8d5dd6ba47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3859,6 +3859,7 @@ dependencies = [ "srml-support 0.1.0", "substrate-client 0.1.0", "substrate-consensus-aura-primitives 0.1.0", + "substrate-executor 0.1.0", "substrate-keyring 0.1.0", "substrate-primitives 0.1.0", ] diff --git a/core/test-runtime/Cargo.toml b/core/test-runtime/Cargo.toml index d43cb5d0cf..49389a0b51 100644 --- a/core/test-runtime/Cargo.toml +++ b/core/test-runtime/Cargo.toml @@ -20,6 +20,9 @@ sr-primitives = { path = "../sr-primitives", default-features = false } sr-version = { path = "../sr-version", default-features = false } srml-support = { path = "../../srml/support", default-features = false } +[dev-dependencies] +substrate-executor = { path = "../executor" } + [features] default = ["std"] std = [ diff --git a/core/test-runtime/src/lib.rs b/core/test-runtime/src/lib.rs index 8aafd99791..eb5efdf684 100644 --- a/core/test-runtime/src/lib.rs +++ b/core/test-runtime/src/lib.rs @@ -45,6 +45,8 @@ extern crate substrate_keyring as keyring; #[cfg_attr(any(feature = "std", test), macro_use)] extern crate substrate_primitives as primitives; +#[cfg(test)] extern crate substrate_executor; + #[cfg(feature = "std")] pub mod genesismap; pub mod system; diff --git a/core/test-runtime/src/system.rs b/core/test-runtime/src/system.rs index 81cbabe906..19739b21cb 100644 --- a/core/test-runtime/src/system.rs +++ b/core/test-runtime/src/system.rs @@ -248,6 +248,10 @@ mod tests { use ::{Header, Digest, Extrinsic, Transfer}; use primitives::{Blake2Hasher}; use primitives::storage::well_known_keys; + use substrate_executor::WasmExecutor; + + const WASM_CODE: &'static [u8] = + include_bytes!("../wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm"); fn new_test_ext() -> TestExternalities { TestExternalities::new(map![ @@ -265,8 +269,7 @@ mod tests { Extrinsic { transfer: tx, signature } } - #[test] - fn block_import_works() { + fn block_import_works(block_executor: F) where F: Fn(Block, &mut TestExternalities) { let mut t = new_test_ext(); let h = Header { @@ -282,13 +285,27 @@ mod tests { extrinsics: vec![], }; - with_externalities(&mut t, || { - execute_block(b); + block_executor(b, &mut t); + + } + + #[test] + fn block_import_works_native() { + block_import_works(|b, ext| { + with_externalities(ext, || { + execute_block(b); + }); }); } #[test] - fn block_import_with_transaction_works() { + fn block_import_works_wasm() { + block_import_works(|b, ext| { + WasmExecutor::new().call(ext, 8, &WASM_CODE, "Core_execute_block", &b.encode()).unwrap(); + }) + } + + fn block_import_with_transaction_works(block_executor: F) where F: Fn(Block, &mut TestExternalities) { let mut t = new_test_ext(); with_externalities(&mut t, || { @@ -345,12 +362,29 @@ mod tests { ], }; + block_executor(b, &mut t); + with_externalities(&mut t, || { - execute_block(b); assert_eq!(balance_of(Keyring::Alice.to_raw_public().into()), 0); assert_eq!(balance_of(Keyring::Bob.to_raw_public().into()), 42); assert_eq!(balance_of(Keyring::Charlie.to_raw_public().into()), 69); }); } + + #[test] + fn block_import_with_transaction_works_native() { + block_import_with_transaction_works(|b, ext| { + with_externalities(ext, || { + execute_block(b); + }); + }); + } + + #[test] + fn block_import_with_transaction_works_wasm() { + block_import_with_transaction_works(|b, ext| { + WasmExecutor::new().call(ext, 8, &WASM_CODE, "Core_execute_block", &b.encode()).unwrap(); + }) + } } diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 56ba7e35f138a83916bd8f93c578ab046b606de7..1dd3d898b2b94f6108230e6c21b2afa010c1883b 100644 GIT binary patch delta 15812 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 delta 14084 zcmch8dvp}nnP=Uq>aKoD)e;hVAXMFeUPz#Rw?G6H7=eO~fq;#{8PShwOaqdU1i^{z zmc3q#ZS26_ArC)d?41c7$37vevpLx_lZ+;3HtWqvj&XK2!<-p=oSBn3WHNb;GkZMt z*t5UyR&}c-nA!iAz3rakQ8UJwfBhmeFQ&|J$`&LFZrmWhXBPX%aYv6@J7Es;FDC3 zM-~6MeN17J6b!0CkLq`;!Jt1F3^Mw~|IF=kOFj>C^Y1gm`~1au$zPVt=lOf=uKf{x z>*SO*o;@{l-{jQMnWNUUw5maXtTR^r)QmNr0|v*WHBAC|bOL>{$B#}|;A=y7STor| zb|yQ1!nu+9`B&rtwvPWmUdh(;pUWL=kbnKb&}~7NA@^Wrm!SbW_qL!r(CjyuIXlbl3}RkWEkzV`h`9Ofu9mWf%>`Qw zx4mP{ptiGFK(_@w_H1skSG2u>M!x`s-GL^1-q~4o$;?;^!HEpO61;KlG@DEA zps&g$!8R=H;-;4I11@HPH1Jp5{rsxdc+hRs>;q)2?jumUkLor6g+MGKT2KzSt2oFG z4%>n%mR#47lB59P<=|Yw-EN~tgd18jlYvg6>?i4yA%8?z$g53X1AHZRvr+_H8iOD^ z;!C1Y#S73XUbf((Ee9a4f;bA@kq9e6!q5?65?|;92`c1<|H`vQgL?ek|66a2{~vn8 z-}7$ZqrUZQl%MuJgx}x#_TqQD|0I6@oBwuiGtgHJx8BU_0=Kiv{7_(%)+hNdYLKFf zYMlQl(7h#uok5XEn?X^CzDkM&C@B&Hg+TxniUex81IwYs6-8nY1i=TsJJ?)??HCK{ zHsvvZYzgL)X)ZuXu*F;o^jgg24J?E5V0>61^`u!HHLA`Fo%M(nWJiUB>WYQxmM&Bl zD*?Q8C8$t+b)g2*SAq4y+}j~9pa5(F?I3VVY5)qwUqlV498^;k0u%BZN!5{GXG_pI z=MJ(hi(Y=*R1}i{peNs4zu7HrRsLB0DyH&R>Q^0f1l!)V5ImR?LJmA4RxKefpd{F} zkGIzJQ|VGaEGP;WCH^(yD&u#PU5m6G8%FED+S|7EBX z68T{$+2b>UMhFt%gUQzADr6J91CkU8n&pxSN=X0&(aCE|5YfkLGhT1U-8HEc_8N8O)p99P z2VyDyg`PA>h=`6Qt6c}2zLFm{$bid(!J!Vac~vc~mg;R!7cxEM>CW>1+Bglo-|p_7 z+r4ZL!|lsW_v81Un>%@|c@%dKG?zvDlMXb$d>iimVEOS7>8#uE>U8zO8aMNY|%%P@h$PqeRg zDW-utvvv8JDw2dZ^@c^!j*;;M`3Y;HZcGuvX3J zh=>yG@e!{*!}S&M&`oRc6&+uLS$m@+hTVMFF#x&jUHN0C{HM+qzhX+@_wsOyGQzt% zN0*DOX}}wQW04iGc>-PjSm&h`h*ykONT?qY3Jq_Cgn}w?uXw<3H#YjP-%=PG3w!y~ z#$PgJ?r8W5>(z|_2_!Zi0{K}0+D@KS-$uUHc}V_WncKVS_vG~y4-u7!%YswlYR5^S zgafzRe!ZQq>3WZ~^VaU(P6!IhZO>FDjf%u=}!Q5c-Nyd!1KTLhB zmVd=$H$Q*=?QL#zLFS89G&;8zv%T;is5A z&tO`Dl$#mq_lC64aj;~R89FaOdZLkxujKj$0vHq6eFpW5Rgq! zkD1C&5ST_nqSY~2R}qYRU@SC4C~!4bkVhya2WJ=JaTb6}TCxi8H8e^KWWx<5Cncom zN#7BF!l*OEi8hBt1XzoY;^3nYKA`m&0vCY~aKk?`ULvLelxRShP(Xt)RS>`xR%zSh z%H2V1yXq4uL9r1k6GkGWCks_UOSuUv)$kC3T-yb8L`(tdU^zQgp$LnxfjQbiP#YUy zT!W2@cnH`i6>Q+~^@cJnPhsc+eLS>9Y}clct7NupkR*xnUc=+{l3~+waqq5z`F7YKaw7tqmS}`c%;LmIwazin} zO8&#GLuHCCDJ*}@@Q0xENEo4Qk9=F$ zXDDG0$qfQAZ^`T={dU1Z+8L{A_()=cLSlkop-8q>d8AAOXq5oQkyQ!6^*Kpo03kE< zJd9?*aM4U2M>sUH$DRdytAR;q>lLF3he&NtrR_BjQ@lp_z*2eW;z4M6xD+X)L_idP zNv5g-5zCj7Z^I>!0&37O)P0-|*tc!xXwxe40-xV}_et2wxW3x1RG26NQ2b^Foa=8M z!{Y&Z3^Lk}7Dkx=`Rx2^$?UIvOtzbrdsiZcWr`c_ z%2npWqXxUdKRw#UTKJjKE(*?M^Gl54V7+9XqsaN{=rAPk7o!7F6%t6kO`^O^TH?{* z3Kn@Z3B==jwzrhg)A3~(2amnfgGnYlSgiw-;3jJw7-Bbc5sWk7P~puym}OqFy%{D| z49S2G8^MM0H4<7lGl_?a;jVb%cO=5Cp$f2%>*L@LPraT0rnyh1?Jj z{8k|#Hb&vM3b`&I_>ERT=zySKw01-5)zX&PN0D$gq{*HbP#|1jJHjd-9UE)VBVG#m zAVKgMR9Eoxm&TSiX_!SVVJ{*rr7_Ha8jiI#_+f2Cem9Gx#|z8V#or%0(zhL|VSaEH z)T+}d&b=&`z(WKk^hayA2tsjLA;If-odQr7$z!q&alm#eez9 zy@=$^oqKPZdw%KM0624hduN8C9btK$sTFU$JB6yJd94)Bz({fst*SRnp44*twxO zP^mhNx-go0zALAds}w6i53n+{lAu?Ww1mJYER+;pP(UTjDuto8UQ#E*8?sp@;Utq7 zssLegDzMfH3~^uu)=MxVP}LS`X0!sUu~$PCST%;!%s+t;g2PHhEH(3uvH)GFfC3D5 zISjcWQFw(>tz&!81*t>AA$HLtUuF?$lo}9;2s0#Hwg=sU8_ZPj1ihIlQx}k6J5-#U z14NXOq(T0a02yHsvno;s4=8$7q`k-h7kbW1)Kw06sB1vfT(FjXw;kR}-ij+s?nSt7Ulr*|^_d*_0p5J07MU@9v5sqxssQ-nBIu zjU+M}Nhp&|1lUuI6+Xrb_gB2L2ctfJX9s>?zjL2G1Aae#yoKMkyXh{`TQ+}JrcDqk zvUx$=+jjYy0=vA0A-0|eiG;16bz*8*D+glOSG@7waMP}?*|D1etr4*sG;Faa4pQs}D8-UK2vQIh*JrcRV<58ED0B-#U+gkVki^Z0 z2k^-r4`sa?Y~Jy`?Pb6zPl~9v-YaAiSmhqedz^dw;)7kJJk@JBw?w7hl(iWKY=PT{YAs&kd1rJ445XD7+?B$A^{J+T+Bp{7 zR4sJDRVh5WuL(#m;Jx6YYN1s(MU)Yd9+2Per4avbs`?1P6%+I&p(ieU%-@3 zQ79WR)hWUjp(8!w@9kU5mhsO0Y3AW~@9(J%XP?+_AgX+I|6V-$X#XGzjqC1;p!1%) z`V<%fet3W9&E4O)Ywfajzo~?g6d_1_jggE|465Coz}VrtqnK^t?sYeh{2zCx@aW^a zyRlH$fi?F1LBxwR&%MGzINa}%{|M8<`BvMsjF1S@4u(G$@}ZhQ?N+z^hX;$_iR8^^^JQ5aR1l$jQA<47onlPf%hHkZgtw&6HyXAR|F!m-pWe{+w2&OA`?O2 z_ld4wI2gwczJHL&_Tj+}+_xU0otcMP@O$vk?nPGU7l)eAR_;xc!5F@`zX=8dCvOAx z$(v&@9_J6;+j9#{Na|#rYOO2guHQQ$LlCx)uWS^8@N4*U*@OkNxqW7Q1*$oh#{0pF z?~W7CKN#<-Wkug%;`z?QLmGlc_;56UJ3shJ&J((%@o zM-Uw8Y56>QQFKJTObNaRnb?&5RGc8u59t&2ZP@SS*{1+&1uDao-rpg*DfKA!C6;rpK5Zc>R0;-Eov+^81} zNIyM0Lg6XG0#QEr+q0s40LAK&{`#yaA4sN#R6*oS@ZQJ)!WvH=UDeu1wEHs|xfib2 zWjlEXEmeN<=qjkwrK4Rqf%EEQVm%dmYJl0`WIM?Qc#s0|9Ts8V*Wlw+ooZcrn8_m; zr-4Ht5>;bK({VvyNqY<8YD;3}Ia~C6TQGn@5yQ1X0tqPahb*zzg?t&1r>e!~_mxB# z^@URZILZ5${(}=nIT07p+m?9H)wyw223>4GopY^ps9c?XKU*tg*3Wy7wbvTMUB^11 z8WYD_`cO85&XP}o-K)W&Cb3t;P@1rd&&JyMPccyEuH$RBij)J9>tbe76^d#>4l_|0 zsW8(fs>9GaVoDuy|Mi5ma zF94IECWj;N$tO|&iJw@FJsmi)vQfi^yc8#cN_I}5@h48K8KenF^@P}5W+>Z~Zx4D+ z)UOPhwjG5K4dx0J62B>*#+2`zSS|DwJ#mVLXr5-=SwcT~J-ZA!Kqs8AB2Cc6VG$iO zL9fLwbVQ$;5zra(y8x%=* z&`TtU0q_{ouS#0}=0s<}Wz>oDK7_j(|6pPtICizX3f49b^xSA7Jw~M-2dP2?{QYfd1^~_OG{ATt4^-(vKj8sRzxYLK{yZ_2~ExH zgjMA;CpTiot0(Wk@5d*5Q1I`bT8$#X?Nd8gh+mqrko$i)HG=!$>HfR)2<(F!6XKrQyzdxC2ZmqcT z9uN~zh9L|)ltAJ7sRBQJYWZ5w#j(t&wV>!IM0*1av#2iPvSl9r>4KWZ3CBO4>Z)7R z-_H-99$O3w@ZX#s+XF!bUE~>ay0k$$41*HZ77Yyky9;5k8?^`o5$2f^YNE2)!@u*H z?){ALYL~oDBJq^ zzB2~%@l$68%5`QZR>Ks>sPc+%8?-4!>Ww;jrNUXd9`2czuBW8|rND!ht*2!v=)hs6 z7OtmDJuOd0x!y6Bi=@%EqcyT>Y;d|&lGp`13_Z2GS8rx3sjm&;^^fjEY;fq&)$)y} z_#=<*D#Ng2yY&mZCY3aVk#qJXP784SjzSPjAD$xIrUHxYh67Z}v|-iaOu&u+s9)8y zgVQJ-L4qaNy?UH88$K#p@6m{Kusd`rh5gS&e6T_&PlI#;BAsw{G=wa&mxyW;P@GC3 zkR=|XXyw==6q5PR9=NNY-jXp8PYRt3(NK>OqFM$W1y`&%SnCPv3V%uM;O9Qu(TDX! z;z1fP&(IBi^)MzDo}>wF#H@eH2tEGhXVdE&iFY@RQU0AVk#euH1Ca`Xf$p|Or?AeD1}5A3*72N^}a6X3bfn;2ZZkbCf?yYmacBx zDaue_gIHa^o!^M>mxM_H(cP^LpiS>S;sk!^^z_aYBK=_3$0=bDiZ{*yi$uGRzsVI_xDGrhn944J#vKmn18G zTY79MsuMVplH$~73_+~WB^O@b35s{>oVpXVh|xR-=uM@kde9pMM}oi>Ii)9b()=et zp!D=un>$-V~y!ftDdvfgV%+ybgs9;8&^oA%#LM6OjO5LidE`flZz;&gB5q z22dUK*1Y@UyJ>h%)^g&x7=L9AUmqJ@WYQ!W7jCE;`ignI}JMnBy;7a#7`!Jgm<&ZAi?EB zbT*xvrVRAIoQt->a96g2HB(~EU)yVbbS~K>Ubw+wktCv2gS7)!yleQx@1y?kizoUJ ze6&2dsOI#^Cs!goJ^Ew^rT8AKb^ghSr{anDH=kTf3;*qtJyak;a3#pp#~6+jMQ`J& zm1RVPK%JSdJ_T3$Wu+wUC_!(r?<%hn`|TH40{(6>D+uJT zycr@v7#aS_JKL$ICh2gNiXSJhbf77rA94hoLQtS7>Dv%!GJg80ohUJV_o)piD}D6T z@8C6-d(YDwF%O)70Ke~@@5XQY(>+cwiNnfnL&2LdVJw9MG>8(!m$tLz(trHs*~`y7 ze))WPZsO@F#zy#0p7~nzN=Qbs3Fqp+p(ODh2o95_zf*PT0Inb6&xODDnJ#Ur!1=d7 z-|n45k2oNI!hiDl_2t!Qtw!s6iamZe?q&S_3)($3@OvHj7XimBIMx1n2YwmzG~&K8 z`;T$2;%_PZ?-#?%)dBzLJh2;OfzIsR36FfAk;2pGN}vAK*bV8oEc9g1G(-+AX*yz4int zz}KRk#g!1rV55vzLZ>^h>Mx+n09m1D7Iv%@=z3`Y&~%y?XA_ z7cz|h#TOqcp9`xK*%KC<4eyX{@gW9VMqf7^S@_6e93Ns#%1b`VP-;GwxX(JHF8wmY zb@N9VZu@(TK+Ojk8ehj+S9%tGi{Y)A8J}VJ_+hrX*gJSP5NM>kW9p4 z=~O14&*ZZ?{^FOro3e#ywh$}k(}{EAviqUK; zm9gS_V0?V))bz}__{Jkt=d`9Q(QfdFXOojB8hOvNiBK+^PRE9#Ry<#fWn$6HGJfLO zjSab>Vk(s=rV9CVHX4nmn?B9=Jhze0Ki?3_7ZXEqE0)eghw_QRe5{$bJl7qv64{|4 zE0aj&FkR6~Ea$tQ+tXMW%*S(CD~k=K)A?wu+t!Fr7{0^2u0x zWq+Uoebcg{v3B?4pS7kYtwINX=!I}7iCxCyiCC%_&1DN#aV7uy3tdg|XgZxJW~@Xq znJcD?(azX#*FIi;xw9c-Me|lHA5SHcu|hJLGVq%J3$4pGY`8C%O2!8C1;<0$l%48Bf z{Ph<*Lzb1y=h8z%g_xDj4;50q{OuRp8gkKMESirN3b~=&&`>VZH^AR{v6**X);8vn z$zmo~EDpwo^2ul}zV_B%==9(GfzH5O_VUxLzL-dntR^hW0&Ujeqn&#1x(Wg8tKKItkf51Zdd;*wdQn6yJSSY4434Gww!IJpE zr&UdTT^Xi5&%N_|=h%iqVknc%Mu&=pR3Vd1-{Rw+%&ouu8RD0}8a`Z%7m9-k&_5N6 z0o(Y7kWi1Db>!&8_^FA{9Gxg^^g*JI*xEEqx^-mSk+n^B%h9Y)gckZaa<@4psQNEo z)kCT5U_KRxE~JOzDTvJo@3^udlqjUEVm5ANz^^Q%+T{0LfuI&*sl1gaBr?$aR64eW zKYIo2ji-~*LC`gmLHA;QD}U=sJd`RX64|r`0nJ;5f|a?AH@(tjq@&SfHk(c6@`F~Y zSls45VV%I2W}|e?-~YgNe(05vNPOMkz{Jrb_stxC!03rWa#N|~kY&UMqnUwdY#^5G F{l8P%R)zoo diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 1a8cd74f4e..f318f56846 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -1059,7 +1059,7 @@ dependencies = [ ] [[package]] -name = "sr-sandbox" +name = "sr-" version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", -- GitLab From b3a0a775887c4430edfe4cc0c12ded06c7db0241 Mon Sep 17 00:00:00 2001 From: Drew Stone Date: Wed, 9 Jan 2019 13:18:09 +0200 Subject: [PATCH 041/349] drew.tupletimestamp - Add tuple macro for timestamps too, break macro out into support (#1372) * Add tuple and dont mess up spacing * Update lib.rs * Add timestamp tuple macro : * Tabs * Add docs. --- srml/session/src/lib.rs | 13 +------------ srml/support/src/lib.rs | 15 +++++++++++++++ srml/timestamp/src/lib.rs | 24 +++++++++++++++--------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/srml/session/src/lib.rs b/srml/session/src/lib.rs index 05381e6df9..ea33395021 100644 --- a/srml/session/src/lib.rs +++ b/srml/session/src/lib.rs @@ -42,6 +42,7 @@ use primitives::traits::{As, Zero, One, Convert}; use codec::HasCompact; use runtime_support::{StorageValue, StorageMap}; use runtime_support::dispatch::Result; +use runtime_support::for_each_tuple; use system::ensure_signed; use rstd::ops::Mul; @@ -51,17 +52,6 @@ pub trait OnSessionChange { fn on_session_change(time_elapsed: T, should_reward: bool); } -macro_rules! for_each_tuple { - ($m:ident) => { - for_each_tuple! { @IMPL $m !! A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, } - }; - (@IMPL $m:ident !!) => { $m! { } }; - (@IMPL $m:ident !! $h:ident, $($t:ident,)*) => { - $m! { $h $($t)* } - for_each_tuple! { @IMPL $m !! $($t,)* } - } -} - macro_rules! impl_session_change { () => ( impl OnSessionChange for () { @@ -80,7 +70,6 @@ macro_rules! impl_session_change { for_each_tuple!(impl_session_change); - pub trait Trait: timestamp::Trait { type ConvertAccountIdToSessionKey: Convert; type OnSessionChange: OnSessionChange; diff --git a/srml/support/src/lib.rs b/srml/support/src/lib.rs index 76cb70a063..6ab77d9b58 100644 --- a/srml/support/src/lib.rs +++ b/srml/support/src/lib.rs @@ -134,3 +134,18 @@ pub use mashup::*; #[cfg(feature = "std")] #[doc(hidden)] pub use serde_derive::*; + +/// Programatically create derivations for tuples of up to 19 elements. You provide a second macro +/// which is called once per tuple size, along with a number of identifiers, one for each element +/// of the tuple. +#[macro_export] +macro_rules! for_each_tuple { + ($m:ident) => { + for_each_tuple! { @IMPL $m !! A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, } + }; + (@IMPL $m:ident !!) => { $m! { } }; + (@IMPL $m:ident !! $h:ident, $($t:ident,)*) => { + $m! { $h $($t)* } + for_each_tuple! { @IMPL $m !! $($t,)* } + } +} diff --git a/srml/timestamp/src/lib.rs b/srml/timestamp/src/lib.rs index 0d9360b747..27dcc81bab 100644 --- a/srml/timestamp/src/lib.rs +++ b/srml/timestamp/src/lib.rs @@ -55,25 +55,31 @@ use runtime_primitives::traits::{ }; use system::ensure_inherent; use rstd::{result, ops::{Mul, Div}, vec::Vec}; +use runtime_support::for_each_tuple; /// A trait which is called when the timestamp is set. pub trait OnTimestampSet { fn on_timestamp_set(moment: Moment); } -impl OnTimestampSet for () { - fn on_timestamp_set(_moment: Moment) { } -} +macro_rules! impl_timestamp_set { + () => ( + impl OnTimestampSet for () { + fn on_timestamp_set(_: Moment) {} + } + ); -impl OnTimestampSet for (A, B) - where A: OnTimestampSet, B: OnTimestampSet -{ - fn on_timestamp_set(moment: Moment) { - A::on_timestamp_set(moment.clone()); - B::on_timestamp_set(moment); + ( $($t:ident)* ) => { + impl),*> OnTimestampSet for ($($t,)*) { + fn on_timestamp_set(moment: Moment) { + $($t::on_timestamp_set(moment.clone());)* + } + } } } +for_each_tuple!(impl_timestamp_set); + pub trait Trait: consensus::Trait + system::Trait { /// The position of the required timestamp-set extrinsic. const TIMESTAMP_SET_POSITION: u32; -- GitLab From 25c0e7f232115a9dae781967aa6f1bbf4e181de9 Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Thu, 10 Jan 2019 00:18:24 +1300 Subject: [PATCH 042/349] expose peer information via rpc (#1362) * expose peer information via rpc * fixes tests * cleanup Co-Authored-By: xlc * Update docs Co-Authored-By: xlc * Add missing docs * keep original type for PeerInfo best_hash/best_number * cleanup * Update mod.rs --- core/network-libp2p/src/lib.rs | 2 +- core/network/src/lib.rs | 2 +- core/network/src/protocol.rs | 14 ++++++++++++++ core/network/src/service.rs | 12 +++++++++++- core/rpc-servers/src/lib.rs | 2 +- core/rpc/src/system/helpers.rs | 17 +++++++++++++++++ core/rpc/src/system/mod.rs | 23 +++++++++++++++++++---- core/rpc/src/system/tests.rs | 28 +++++++++++++++++++++++++++- 8 files changed, 91 insertions(+), 9 deletions(-) diff --git a/core/network-libp2p/src/lib.rs b/core/network-libp2p/src/lib.rs index 8c5df15c49..6890450763 100644 --- a/core/network-libp2p/src/lib.rs +++ b/core/network-libp2p/src/lib.rs @@ -53,7 +53,7 @@ mod transport; pub use custom_proto::RegisteredProtocol; pub use error::{Error, ErrorKind, DisconnectReason}; -pub use libp2p::{Multiaddr, multiaddr::{Protocol}, multiaddr, PeerId}; +pub use libp2p::{Multiaddr, multiaddr::{Protocol}, multiaddr, PeerId, core::PublicKey}; pub use secret::obtain_private_key; pub use service_task::{start_service, Service, ServiceEvent}; pub use traits::{NetworkConfiguration, NodeIndex, NodeId, NonReservedPeerMode}; diff --git a/core/network/src/lib.rs b/core/network/src/lib.rs index 5f10051b15..95b6d68113 100644 --- a/core/network/src/lib.rs +++ b/core/network/src/lib.rs @@ -69,7 +69,7 @@ pub use protocol::{ProtocolStatus, PeerInfo, Context}; pub use sync::{Status as SyncStatus, SyncState}; pub use network_libp2p::{ NodeIndex, ProtocolId, Severity, Protocol, Multiaddr, - obtain_private_key, multiaddr, + obtain_private_key, multiaddr, PeerId, PublicKey }; pub use message::{generic as generic_message, RequestId, Status as StatusMessage}; pub use error::Error; diff --git a/core/network/src/protocol.rs b/core/network/src/protocol.rs index 42c5954532..41612c788d 100644 --- a/core/network/src/protocol.rs +++ b/core/network/src/protocol.rs @@ -240,6 +240,20 @@ impl, H: ExHashT> Protocol { } } + pub fn peers(&self) -> Vec<(NodeIndex, PeerInfo)> { + self.context_data.peers.read().iter().map(|(idx, p)| { + ( + *idx, + PeerInfo { + roles: p.roles, + protocol_version: p.protocol_version, + best_hash: p.best_hash, + best_number: p.best_number, + } + ) + }).collect() + } + pub fn handle_packet(&self, io: &mut SyncIo, who: NodeIndex, mut data: &[u8]) { let message: Message = match Decode::decode(&mut data) { Some(m) => m, diff --git a/core/network/src/service.rs b/core/network/src/service.rs index 5487accd1b..501b5d6eb3 100644 --- a/core/network/src/service.rs +++ b/core/network/src/service.rs @@ -26,7 +26,7 @@ use network_libp2p::{RegisteredProtocol, parse_str_addr, Protocol as Libp2pProto use io::NetSyncIo; use consensus::import_queue::{ImportQueue, Link}; use consensus_gossip::ConsensusGossip; -use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus}; +use protocol::{self, Protocol, ProtocolContext, Context, ProtocolStatus, PeerInfo}; use config::Params; use error::Error; use specialization::NetworkSpecialization; @@ -45,6 +45,8 @@ const PROPAGATE_TIMEOUT: Duration = Duration::from_millis(5000); pub trait SyncProvider: Send + Sync { /// Get sync status fn status(&self) -> ProtocolStatus; + /// Get currently connected peers + fn peers(&self) -> Vec<(NodeIndex, Option, PeerInfo)>; } /// Minimum Requirements for a Hash within Networking @@ -228,6 +230,14 @@ impl, H: ExHashT> SyncProvider< fn status(&self) -> ProtocolStatus { self.handler.status() } + + fn peers(&self) -> Vec<(NodeIndex, Option, PeerInfo)> { + let peers = self.handler.peers(); + let network = self.network.lock(); + peers.into_iter().map(|(idx, info)| { + (idx, network.peer_id_of_node(idx).map(|p| p.clone()), info) + }).collect::>() + } } /// Trait for managing network diff --git a/core/rpc-servers/src/lib.rs b/core/rpc-servers/src/lib.rs index bef0d4a368..fb09799ef5 100644 --- a/core/rpc-servers/src/lib.rs +++ b/core/rpc-servers/src/lib.rs @@ -52,7 +52,7 @@ pub fn rpc_handler( S: apis::state::StateApi, C: apis::chain::ChainApi, Block::Hash, Block::Header, SignedBlock, Metadata=Metadata>, A: apis::author::AuthorApi, - Y: apis::system::SystemApi, + Y: apis::system::SystemApi>, { let mut io = pubsub::PubSubHandler::default(); io.extend_with(state.to_delegate()); diff --git a/core/rpc/src/system/helpers.rs b/core/rpc/src/system/helpers.rs index 0d3b7e56cd..5a679de0ad 100644 --- a/core/rpc/src/system/helpers.rs +++ b/core/rpc/src/system/helpers.rs @@ -45,6 +45,23 @@ pub struct Health { pub is_syncing: bool, } +/// Network Peer information +#[derive(Debug, PartialEq, Serialize)] +pub struct PeerInfo { + /// Peer Node Index + pub index: usize, + /// Peer ID + pub peer_id: String, + /// Roles + pub roles: String, + /// Protocol version + pub protocol_version: u32, + /// Peer best block hash + pub best_hash: Hash, + /// Peer best block number + pub best_number: Number, +} + impl fmt::Display for Health { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { write!(fmt, "{} peers ({})", self.peers, if self.is_syncing { diff --git a/core/rpc/src/system/mod.rs b/core/rpc/src/system/mod.rs index 634dd1c063..1d33104483 100644 --- a/core/rpc/src/system/mod.rs +++ b/core/rpc/src/system/mod.rs @@ -24,14 +24,14 @@ mod tests; use std::sync::Arc; use network; -use runtime_primitives::traits; +use runtime_primitives::traits::{self, Header as HeaderT}; use self::error::Result; -pub use self::helpers::{Properties, SystemInfo, Health}; +pub use self::helpers::{Properties, SystemInfo, Health, PeerInfo}; build_rpc_trait! { /// Substrate system RPC API - pub trait SystemApi { + pub trait SystemApi { /// Get the node's implementation name. Plain old string. #[rpc(name = "system_name")] fn system_name(&self) -> Result; @@ -55,6 +55,10 @@ build_rpc_trait! { /// - not performing a major sync #[rpc(name = "system_health")] fn system_health(&self) -> Result; + + /// Returns currently connected peers + #[rpc(name = "system_peers")] + fn system_peers(&self) -> Result>>; } } @@ -80,7 +84,7 @@ impl System { } } -impl SystemApi for System { +impl SystemApi::Number> for System { fn system_name(&self) -> Result { Ok(self.info.impl_name.clone()) } @@ -115,4 +119,15 @@ impl SystemApi for System { Ok(health) } } + + fn system_peers(&self) -> Result::Number>>> { + Ok(self.sync.peers().into_iter().map(|(idx, peer_id, p)| PeerInfo { + index: idx, + peer_id: peer_id.map_or_else(Default::default, |p| p.to_base58()), + roles: format!("{:?}", p.roles), + protocol_version: p.protocol_version, + best_hash: p.best_hash, + best_number: p.best_number, + }).collect()) + } } diff --git a/core/rpc/src/system/tests.rs b/core/rpc/src/system/tests.rs index 5c8f0b9058..976dbe509a 100644 --- a/core/rpc/src/system/tests.rs +++ b/core/rpc/src/system/tests.rs @@ -16,8 +16,10 @@ use super::*; -use network::{self, SyncState, SyncStatus, ProtocolStatus}; +use network::{self, SyncState, SyncStatus, ProtocolStatus, NodeIndex, PeerId, PeerInfo as NetworkPeerInfo, PublicKey}; +use network::config::Roles; use test_client::runtime::Block; +use primitives::H256; #[derive(Default)] struct Status { @@ -37,6 +39,15 @@ impl network::SyncProvider for Status { num_active_peers: 0, } } + + fn peers(&self) -> Vec<(NodeIndex, Option, NetworkPeerInfo)> { + vec![(1, Some(PublicKey::Ed25519((0 .. 32).collect::>()).into()), NetworkPeerInfo { + roles: Roles::FULL, + protocol_version: 1, + best_hash: Default::default(), + best_number: 1 + })] + } } @@ -129,3 +140,18 @@ fn system_health() { } ); } + +#[test] +fn system_peers() { + assert_eq!( + api(None).system_peers().unwrap(), + vec![PeerInfo { + index: 1, + peer_id: "QmS5oyTmdjwBowwAH1D9YQnoe2HyWpVemH8qHiU5RqWPh4".into(), + roles: "FULL".into(), + protocol_version: 1, + best_hash: Default::default(), + best_number: 1u64, + }] + ); +} -- GitLab From 5fc4ef6abe49c985238c4dd6f6d9724754f91cdb Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Wed, 9 Jan 2019 12:52:16 +0100 Subject: [PATCH 043/349] Cherry updates (#1373) - Introduce compact extrinsics into Cherry - Remove UpgradeKey from Cherry (Sudo is enough) - Remove networkId from Cherry properties --- core/network/src/on_demand.rs | 4 +- core/test-runtime/wasm/Cargo.lock | 60 +---------------- .../substrate_test_runtime.compact.wasm | Bin 43197 -> 41787 bytes node/cli/res/charred-cherry.json | 1 - node/cli/src/chain_spec.rs | 12 +--- node/executor/src/lib.rs | 13 ++-- node/runtime/src/lib.rs | 12 +--- node/runtime/wasm/Cargo.lock | 62 ++---------------- .../release/node_runtime.compact.wasm | Bin 808984 -> 791471 bytes 9 files changed, 21 insertions(+), 143 deletions(-) diff --git a/core/network/src/on_demand.rs b/core/network/src/on_demand.rs index db56eaf592..d71352e86e 100644 --- a/core/network/src/on_demand.rs +++ b/core/network/src/on_demand.rs @@ -947,7 +947,7 @@ pub mod tests { // last peer was not updated let (_x, on_demand) = dummy(true); let queue = RwLock::new(VecDeque::new()); - let mut network = TestIo::new(&queue, None); + let _network = TestIo::new(&queue, None); on_demand.remote_header(RemoteHeaderRequest { cht_root: Default::default(), @@ -972,7 +972,7 @@ pub mod tests { fn tries_to_send_all_pending_requests() { let (_x, on_demand) = dummy(true); let queue = RwLock::new(VecDeque::new()); - let mut network = TestIo::new(&queue, None); + let _network = TestIo::new(&queue, None); on_demand.remote_header(RemoteHeaderRequest { cht_root: Default::default(), diff --git a/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index bdd4fd0534..29dfcf7e99 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/core/test-runtime/wasm/Cargo.lock @@ -208,19 +208,6 @@ 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" @@ -530,30 +517,6 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "openssl" -version = "0.10.15" -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.39 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "openssl-sys" -version = "0.9.39" -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" @@ -641,11 +604,6 @@ 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" @@ -1212,7 +1170,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 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -1531,11 +1489,6 @@ 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" @@ -1583,7 +1536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" 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)", @@ -1591,7 +1544,6 @@ 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.15 (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)", @@ -1635,8 +1587,6 @@ 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" @@ -1678,8 +1628,6 @@ 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.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "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" @@ -1690,7 +1638,6 @@ 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" @@ -1756,7 +1703,6 @@ dependencies = [ "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 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" @@ -1764,5 +1710,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 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" +"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index 1dd3d898b2b94f6108230e6c21b2afa010c1883b..451cac0489f4632dad587a0e8fb8ecc07753ba98 100644 GIT binary patch delta 13787 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ÿ+k0lhFZB-s9Q3D#qhj!#ud%*AL-#FWrV1 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 diff --git a/node/cli/res/charred-cherry.json b/node/cli/res/charred-cherry.json index 4f9905f720..11f64f098d 100644 --- a/node/cli/res/charred-cherry.json +++ b/node/cli/res/charred-cherry.json @@ -2,7 +2,6 @@ "name": "Charred Cherry", "id": "charred-cherry", "properties": { - "networkId": 68, "tokenDecimals": 15, "tokenSymbol": "CHR" }, diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index b2d4b2ed4a..ebf35a7491 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -20,7 +20,7 @@ use primitives::{Ed25519AuthorityId, ed25519}; use node_primitives::AccountId; use node_runtime::{ConsensusConfig, CouncilSeatsConfig, CouncilVotingConfig, DemocracyConfig, SessionConfig, StakingConfig, TimestampConfig, BalancesConfig, TreasuryConfig, - UpgradeKeyConfig, SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; + SudoConfig, ContractConfig, GrandpaConfig, Permill, Perbill}; pub use node_runtime::GenesisConfig; use substrate_service; @@ -130,9 +130,6 @@ fn staging_testnet_config_genesis() -> GenesisConfig { block_gas_limit: 10_000_000, current_schedule: Default::default(), }), - upgrade_key: Some(UpgradeKeyConfig { - key: endowed_accounts[0].clone(), - }), sudo: Some(SudoConfig { key: endowed_accounts[0].clone(), }), @@ -168,7 +165,7 @@ pub fn get_authority_id_from_seed(seed: &str) -> Ed25519AuthorityId { /// Helper function to create GenesisConfig for testing pub fn testnet_genesis( initial_authorities: Vec, - upgrade_key: AccountId, + root_key: AccountId, endowed_accounts: Option>, ) -> GenesisConfig { let endowed_accounts = endowed_accounts.unwrap_or_else(|| { @@ -258,11 +255,8 @@ pub fn testnet_genesis( block_gas_limit: 10_000_000, current_schedule: Default::default(), }), - upgrade_key: Some(UpgradeKeyConfig { - key: upgrade_key, - }), sudo: Some(SudoConfig { - key: upgrade_key, + key: root_key, }), grandpa: Some(GrandpaConfig { authorities: initial_authorities.clone().into_iter().map(|k| (k, 1)).collect(), diff --git a/node/executor/src/lib.rs b/node/executor/src/lib.rs index 626deb0a7e..b8d459689b 100644 --- a/node/executor/src/lib.rs +++ b/node/executor/src/lib.rs @@ -90,7 +90,7 @@ mod tests { match xt.signed { Some((signed, index)) => { let era = Era::mortal(256, 0); - let payload = (index, xt.function, era, GENESIS_HASH); + let payload = (index.into(), xt.function, era, GENESIS_HASH); let pair = Pair::from(Keyring::from_public(Public::from_raw(signed.clone().into())).unwrap()); let signature = pair.sign(&payload.encode()).into(); UncheckedExtrinsic { @@ -260,7 +260,6 @@ mod tests { timestamp: Some(Default::default()), treasury: Some(Default::default()), contract: Some(Default::default()), - upgrade_key: Some(Default::default()), sudo: Some(Default::default()), grandpa: Some(GrandpaConfig { authorities: vec![ // set these so no GRANDPA events fire when session changes @@ -313,9 +312,9 @@ mod tests { 1, GENESIS_HASH.into(), if support_changes_trie { - hex!("0bc6c118c326c65da9d0f93199f471aab4f636cfe87ab9a56c823024ca83995a").into() + hex!("22e7fc466d555b9dce285425081d89751b2063243684979df3840b3ac7e8ecdc").into() } else { - hex!("58e1f1493e311d9b1fef3660426ee289736c38eb6f7d98911551c51765163056").into() + hex!("7395363e53e682984f817fb1d5a862c5ce8b817375c06270d7a39be7097ad953").into() }, if support_changes_trie { vec![changes_trie_log( @@ -341,7 +340,7 @@ mod tests { construct_block( 2, block1(false).1, - hex!("ced5607b16774cdbf750f8f7f0a99cd4afd7eb14db376a44bb8656f2ce02b18e").into(), + hex!("66b9625c9c824de867815215528fe43014d50af7fb95c8da120910c220a46f6b").into(), vec![ // session changes here, so we add a grandpa change signal log. Log::from(::grandpa::RawLog::AuthoritiesChangeSignal(0, vec![ (Keyring::One.to_raw_public().into(), 1), @@ -370,7 +369,7 @@ mod tests { construct_block( 1, GENESIS_HASH.into(), - hex!("8a506a6f72c7efb75fd069a8c4f57c8e0b6b5adbea9646522bda64d4c78f5412").into(), + hex!("66dfdf3a0ef93ec49ec36c0a65fe328d085a865c2382397b2cd6468e391f2f51").into(), vec![], vec![ CheckedExtrinsic { @@ -660,7 +659,7 @@ mod tests { let b = construct_block( 1, GENESIS_HASH.into(), - hex!("ce21753c3f806443c2758c982850861708054b65097fed82689e7b16cd5d6e24").into(), + hex!("8197608e90fff1f7d92b35381169242d081779b1718c910689f2589a8ac09b44").into(), vec![], vec![ CheckedExtrinsic { diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 00d0372961..cc0c195780 100644 --- a/node/runtime/src/lib.rs +++ b/node/runtime/src/lib.rs @@ -51,7 +51,6 @@ extern crate srml_sudo as sudo; extern crate srml_system as system; extern crate srml_timestamp as timestamp; extern crate srml_treasury as treasury; -extern crate srml_upgrade_key as upgrade_key; #[macro_use] extern crate sr_version as version; extern crate node_primitives; @@ -97,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: 11, - impl_version: 11, + spec_version: 12, + impl_version: 12, apis: RUNTIME_API_VERSIONS, }; @@ -202,10 +201,6 @@ impl contract::Trait for Runtime { type Event = Event; } -impl upgrade_key::Trait for Runtime { - type Event = Event; -} - impl sudo::Trait for Runtime { type Event = Event; type Proposal = Call; @@ -238,7 +233,6 @@ construct_runtime!( Grandpa: grandpa::{Module, Call, Storage, Config, Log(), Event}, Treasury: treasury, Contract: contract::{Module, Call, Config, Event}, - UpgradeKey: upgrade_key, Sudo: sudo, } ); @@ -257,7 +251,7 @@ pub type SignedBlock = generic::SignedBlock; /// BlockId type as expected by this runtime. pub type BlockId = generic::BlockId; /// Unchecked extrinsic type as expected by this runtime. -pub type UncheckedExtrinsic = generic::UncheckedMortalExtrinsic; +pub type UncheckedExtrinsic = generic::UncheckedMortalCompactExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; /// Executive: handles dispatch to the various modules. diff --git a/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index f318f56846..673e92deef 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/node/runtime/wasm/Cargo.lock @@ -208,19 +208,6 @@ 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" @@ -587,30 +574,6 @@ name = "once_cell" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "openssl" -version = "0.10.15" -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.39 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "openssl-sys" -version = "0.9.39" -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" @@ -698,11 +661,6 @@ 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" @@ -1059,7 +1017,7 @@ dependencies = [ ] [[package]] -name = "sr-" +name = "sr-sandbox" version = "0.1.0" dependencies = [ "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1584,7 +1542,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 (registry+https://github.com/rust-lang/crates.io-index)", + "ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)", ] [[package]] @@ -1875,11 +1833,6 @@ 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" @@ -1927,7 +1880,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "ws" version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/tomusdrw/ws-rs#4baef2dc1abc8e216559af51cfc120bbcc777e21" 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)", @@ -1935,7 +1888,6 @@ 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.15 (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)", @@ -1979,8 +1931,6 @@ 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" @@ -2022,8 +1972,6 @@ 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.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" -"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" "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" @@ -2034,7 +1982,6 @@ 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" @@ -2103,7 +2050,6 @@ dependencies = [ "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 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" @@ -2111,5 +2057,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 (registry+https://github.com/rust-lang/crates.io-index)" = "329d3e6dd450a9c5c73024e1047f0be7e24121a68484eb0b5368977bee3cf8c3" +"checksum ws 0.7.9 (git+https://github.com/tomusdrw/ws-rs)" = "" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index 657189d728982a285676bb91353fb1a98e30e24a..f601f830c113655094f7fe59fc3d97ff584e8eb0 100644 GIT binary patch delta 257283 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%0D{O@3vgYm5Rvvt7x*|Wo`!Ay5) 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 delta 271240 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%0A+^Y7G4a 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 Vh%6d3Q6{@l4Cw)$e}EtD^M7=0-01)S -- GitLab From b5f7e4c302c9909024750e92a815be434af02ec9 Mon Sep 17 00:00:00 2001 From: joepetrowski <25483142+joepetrowski@users.noreply.github.com> Date: Wed, 9 Jan 2019 15:55:43 +0100 Subject: [PATCH 044/349] Updated README.adoc (#1278) * Updated README.adoc Added a new section with instructions of how to join the Krumme Lanke testnet. Closes Issue 1217 * Update README.adoc Instructions for joining Charred Cherry + some minor typos * Updated Runtime & API in README.adoc Properties of these functions are changing quickly, updated this section to be more generic. --- README.adoc | 83 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/README.adoc b/README.adoc index 4525a86b03..2d1f653515 100644 --- a/README.adoc +++ b/README.adoc @@ -48,38 +48,35 @@ Other examples include the parachain-heads extrinsic in Polkadot and the "note-m === Runtime and API -Substrate chains all have a runtime. The runtime is a WebAssembly "blob" that includes a number of entry-points. Some entry-points are required as part of the underlying Substrate specification. Others are merely convention and required for the default implementation of the Substrate client to be able to author blocks. In short these two sets are: +Substrate chains all have a runtime. The runtime is a WebAssembly "blob" that includes a number of entry-points. Some entry-points are required as part of the underlying Substrate specification. Others are merely convention and required for the default implementation of the Substrate client to be able to author blocks. -The runtime is API entry points are expected to be in the runtime's `api` module. There is a specific ABI based upon the Substrate Simple Codec (`codec`), which is used to encode and decode the arguments for these functions and specify where and how they should be passed. A special macro is provided called `impl_stubs`, which prepares all functionality for marshalling arguments and basically just allows you to write the functions as you would normally (except for the fact that there must be example one argument - tuples are allowed to workaround). +If you want to develop a chain with Substrate, you will need to implement the `Core` trait. This `Core` trait generates an API with the minimum necessary functionality to interact with your runtime. A special macro is provided called `impl_runtime_apis!` that help you implement runtime API traits. All runtime API trait implementations need to be done in one call of the `impl_runtime_apis!` macro. All parameters and return values need to implement https://crates.io/crates/parity-codec[`parity-codec`] to be encodable and decodable. -Here's the Polkadot API implementation as of PoC-2: +Here's a snippet of the Polkadot API implementation as of PoC-3: ```rust -pub mod api { - impl_stubs!( - - // Standard: Required. - version => |()| super::Version::version(), - authorities => |()| super::Consensus::authorities(), - execute_block => |block| super::Executive::execute_block(block), - - // Conventional: Needed for Substrate client's reference block authoring logic to work. - initialise_block => |header| super::Executive::initialise_block(&header), - apply_extrinsic => |extrinsic| super::Executive::apply_extrinsic(extrinsic), - finalise_block => |()| super::Executive::finalise_block(), - inherent_extrinsics => |inherent| super::inherent_extrinsics(inherent), - - // Non-standard (Polkadot-specific). This just exposes some stuff that Polkadot client - // finds useful. - validator_count => |()| super::Session::validator_count(), - validators => |()| super::Session::validators() - ); +impl_runtime_apis! { + impl client_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn authorities() -> Vec { + Consensus::authorities() + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialise_block(header: ::Header) { + Executive::initialise_block(&header) + } + } + // ---snip--- } ``` -As you can see, at the minimum there are only three API calls to implement. If you want to reuse as much of Substrate's reference block authoring client code, then you'll want to provide the next four entrypoints (though three of them you probably already implemented as part of `execute_block`). - -Of the first three, there is `execute_block`, which contains the actions to be taken to execute a block and pretty much defines the blockchain. Then there is `authorities` which tells the AfG consensus algorithm sitting in the Substrate client who the given authorities (known as "validators" in some contexts) are that can finalise the next block. Finally, there is `version`, which is a fairly sophisticated version identifier. This includes a key distinction between *specification version* and *authoring version*, with the former essentially versioning the logic of `execute_block` and the latter versioning only the logic of `inherent_extrinsics` and core aspects of extrinsic validity. === Inherent Extrinsics @@ -175,7 +172,7 @@ You can distribute `mychain.json` so that everyone can synchronise and (dependin === Hacking on Substrate -If you'd actually like hack on Substrate, you can just grab the source code and +If you'd actually like to hack on Substrate, you can just grab the source code and build it. Ensure you have Rust and the support software installed: [source, shell] @@ -223,7 +220,6 @@ You can start a development chain with: [source, shell] cargo run -- --dev - Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev`. If you want to see the multi-node consensus algorithm in action locally, then you can create a local testnet with two validator nodes for Alice and Bob, who are the initial authorities of the genesis chain specification that have been endowed with a testnet DOTs. We'll give each node a name and expose them so they are listed on [Telemetry](https://telemetry.polkadot.io/#/Local%20Testnet). You'll need two terminals windows open. @@ -255,6 +251,39 @@ cargo run -- \ Additional Substate CLI usage options are available and may be shown by running `cargo run -- --help`. +=== Joining the Charred Cherry Testnet + +Charred Cherry is the new testnet for Substrate 1.0 beta. Please note that 1.0 beta is not compatible with the BBQ-Birch testnet. Ensure you have the dependencies listed above before compiling. + +[source, shell] +---- +git clone https://github.com/paritytech/substrate.git +cd substrate +---- + +You can run the tests if you like: + +[source, shell] +cargo test --all + +Start your node: + +[source, shell] +cargo run --release + +To see a list of command line options, enter: + +[source, shell] +cargo run --release -- --help + +For example, you can choose a custom node name: + +[source, shell] +cargo run --release -- --name my_custom_name + +If you are successful, you will see your node syncing at https://telemetry.polkadot.io/#/Charred%20Cherry + + == Documentation === Viewing documentation for Substrate packages -- GitLab From 94745e2fb6e9b0b3cb72cdf111680ea6420c49ba Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 11:34:25 +0100 Subject: [PATCH 045/349] Updates for CC's recent upgrade (#1381) * Updates for CC's recent upgrade - Version bump to 0.9.2 - Runtime version bump to v14 - Avoid misuse of error return type for system_health RPC * Fix tests --- Cargo.lock | 2 +- Cargo.toml | 2 +- core/rpc/src/system/helpers.rs | 2 ++ core/rpc/src/system/mod.rs | 20 +++++------------- core/rpc/src/system/tests.rs | 16 ++++++++------ node/runtime/src/lib.rs | 4 ++-- .../release/node_runtime.compact.wasm | Bin 791471 -> 791471 bytes 7 files changed, 21 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d5dd6ba47..a22bfe2a1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3332,7 +3332,7 @@ dependencies = [ [[package]] name = "substrate" -version = "0.9.1" +version = "0.9.2" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index ded75775aa..9f8c70270a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.9.1" +version = "0.9.2" authors = ["Parity Technologies "] build = "build.rs" diff --git a/core/rpc/src/system/helpers.rs b/core/rpc/src/system/helpers.rs index 5a679de0ad..3ab75fb50e 100644 --- a/core/rpc/src/system/helpers.rs +++ b/core/rpc/src/system/helpers.rs @@ -43,6 +43,8 @@ pub struct Health { pub peers: usize, /// Is the node syncing pub is_syncing: bool, + /// Should this node have any peers + pub should_have_peers: bool, } /// Network Peer information diff --git a/core/rpc/src/system/mod.rs b/core/rpc/src/system/mod.rs index 1d33104483..a06aaaad23 100644 --- a/core/rpc/src/system/mod.rs +++ b/core/rpc/src/system/mod.rs @@ -103,21 +103,11 @@ impl SystemApi::Number> for Sy fn system_health(&self) -> Result { let status = self.sync.status(); - - let is_syncing = status.sync.is_major_syncing(); - let peers = status.num_peers; - - let health = Health { - peers, - is_syncing, - }; - - let has_no_peers = peers == 0 && self.should_have_peers; - if has_no_peers || is_syncing { - Err(error::ErrorKind::NotHealthy(health))? - } else { - Ok(health) - } + Ok(Health { + peers: status.num_peers, + is_syncing: status.sync.is_major_syncing(), + should_have_peers: self.should_have_peers, + }) } fn system_peers(&self) -> Result::Number>>> { diff --git a/core/rpc/src/system/tests.rs b/core/rpc/src/system/tests.rs index 976dbe509a..169d5b914b 100644 --- a/core/rpc/src/system/tests.rs +++ b/core/rpc/src/system/tests.rs @@ -97,11 +97,12 @@ fn system_properties_works() { #[test] fn system_health() { assert_matches!( - api(None).system_health().unwrap_err().kind(), - error::ErrorKind::NotHealthy(Health { + api(None).system_health().unwrap(), + Health { peers: 0, is_syncing: false, - }) + should_have_peers: true, + } ); assert_matches!( @@ -109,11 +110,12 @@ fn system_health() { peers: 5, is_syncing: true, is_dev: true, - }).system_health().unwrap_err().kind(), - error::ErrorKind::NotHealthy(Health { + }).system_health().unwrap(), + Health { peers: 5, is_syncing: true, - }) + should_have_peers: false, + } ); assert_eq!( @@ -125,6 +127,7 @@ fn system_health() { Health { peers: 5, is_syncing: false, + should_have_peers: true, } ); @@ -137,6 +140,7 @@ fn system_health() { Health { peers: 0, is_syncing: false, + should_have_peers: false, } ); } diff --git a/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index cc0c195780..6295a38b6f 100644 --- a/node/runtime/src/lib.rs +++ b/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: 12, - impl_version: 12, + spec_version: 14, + impl_version: 14, apis: RUNTIME_API_VERSIONS, }; diff --git a/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index f601f830c113655094f7fe59fc3d97ff584e8eb0..e8aee63b4fb8eb497626e412acfd2cb83eb928d1 100644 GIT binary patch delta 54 zcmZ3#++h83gN7Ey7N!>F7M2#)7Pc+ym-86;reDcppTfx3o|(@M#2i4(3B+96GxNFK GmH+@Dy%TBx delta 54 zcmZ3#++h83gN7Ey7N!>F7M2#)7Pc+ym-85TreDcppTfw~o|(@M#2i4(3B+96GxNFK GmH+@DQxj$Y -- GitLab From b73446a9c14d142003304f1229fe835b268ac605 Mon Sep 17 00:00:00 2001 From: Stanislav Tkach Date: Thu, 10 Jan 2019 11:42:42 +0200 Subject: [PATCH 046/349] Escape dashes in shell commands --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 2d1f653515..90b5f49a98 100644 --- a/README.adoc +++ b/README.adoc @@ -220,7 +220,7 @@ You can start a development chain with: [source, shell] cargo run -- --dev -Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev`. +Detailed logs may be shown by running the node with the following environment variables set: `RUST_LOG=debug RUST_BACKTRACE=1 cargo run \-- --dev`. If you want to see the multi-node consensus algorithm in action locally, then you can create a local testnet with two validator nodes for Alice and Bob, who are the initial authorities of the genesis chain specification that have been endowed with a testnet DOTs. We'll give each node a name and expose them so they are listed on [Telemetry](https://telemetry.polkadot.io/#/Local%20Testnet). You'll need two terminals windows open. @@ -249,7 +249,7 @@ cargo run -- \ --telemetry-url ws://telemetry.polkadot.io:1024 \ --validator -Additional Substate CLI usage options are available and may be shown by running `cargo run -- --help`. +Additional Substate CLI usage options are available and may be shown by running `cargo run \-- --help`. === Joining the Charred Cherry Testnet -- GitLab From 8b0e5d7ca8b3bf4ae2ad26d773e466d5bc30cbaa Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 10 Jan 2019 13:32:27 +0100 Subject: [PATCH 047/349] Update ring to 0.13 and subtle to 2.0 (#1383) --- Cargo.lock | 268 ++++++++++++++++----------------- core/keystore/Cargo.toml | 4 +- core/keystore/src/lib.rs | 2 +- core/network-libp2p/Cargo.toml | 2 +- core/primitives/Cargo.toml | 4 +- 5 files changed, 132 insertions(+), 148 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a22bfe2a1b..ebda3f5708 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -587,7 +587,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "datastore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1218,11 +1218,6 @@ name = "language-tags" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "lazy_static" version = "1.2.0" @@ -1250,28 +1245,28 @@ dependencies = [ [[package]] name = "libp2p" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1281,20 +1276,20 @@ dependencies = [ [[package]] name = "libp2p-core" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1305,12 +1300,12 @@ dependencies = [ [[package]] name = "libp2p-dns" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tokio-dns-unofficial 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1318,16 +1313,16 @@ dependencies = [ [[package]] name = "libp2p-floodsub" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1339,15 +1334,15 @@ dependencies = [ [[package]] name = "libp2p-identify" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1360,21 +1355,21 @@ dependencies = [ [[package]] name = "libp2p-kad" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1388,12 +1383,12 @@ dependencies = [ [[package]] name = "libp2p-mplex" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1404,13 +1399,13 @@ dependencies = [ [[package]] name = "libp2p-peerstore" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1419,15 +1414,15 @@ dependencies = [ [[package]] name = "libp2p-ping" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1439,11 +1434,11 @@ dependencies = [ [[package]] name = "libp2p-ratelimit" version = "0.1.1" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "aio-limited 0.1.0 (git+https://github.com/paritytech/aio-limited.git)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-executor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1452,14 +1447,14 @@ dependencies = [ [[package]] name = "libp2p-relay" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1470,7 +1465,7 @@ dependencies = [ [[package]] name = "libp2p-secio" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1480,28 +1475,28 @@ dependencies = [ "eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "protobuf 2.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", - "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "stdweb 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "twofish 0.1.0 (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]] name = "libp2p-tcp-transport" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tk-listen 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1510,10 +1505,10 @@ dependencies = [ [[package]] name = "libp2p-transport-timeout" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1521,25 +1516,25 @@ dependencies = [ [[package]] name = "libp2p-uds" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libp2p-websocket" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", - "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", + "rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1548,11 +1543,11 @@ dependencies = [ [[package]] name = "libp2p-yamux" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1739,13 +1734,13 @@ dependencies = [ [[package]] name = "multiaddr" version = "0.3.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1753,7 +1748,7 @@ dependencies = [ [[package]] name = "multihash" version = "0.8.1-pre" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1765,7 +1760,7 @@ dependencies = [ [[package]] name = "multistream-select" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2085,11 +2080,11 @@ dependencies = [ [[package]] name = "parity-crypto" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "quick-error 1.2.2 (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)", "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)", "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2353,7 +2348,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2374,7 +2369,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2411,15 +2406,7 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.2.2 (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)", + "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2518,14 +2505,13 @@ dependencies = [ [[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.28 (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.46 (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]] @@ -2580,7 +2566,7 @@ dependencies = [ [[package]] name = "rw-stream-sink" version = "0.1.0" -source = "git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5#d961e656a74d1bab5366d371a06f9e10d5f4a6c5" +source = "git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec#997d0163bc8a7e11559524ad8466bc3b1850c8ec" dependencies = [ "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3599,13 +3585,13 @@ version = "0.1.0" dependencies = [ "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-primitives 0.1.0", - "subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3644,7 +3630,7 @@ dependencies = [ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)", + "libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3674,14 +3660,14 @@ dependencies = [ "parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "pretty_assertions 0.4.1 (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.84 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", "sr-std 0.1.0", "substrate-serializer 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.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -3915,12 +3901,12 @@ dependencies = [ [[package]] name = "subtle" -version = "0.5.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "subtle" -version = "1.0.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4359,7 +4345,7 @@ name = "twox-hash" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4459,7 +4445,7 @@ dependencies = [ [[package]] name = "untrusted" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -4744,7 +4730,7 @@ dependencies = [ "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" "checksum data-encoding 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4f47ca1860a761136924ddd2422ba77b2ea54fe8cc75b9040804a0d9d32ad97" -"checksum datastore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum datastore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8" "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" @@ -4815,28 +4801,27 @@ dependencies = [ "checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" "checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" -"checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-peerstore 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-relay 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-core 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-dns 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-floodsub 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-identify 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-kad 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-mplex 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-peerstore 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-ping 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-ratelimit 0.1.1 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-relay 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-secio 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-tcp-transport 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-transport-timeout 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" "checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" @@ -4858,9 +4843,9 @@ dependencies = [ "checksum mio-extras 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "46e73a04c2fa6250b8d802134d56d554a9ec2922bf977777c805ea5def61ce40" "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum multiaddr 0.3.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum multihash 0.8.1-pre (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" -"checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum multiaddr 0.3.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum multihash 0.8.1-pre (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" +"checksum multistream-select 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" @@ -4885,7 +4870,7 @@ dependencies = [ "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" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" -"checksum parity-crypto 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c1117f6574377d21309bfa1f7d69ff734120685d92b02c3f362b122585758840" +"checksum parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8adf489acb31f1922db0ce43803b6f48a425241a8473611be3cc625a8e4a4c47" "checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" "checksum parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "fa12d706797d42551663426a45e2db2e0364bd1dbf6aeada87e89c5f981f43e9" "checksum parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "149d8f5b97f3c1133e3cfcd8886449959e856b557ff281e292b733d7c69e005e" @@ -4923,7 +4908,6 @@ dependencies = [ "checksum rand_os 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de5ac4de1c2973e1391dc305cb0fbf8788cb58068e98255439b7485a77022273" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -"checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" "checksum rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "373814f27745b2686b350dd261bfd24576a6fb0e2c5919b3a2b6005f820b0473" "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" "checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" @@ -4934,7 +4918,7 @@ dependencies = [ "checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a09bc21b21795c366c8bf0e87afb71175f5f736b3a5b279b6f4e81839d0a877b" -"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 rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39be726e556e6f21d54d21cdf1be9f6df30c0411a5856c1abf3f4bb12498f2ed" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" @@ -4942,7 +4926,7 @@ dependencies = [ "checksum rustc-hex 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "403bb3a286107a04825a5f82e1270acc1e14028d3d554d7a1e08914549575ab8" "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p?rev=d961e656a74d1bab5366d371a06f9e10d5f4a6c5)" = "" +"checksum rw-stream-sink 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" "checksum safe-mix 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f7bf422d23a88c16d5090d455f182bc99c60af4df6a345c63428acf5129e347" "checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f" @@ -4980,8 +4964,8 @@ dependencies = [ "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum structopt 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "670ad348dc73012fcf78c71f06f9d942232cdd4c859d4b6975e27836c3efc0c3" "checksum structopt-derive 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ef98172b1a00b0bec738508d3726540edcbd186d50dfd326f2b1febbb3559f04" -"checksum subtle 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc7f6353c2ee5407358d063a14cccc1630804527090a6fb5a9489ce4924280fb" "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" +"checksum subtle 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "702662512f3ddeb74a64ce2fbbf3707ee1b6bb663d28bb054e0779bbc720d926" "checksum syn 0.13.11 (registry+https://github.com/rust-lang/crates.io-index)" = "14f9bf6292f3a61d2c716723fdb789a41bbe104168e6f496dc6497e531ea1b9b" "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" "checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" @@ -5038,7 +5022,7 @@ dependencies = [ "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum unsigned-varint 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f5c1441164e5da61f00acd15f5a9e61939693c2c6e8b9fae36a220b82de7e212" "checksum unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8abc4b7d8158bdfbbaaccc35331ed3c30c2673e99000d7ae665a2eb6576f4" -"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 utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" diff --git a/core/keystore/Cargo.toml b/core/keystore/Cargo.toml index 760e064158..9d31557b42 100644 --- a/core/keystore/Cargo.toml +++ b/core/keystore/Cargo.toml @@ -5,14 +5,14 @@ authors = ["Parity Technologies "] [dependencies] substrate-primitives = { path = "../primitives" } -parity-crypto = { version = "0.1", default-features = false } +parity-crypto = { version = "0.2", default-features = false } error-chain = "0.12" hex = "0.3" rand = "0.4" serde_json = "1.0" serde = "1.0" serde_derive = "1.0" -subtle = "0.5" +subtle = "2.0" [dev-dependencies] tempdir = "0.3" diff --git a/core/keystore/src/lib.rs b/core/keystore/src/lib.rs index 6d8e3b3ae9..baeeab2755 100644 --- a/core/keystore/src/lib.rs +++ b/core/keystore/src/lib.rs @@ -110,7 +110,7 @@ impl EncryptedKey { let mac = blake2_256(&crypto::derive_mac(&derived_right_bits, &self.ciphertext)); - if subtle::slices_equal(&mac[..], &self.mac[..]) != 1 { + if subtle::ConstantTimeEq::ct_eq(&mac[..], &self.mac[..]).unwrap_u8() != 1 { return Err(ErrorKind::InvalidPassword.into()); } diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 6eb7f39859..12f92bc9a1 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -11,7 +11,7 @@ bytes = "0.4" error-chain = { version = "0.12", default-features = false } fnv = "1.0" futures = "0.1" -libp2p = { git = "https://github.com/libp2p/rust-libp2p", rev = "d961e656a74d1bab5366d371a06f9e10d5f4a6c5", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } +libp2p = { git = "https://github.com/tomaka/libp2p-rs", rev = "997d0163bc8a7e11559524ad8466bc3b1850c8ec", default-features = false, features = ["secio-rsa", "secio-secp256k1"] } parking_lot = "0.7.1" libc = "0.2" log = "0.4" diff --git a/core/primitives/Cargo.toml b/core/primitives/Cargo.toml index 72fd73f5b4..edd0f3731b 100644 --- a/core/primitives/Cargo.toml +++ b/core/primitives/Cargo.toml @@ -17,8 +17,8 @@ impl-serde = { version = "0.1", optional = true } wasmi = { version = "0.4.2", optional = true } hash-db = { git = "https://github.com/paritytech/trie", default-features = false } hash256-std-hasher = { git = "https://github.com/paritytech/trie", default-features = false } -ring = { version = "0.12", optional = true } -untrusted = { version = "0.5", optional = true } +ring = { version = "0.13", optional = true } +untrusted = { version = "0.6", optional = true } hex-literal = { version = "0.1", optional = true } base58 = { version = "0.1", optional = true } blake2-rfc = { version = "0.2.18", optional = true } -- GitLab From 0e6e811b06e884cfe77d1f85f822299806a2aa4f Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 15:47:12 +0100 Subject: [PATCH 048/349] Fix telemetry (and a minor cleanup) (#1384) --- Cargo.lock | 21 ++++++++++++++++- core/cli/src/params.rs | 6 +---- core/service/src/lib.rs | 47 ++++++++++++++++++--------------------- core/telemetry/Cargo.toml | 2 +- core/telemetry/src/lib.rs | 2 +- 5 files changed, 45 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ebda3f5708..b936555a7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3810,7 +3810,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.1.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]] @@ -4627,6 +4627,24 @@ dependencies = [ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ws" +version = "0.7.9" +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)", + "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "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)", + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -5044,6 +5062,7 @@ dependencies = [ "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "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" "checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" "checksum yaml-rust 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e66366e18dc58b46801afbf2ca7661a9f59cc8c5962c29892b6039b4f86fa992" diff --git a/core/cli/src/params.rs b/core/cli/src/params.rs index 3ae791869f..a73c7cf65f 100644 --- a/core/cli/src/params.rs +++ b/core/cli/src/params.rs @@ -97,15 +97,11 @@ pub struct CoreParams { #[structopt(long = "name", value_name = "NAME")] name: Option, - /// Should connect to the Substrate telemetry server (telemetry is off by default on local chains) - #[structopt(short = "t", long = "telemetry")] - telemetry: bool, - /// Should not connect to the Substrate telemetry server (telemetry is on by default on global chains) #[structopt(long = "no-telemetry")] no_telemetry: bool, - /// The URL of the telemetry server. Implies --telemetry + /// The URL of the telemetry server to connect to #[structopt(long = "telemetry-url", value_name = "TELEMETRY_URL")] telemetry_url: Option, diff --git a/core/service/src/lib.rs b/core/service/src/lib.rs index dec78575c8..a261ce5666 100644 --- a/core/service/src/lib.rs +++ b/core/service/src/lib.rs @@ -252,31 +252,28 @@ impl Service { )?; // Telemetry - let telemetry = match config.telemetry_url.clone() { - Some(url) => { - let is_authority = config.roles == Roles::AUTHORITY; - let pubkey = format!("{}", public_key); - let name = config.name.clone(); - let impl_name = config.impl_name.to_owned(); - let version = version.clone(); - let chain_name = config.chain_spec.name().to_owned(); - Some(Arc::new(tel::init_telemetry(tel::TelemetryConfig { - url: url, - on_connect: Box::new(move || { - telemetry!("system.connected"; - "name" => name.clone(), - "implementation" => impl_name.clone(), - "version" => version.clone(), - "config" => "", - "chain" => chain_name.clone(), - "pubkey" => &pubkey, - "authority" => is_authority - ); - }), - }))) - }, - None => None, - }; + let telemetry = config.telemetry_url.clone().map(|url| { + let is_authority = config.roles == Roles::AUTHORITY; + let pubkey = format!("{}", public_key); + let name = config.name.clone(); + let impl_name = config.impl_name.to_owned(); + let version = version.clone(); + let chain_name = config.chain_spec.name().to_owned(); + Arc::new(tel::init_telemetry(tel::TelemetryConfig { + url: url, + on_connect: Box::new(move || { + telemetry!("system.connected"; + "name" => name.clone(), + "implementation" => impl_name.clone(), + "version" => version.clone(), + "config" => "", + "chain" => chain_name.clone(), + "pubkey" => &pubkey, + "authority" => is_authority + ); + }), + })) + }); Ok(Service { client, diff --git a/core/telemetry/Cargo.toml b/core/telemetry/Cargo.toml index 8b05532913..7dda912792 100644 --- a/core/telemetry/Cargo.toml +++ b/core/telemetry/Cargo.toml @@ -12,4 +12,4 @@ slog = "^2" slog-json = "^2" slog-async = "^2" slog-scope = "^4" -ws = { git = "https://github.com/tomusdrw/ws-rs" } +ws = { version = "^0.7", features = ["ssl"] } diff --git a/core/telemetry/src/lib.rs b/core/telemetry/src/lib.rs index 927994cca5..ab7964ed16 100644 --- a/core/telemetry/src/lib.rs +++ b/core/telemetry/src/lib.rs @@ -66,7 +66,7 @@ pub fn init_telemetry(config: TelemetryConfig) -> slog_scope::GlobalLoggerGuard thread::spawn(move || { loop { - trace!(target: "telemetry", "Connecting to Telemetry..."); + trace!(target: "telemetry", "Connecting to Telemetry... {:?}", config.url); let _ = ws::connect(config.url.as_str(), |out| Connection::new(out, &*out_sync, &config)); thread::sleep(time::Duration::from_millis(5000)); -- GitLab From dcb048df78ea410c881696651f2b8c1af8966789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= Date: Thu, 10 Jan 2019 15:03:15 +0000 Subject: [PATCH 049/349] Improve offline slashing calculation (#1371) * srml: apply slashing for all offline reports at once * srml: add regression test for slashing overflow --- srml/staking/src/lib.rs | 87 ++++++++++++++++++++++----------------- srml/staking/src/tests.rs | 39 ++++++++++++++++++ 2 files changed, 89 insertions(+), 37 deletions(-) diff --git a/srml/staking/src/lib.rs b/srml/staking/src/lib.rs index 527c916008..70f71de152 100644 --- a/srml/staking/src/lib.rs +++ b/srml/staking/src/lib.rs @@ -508,55 +508,68 @@ impl Module { /// Call when a validator is determined to be offline. `count` is the /// number of offences the validator has committed. pub fn on_offline_validator(v: T::AccountId, count: usize) { - use primitives::traits::CheckedShl; + use primitives::traits::{CheckedAdd, CheckedShl}; // Early exit if validator is invulnerable. if Self::invulnerables().contains(&v) { return } - for _ in 0..count { - let slash_count = Self::slash_count(&v); - >::insert(v.clone(), slash_count + 1); - let grace = Self::offline_slash_grace(); + let slash_count = Self::slash_count(&v); + let new_slash_count = slash_count + count as u32; + >::insert(v.clone(), new_slash_count); + let grace = Self::offline_slash_grace(); - let event = if slash_count >= grace { + let event = if new_slash_count > grace { + let slash = { + let base_slash = Self::current_offline_slash(); let instances = slash_count - grace; - let base_slash = Self::current_offline_slash(); - let slash = match base_slash.checked_shl(instances) { - Some(slash) => slash, - None => { - // freeze at last maximum valid slash if this starts - // to overflow. - >::insert(v.clone(), slash_count); - base_slash.checked_shl(instances - 1) - .expect("slash count no longer incremented after overflow; \ - prior check only fails with instances >= 1; \ - thus instances - 1 always works and is a valid amount of bits; qed") + let mut total_slash = T::Balance::default(); + for i in instances..(instances + count as u32) { + if let Some(total) = base_slash.checked_shl(i) + .and_then(|slash| total_slash.checked_add(&slash)) { + total_slash = total; + } else { + // reset slash count only up to the current + // instance. the total slash overflows the unit for + // balance in the system therefore we can slash all + // the slashable balance for the account + >::insert(v.clone(), slash_count + i); + total_slash = Self::slashable_balance(&v); + break; } - }; - - let next_slash = slash << 1; - - let _ = Self::slash_validator(&v, slash); - if instances >= Self::validator_preferences(&v).unstake_threshold - || Self::slashable_balance(&v) < next_slash - { - if let Some(pos) = Self::intentions().into_iter().position(|x| &x == &v) { - Self::apply_unstake(&v, pos) - .expect("pos derived correctly from Self::intentions(); \ - apply_unstake can only fail if pos wrong; \ - Self::intentions() doesn't change; qed"); - } - let _ = Self::apply_force_new_era(false); } - RawEvent::OfflineSlash(v.clone(), slash) - } else { - RawEvent::OfflineWarning(v.clone(), slash_count) + + total_slash }; - Self::deposit_event(event); - } + + let _ = Self::slash_validator(&v, slash); + + let next_slash = match slash.checked_shl(1) { + Some(slash) => slash, + None => Self::slashable_balance(&v), + }; + + let instances = new_slash_count - grace; + if instances > Self::validator_preferences(&v).unstake_threshold + || Self::slashable_balance(&v) < next_slash + || next_slash <= slash + { + if let Some(pos) = Self::intentions().into_iter().position(|x| &x == &v) { + Self::apply_unstake(&v, pos) + .expect("pos derived correctly from Self::intentions(); \ + apply_unstake can only fail if pos wrong; \ + Self::intentions() doesn't change; qed"); + } + let _ = Self::apply_force_new_era(false); + } + RawEvent::OfflineSlash(v.clone(), slash) + } else { + RawEvent::OfflineWarning(v.clone(), slash_count) + }; + + Self::deposit_event(event); } } diff --git a/srml/staking/src/tests.rs b/srml/staking/src/tests.rs index 801c15d3e1..fc3209bae3 100644 --- a/srml/staking/src/tests.rs +++ b/srml/staking/src/tests.rs @@ -557,3 +557,42 @@ fn slash_value_calculation_does_not_overflow() { Staking::on_offline_validator(10, 100); }); } + +#[test] +fn next_slash_value_calculation_does_not_overflow() { + with_externalities(&mut new_test_ext(0, 3, 3, 0, true, 10), || { + assert_eq!(Staking::era_length(), 9); + assert_eq!(Staking::sessions_per_era(), 3); + assert_eq!(Staking::last_era_length_change(), 0); + assert_eq!(Staking::current_era(), 0); + assert_eq!(Session::current_index(), 0); + assert_eq!(Balances::total_balance(&10), 1); + assert_eq!(Staking::intentions(), vec![10, 20]); + assert_eq!(Staking::offline_slash_grace(), 0); + + // set validator preferences so the validator doesn't back down after + // slashing. + >::insert(10, ValidatorPrefs { + unstake_threshold: u32::max_value(), + validator_payment: 0, + }); + + // we have enough balance to cover the last slash before overflow + Balances::set_free_balance(&10, u64::max_value()); + assert_eq!(Balances::total_balance(&10), u64::max_value()); + + // the balance type is u64, so after slashing 64 times, + // the slash value should have overflowed. add a couple extra for + // good measure with the slash grace. + trait TypeEq {} + impl TypeEq for (A, A) {} + fn assert_type_eq() {} + assert_type_eq::<(u64, ::Balance)>(); + + // the total slash value should overflow the balance type + // therefore the total validator balance should be slashed + Staking::on_offline_validator(10, 100); + + assert_eq!(Balances::total_balance(&10), 0); + }); +} -- GitLab From 4a576930fbef60fb3ef9899283dbf254a4aed6d7 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 16:06:19 +0100 Subject: [PATCH 050/349] Urgent safety fix for #1371 (runtime version) --- core/test-runtime/wasm/Cargo.lock | 140 +++++++++--------- node/runtime/src/lib.rs | 4 +- 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/core/test-runtime/wasm/Cargo.lock b/core/test-runtime/wasm/Cargo.lock index 29dfcf7e99..6bd62383c2 100644 --- a/core/test-runtime/wasm/Cargo.lock +++ b/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/node/runtime/src/lib.rs b/node/runtime/src/lib.rs index 6295a38b6f..3567edbbf6 100644 --- a/node/runtime/src/lib.rs +++ b/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/node/runtime/wasm/Cargo.lock b/node/runtime/wasm/Cargo.lock index 673e92deef..f1987f32d2 100644 --- a/node/runtime/wasm/Cargo.lock +++ b/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/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm b/node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm index e8aee63b4fb8eb497626e412acfd2cb83eb928d1..4319fbc77cfdf1650ac987dbf7b073a9b58dce47 100644 GIT binary patch delta 46566 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 -- GitLab From bac9c1fcf68eb680d56082f4281a49270e263913 Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Thu, 10 Jan 2019 18:16:49 +0100 Subject: [PATCH 051/349] Bump version to 0.10.0 in preparation for 1.0gamma (#1385) * Bump version to 0.10.0 in preparation for 1.0gamma * Update lock file --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b936555a7a..da7d831433 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3318,7 +3318,7 @@ dependencies = [ [[package]] name = "substrate" -version = "0.9.2" +version = "0.10.0" dependencies = [ "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/Cargo.toml b/Cargo.toml index 9f8c70270a..2cff897a07 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ path = "node/src/main.rs" [package] name = "substrate" -version = "0.9.2" +version = "0.10.0" authors = ["Parity Technologies "] build = "build.rs" -- GitLab From 4ee928fbbc07b7de0c6b40ef8ebabe02954e95b1 Mon Sep 17 00:00:00 2001 From: Robert Habermeier Date: Thu, 10 Jan 2019 14:19:31 -0300 Subject: [PATCH 052/349] informant: display finalized height and hash (#1387) --- core/cli/src/informant.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/core/cli/src/informant.rs b/core/cli/src/informant.rs index e9dab4ae8b..0f24f5f6e6 100644 --- a/core/cli/src/informant.rs +++ b/core/cli/src/informant.rs @@ -48,10 +48,10 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe let display_notifications = interval.map_err(|e| debug!("Timer error: {:?}", e)).for_each(move |_| { let sync_status = network.status(); - if let Ok(best_block) = client.best_block_header() { - let hash = best_block.hash(); + if let Ok(info) = client.info() { + let best_number: u64 = info.chain.best_number.as_(); + let best_hash = info.chain.best_hash; let num_peers = sync_status.num_peers; - let best_number: u64 = best_block.number().as_(); let speed = move || speed(best_number, last_number); let (status, target) = match (sync_status.sync.state, sync_status.sync.best_seen_block) { (SyncState::Idle, _) => ("Idle".into(), "".into()), @@ -60,14 +60,17 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe }; last_number = Some(best_number); let txpool_status = txpool.status(); + let finalized_number: u64 = info.chain.finalized_number.as_(); info!( target: "substrate", - "{}{} ({} peers), best: #{} ({})", + "{}{} ({} peers), best: #{} ({}), finalized #{} ({})", Colour::White.bold().paint(&status), target, Colour::White.bold().paint(format!("{}", sync_status.num_peers)), Colour::White.paint(format!("{}", best_number)), - hash + best_hash, + Colour::White.paint(format!("{}", finalized_number)), + info.chain.finalized_hash, ); // get cpu usage and memory usage of this process @@ -81,10 +84,12 @@ pub fn start(service: &Service, exit: ::exit_future::Exit, handle: TaskExe "status" => format!("{}{}", status, target), "peers" => num_peers, "height" => best_number, - "best" => ?hash, + "best" => ?best_hash, "txcount" => txpool_status.ready, "cpu" => cpu_usage, - "memory" => memory + "memory" => memory, + "finalized_height" => finalized_number, + "finalized_hash" => ?info.chain.finalized_hash, ); } else { warn!("Error getting best block information"); -- GitLab From be638afe66a839c7bd8ee3650e5d69dc1789e3ff Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Fri, 11 Jan 2019 11:36:44 +0100 Subject: [PATCH 053/349] Ensure opaque extr serialise is same as transparent (#1388) * Ensure opaque extr serialise is same as transparent Fixes #889 * Fix wasm compile --- core/sr-primitives/src/lib.rs | 19 +++++++++++++++++++ node/primitives/src/lib.rs | 19 ++++--------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/core/sr-primitives/src/lib.rs b/core/sr-primitives/src/lib.rs index dfd34ed01f..2deb05c90f 100644 --- a/core/sr-primitives/src/lib.rs +++ b/core/sr-primitives/src/lib.rs @@ -525,6 +525,25 @@ impl CheckInherentError { } } +/// Simple blob to hold an extrinsic without commiting to its format and ensure it is serialized +/// correctly. +#[derive(PartialEq, Eq, Clone, Default, Encode, Decode)] +#[cfg_attr(feature = "std", derive(Debug))] +pub struct OpaqueExtrinsic(pub Vec); + +#[cfg(feature = "std")] +impl ::serde::Serialize for OpaqueExtrinsic { + fn serialize(&self, seq: S) -> Result where S: ::serde::Serializer { + ::codec::Encode::using_encoded(&self.0, |bytes| seq.serialize_bytes(bytes)) + } +} + +impl traits::Extrinsic for OpaqueExtrinsic { + fn is_signed(&self) -> Option { + None + } +} + #[cfg(test)] mod tests { use substrate_primitives::hash::H256; diff --git a/node/primitives/src/lib.rs b/node/primitives/src/lib.rs index 967b0d775c..0273306134 100644 --- a/node/primitives/src/lib.rs +++ b/node/primitives/src/lib.rs @@ -22,21 +22,18 @@ #![cfg_attr(not(feature = "std"), feature(alloc))] #[cfg(feature = "std")] -#[macro_use] -extern crate serde_derive; +extern crate serde; -#[macro_use] -extern crate parity_codec_derive; +extern crate parity_codec as codec; extern crate sr_std as rstd; extern crate sr_primitives as runtime_primitives; extern crate substrate_primitives as primitives; -use rstd::prelude::*; use runtime_primitives::generic; #[cfg(feature = "std")] use primitives::bytes; -use runtime_primitives::traits::{BlakeTwo256, self}; +use runtime_primitives::{OpaqueExtrinsic, traits::BlakeTwo256}; pub use runtime_primitives::BasicInherentData as InherentData; @@ -78,12 +75,4 @@ pub type Block = generic::Block; pub type BlockId = generic::BlockId; /// Opaque, encoded, unchecked extrinsic. -#[derive(PartialEq, Eq, Clone, Default, Encode, Decode)] -#[cfg_attr(feature = "std", derive(Serialize, Debug))] -pub struct UncheckedExtrinsic(#[cfg_attr(feature = "std", serde(with="bytes"))] pub Vec); - -impl traits::Extrinsic for UncheckedExtrinsic { - fn is_signed(&self) -> Option { - None - } -} +pub type UncheckedExtrinsic = OpaqueExtrinsic; -- GitLab From e01b4501127fcfc8c62ae18fea8a071c8cf18c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Fri, 11 Jan 2019 11:43:58 +0100 Subject: [PATCH 054/349] Hex-encode block number. (#1389) --- core/rpc/src/chain/mod.rs | 10 ++-- core/rpc/src/chain/number.rs | 68 ++++++++++++++++++++++++ core/rpc/src/chain/tests.rs | 12 +++-- core/rpc/src/lib.rs | 1 + core/sr-primitives/src/generic/header.rs | 43 +++++++++++++-- 5 files changed, 121 insertions(+), 13 deletions(-) create mode 100644 core/rpc/src/chain/number.rs diff --git a/core/rpc/src/chain/mod.rs b/core/rpc/src/chain/mod.rs index 7675f42e22..ab6f0d710d 100644 --- a/core/rpc/src/chain/mod.rs +++ b/core/rpc/src/chain/mod.rs @@ -33,6 +33,7 @@ use subscriptions::Subscriptions; mod error; #[cfg(test)] mod tests; +mod number; use self::error::Result; @@ -56,7 +57,7 @@ build_rpc_trait! { /// /// By default returns latest block hash. #[rpc(name = "chain_getBlockHash", alias = ["chain_getHead", ])] - fn block_hash(&self, Trailing) -> Result>; + fn block_hash(&self, Trailing>) -> Result>; /// Get hash of the last finalised block in the canon chain. #[rpc(name = "chain_getFinalisedHead")] @@ -172,10 +173,11 @@ impl ChainApi, Block::Hash, Block::Header, Sig Ok(self.client.block(&BlockId::Hash(hash))?) } - fn block_hash(&self, number: Trailing>) -> Result> { - Ok(match number.into() { + fn block_hash(&self, number: Trailing>>) -> Result> { + let number: Option>> = number.into(); + Ok(match number { None => Some(self.client.info()?.chain.best_hash), - Some(number) => self.client.header(&BlockId::number(number))?.map(|h| h.hash()), + Some(num_or_hex) => self.client.header(&BlockId::number(num_or_hex.to_number()?))?.map(|h| h.hash()), }) } diff --git a/core/rpc/src/chain/number.rs b/core/rpc/src/chain/number.rs new file mode 100644 index 0000000000..7a300313e3 --- /dev/null +++ b/core/rpc/src/chain/number.rs @@ -0,0 +1,68 @@ +// Copyright 2017-2019 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +use primitives::U256; +use runtime_primitives::traits; + +/// RPC Block number type +/// +/// We allow two representations of the block number as input. +/// Either we deserialize to the type that is specified in the block type +/// or we attempt to parse given hex value. +/// We do that for consistency with the returned type, default generic header +/// serializes block number as hex to avoid overflows in JavaScript. +#[derive(Deserialize)] +#[serde(untagged)] +pub enum NumberOrHex { + /// The original header number type of block. + Number(Number), + /// Hex representation of the block number. + Hex(U256), +} + +impl> NumberOrHex { + /// Attempts to convert into concrete block number. + /// + /// Fails in case hex number is too big. + pub fn to_number(self) -> Result { + match self { + NumberOrHex::Number(n) => Ok(n), + NumberOrHex::Hex(h) => { + // TODO [ToDr] this only supports `u64` since `BlockNumber` is `As` we could possibly go with `u128`. (#1377) + let l = h.low_u64(); + if U256::from(l) != h { + Err(format!("`{}` does not fit into the block number type.", h)) + } else { + Ok(traits::As::sa(l)) + } + }, + } + } +} + +#[cfg(test)] +impl From for NumberOrHex { + fn from(n: u64) -> Self { + NumberOrHex::Number(n) + } +} + +#[cfg(test)] +impl From for NumberOrHex { + fn from(n: U256) -> Self { + NumberOrHex::Hex(n) + } +} diff --git a/core/rpc/src/chain/tests.rs b/core/rpc/src/chain/tests.rs index b3f9ee93e2..5dcd2d0e21 100644 --- a/core/rpc/src/chain/tests.rs +++ b/core/rpc/src/chain/tests.rs @@ -129,12 +129,12 @@ fn should_return_block_hash() { assert_matches!( - client.block_hash(Some(0u64).into()), + client.block_hash(Some(0u64.into()).into()), Ok(Some(ref x)) if x == &client.client.genesis_hash() ); assert_matches!( - client.block_hash(Some(1u64).into()), + client.block_hash(Some(1u64.into()).into()), Ok(None) ); @@ -142,11 +142,15 @@ fn should_return_block_hash() { client.client.import(BlockOrigin::Own, block.clone()).unwrap(); assert_matches!( - client.block_hash(Some(0u64).into()), + client.block_hash(Some(0u64.into()).into()), Ok(Some(ref x)) if x == &client.client.genesis_hash() ); assert_matches!( - client.block_hash(Some(1u64).into()), + client.block_hash(Some(1u64.into()).into()), + Ok(Some(ref x)) if x == &block.hash() + ); + assert_matches!( + client.block_hash(Some(::primitives::U256::from(1u64).into()).into()), Ok(Some(ref x)) if x == &block.hash() ); } diff --git a/core/rpc/src/lib.rs b/core/rpc/src/lib.rs index 90caaaf291..91eef709a4 100644 --- a/core/rpc/src/lib.rs +++ b/core/rpc/src/lib.rs @@ -38,6 +38,7 @@ extern crate error_chain; extern crate jsonrpc_macros; #[macro_use] extern crate log; +#[macro_use] extern crate serde_derive; #[cfg(test)] diff --git a/core/sr-primitives/src/generic/header.rs b/core/sr-primitives/src/generic/header.rs index 3fed9e600d..863dc5a6a8 100644 --- a/core/sr-primitives/src/generic/header.rs +++ b/core/sr-primitives/src/generic/header.rs @@ -26,10 +26,11 @@ use generic::Digest; #[cfg_attr(feature = "std", derive(Debug, Serialize))] #[cfg_attr(feature = "std", serde(rename_all = "camelCase"))] #[cfg_attr(feature = "std", serde(deny_unknown_fields))] -pub struct Header { +pub struct Header, Hash: HashT, DigestItem> { /// The parent hash. pub parent_hash: ::Output, /// The block number. + #[cfg_attr(feature = "std", serde(serialize_with = "serialize_number"))] pub number: Number, /// The state trie merkle root pub state_root: ::Output, @@ -39,8 +40,17 @@ pub struct Header { pub digest: Digest, } +#[cfg(feature = "std")] +pub fn serialize_number>(val: &T, s: S) -> Result where S: ::serde::Serializer { + use substrate_primitives::uint::U256; + let v: u128 = (*val).into(); + let lower = U256::from(v as u64); + let upper = U256::from(v.rotate_left(64) as u64) << 64; + ::serde::Serialize::serialize(&(upper + lower), s) +} + impl Decode for Header where - Number: HasCompact, + Number: HasCompact + Copy + Into, Hash: HashT, Hash::Output: Decode, DigestItem: DigestItemT + Decode, @@ -57,7 +67,7 @@ impl Decode for Header where } impl Encode for Header where - Number: HasCompact + Copy, + Number: HasCompact + Copy + Into, Hash: HashT, Hash::Output: Encode, DigestItem: DigestItemT + Encode, @@ -72,7 +82,7 @@ impl Encode for Header where } impl traits::Header for Header where - Number: Member + MaybeSerializeDebug + ::rstd::hash::Hash + Copy + MaybeDisplay + SimpleArithmetic + Codec, + Number: Member + MaybeSerializeDebug + ::rstd::hash::Hash + MaybeDisplay + SimpleArithmetic + Codec + Copy + Into, Hash: HashT, DigestItem: DigestItemT + Codec, Hash::Output: Default + ::rstd::hash::Hash + Copy + Member + MaybeSerializeDebugButNotDeserialize + MaybeDisplay + SimpleBitOps + Codec, @@ -116,7 +126,7 @@ impl traits::Header for Header Header where - Number: Member + ::rstd::hash::Hash + Copy + MaybeDisplay + SimpleArithmetic + Codec, + Number: Member + ::rstd::hash::Hash + Copy + MaybeDisplay + SimpleArithmetic + Codec + Into, Hash: HashT, DigestItem: DigestItemT + Codec, Hash::Output: Default + ::rstd::hash::Hash + Copy + Member + MaybeDisplay + SimpleBitOps + Codec, @@ -127,3 +137,26 @@ impl Header where Hash::hash_of(self) } } + +#[cfg(all(test, feature = "std"))] +mod tests { + use super::*; + + #[test] + fn should_serialize_numbers() { + fn serialize(num: u128) -> String { + let mut v = vec![]; + { + let mut ser = ::serde_json::Serializer::new(::std::io::Cursor::new(&mut v)); + serialize_number(&num, &mut ser).unwrap(); + } + String::from_utf8(v).unwrap() + } + + assert_eq!(serialize(0), "\"0x0\"".to_owned()); + assert_eq!(serialize(1), "\"0x1\"".to_owned()); + assert_eq!(serialize(u64::max_value() as u128), "\"0xffffffffffffffff\"".to_owned()); + assert_eq!(serialize(u64::max_value() as u128 + 1), "\"0x10000000000000000\"".to_owned()); + } + +} -- GitLab From 6cf1d484415de4bdd7dcc67e42713dabbeebcdaa Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Fri, 11 Jan 2019 23:44:15 +1300 Subject: [PATCH 055/349] Move double map to support module and generalize it (#1379) * Move double map to support and generalize it * add docs back * reduces the number of required allocations --- srml/contract/src/account_db.rs | 3 +- srml/contract/src/lib.rs | 18 +++-- srml/contract/src/tests.rs | 3 +- srml/{contract => support}/src/double_map.rs | 74 ++++++++++---------- srml/support/src/lib.rs | 2 + 5 files changed, 55 insertions(+), 45 deletions(-) rename srml/{contract => support}/src/double_map.rs (56%) diff --git a/srml/contract/src/account_db.rs b/srml/contract/src/account_db.rs index d7ff094003..af71b6bbd9 100644 --- a/srml/contract/src/account_db.rs +++ b/srml/contract/src/account_db.rs @@ -17,11 +17,10 @@ //! Auxilliaries to help with managing partial changes to accounts state. use super::{CodeOf, StorageOf, Trait}; -use double_map::StorageDoubleMap; use rstd::cell::RefCell; use rstd::collections::btree_map::{BTreeMap, Entry}; use rstd::prelude::*; -use runtime_support::StorageMap; +use runtime_support::{StorageMap, StorageDoubleMap}; use {balances, system}; pub struct ChangeEntry { diff --git a/srml/contract/src/lib.rs b/srml/contract/src/lib.rs index cf1d2ac1db..199f005881 100644 --- a/srml/contract/src/lib.rs +++ b/srml/contract/src/lib.rs @@ -84,7 +84,6 @@ extern crate assert_matches; extern crate wabt; mod account_db; -mod double_map; mod exec; mod vm; mod gas; @@ -94,15 +93,15 @@ mod tests; use exec::ExecutionContext; use account_db::{AccountDb, OverlayAccountDb}; -use double_map::StorageDoubleMap; use rstd::prelude::*; use rstd::marker::PhantomData; use codec::{Codec, HasCompact}; use runtime_primitives::traits::{Hash, As, SimpleArithmetic}; use runtime_support::dispatch::Result; -use runtime_support::{Parameter, StorageMap, StorageValue}; +use runtime_support::{Parameter, StorageMap, StorageValue, StorageDoubleMap}; use system::ensure_signed; +use runtime_io::{blake2_256, twox_128}; pub trait Trait: balances::Trait { /// Function type to get the contract address given the creator. @@ -302,11 +301,22 @@ decl_storage! { /// /// TODO: keys should also be able to take AsRef to ensure Vecs can be passed as &[u8] pub(crate) struct StorageOf(::rstd::marker::PhantomData); -impl double_map::StorageDoubleMap for StorageOf { +impl StorageDoubleMap for StorageOf { const PREFIX: &'static [u8] = b"con:sto:"; type Key1 = T::AccountId; type Key2 = Vec; type Value = Vec; + + /// Hashed by XX + fn derive_key1(key1_data: Vec) -> Vec { + twox_128(&key1_data).to_vec() + } + + /// Blake2 is used for `Key2` is because it will be used as a key for contract's storage and + /// thus will be susceptible for a untrusted input. + fn derive_key2(key2_data: Vec) -> Vec { + blake2_256(&key2_data).to_vec() + } } impl balances::OnFreeBalanceZero for Module { diff --git a/srml/contract/src/tests.rs b/srml/contract/src/tests.rs index 330f11a3b2..b28bfcb82d 100644 --- a/srml/contract/src/tests.rs +++ b/srml/contract/src/tests.rs @@ -14,12 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Substrate. If not, see . -use double_map::StorageDoubleMap; use runtime_io::with_externalities; use runtime_primitives::testing::{Digest, DigestItem, H256, Header}; use runtime_primitives::traits::{BlakeTwo256}; use runtime_primitives::BuildStorage; -use runtime_support::StorageMap; +use runtime_support::{StorageMap, StorageDoubleMap}; use substrate_primitives::{Blake2Hasher}; use system::{Phase, EventRecord}; use wabt; diff --git a/srml/contract/src/double_map.rs b/srml/support/src/double_map.rs similarity index 56% rename from srml/contract/src/double_map.rs rename to srml/support/src/double_map.rs index bd154e100e..afc707b4f1 100644 --- a/srml/contract/src/double_map.rs +++ b/srml/support/src/double_map.rs @@ -15,36 +15,10 @@ // along with Substrate. If not, see . //! An implementation of double map backed by storage. -//! -//! This implementation is somewhat specialized to the tracking of the storage of accounts. use rstd::prelude::*; use codec::{Codec, Encode}; -use runtime_support::storage::unhashed; -use runtime_io::{blake2_256, twox_128}; - -/// Returns only a first part of the storage key. -/// -/// Hashed by XX. -fn first_part_of_key(k1: M::Key1) -> [u8; 16] { - let mut raw_prefix = Vec::new(); - raw_prefix.extend(M::PREFIX); - raw_prefix.extend(Encode::encode(&k1)); - twox_128(&raw_prefix) -} - -/// Returns a compound key that consist of the two parts: (prefix, `k1`) and `k2`. -/// -/// The first part is hased by XX and then concatenated with a blake2 hash of `k2`. -fn full_key(k1: M::Key1, k2: M::Key2) -> Vec { - let first_part = first_part_of_key::(k1); - let second_part = blake2_256(&Encode::encode(&k2)); - - let mut k = Vec::new(); - k.extend(&first_part); - k.extend(&second_part); - k -} +use storage::unhashed; /// An implementation of a map with a two keys. /// @@ -54,11 +28,8 @@ fn full_key(k1: M::Key1, k2: M::Key2) -> Vec { /// # Mapping of keys to a storage path /// /// The storage key (i.e. the key under which the `Value` will be stored) is created from two parts. -/// The first part is a XX hash of a concatenation of the `PREFIX` and `Key1`. And the second part -/// is a blake2 hash of a `Key2`. -/// -/// Blake2 is used for `Key2` is because it will be used as a key for contract's storage and -/// thus will be susceptible for a untrusted input. +/// The first part is a hash of a concatenation of the `PREFIX` and `Key1`. And the second part +/// is a hash of a `Key2`. pub trait StorageDoubleMap { type Key1: Codec; type Key2: Codec; @@ -68,28 +39,57 @@ pub trait StorageDoubleMap { /// Insert an entry into this map. fn insert(k1: Self::Key1, k2: Self::Key2, val: Self::Value) { - unhashed::put(&full_key::(k1, k2)[..], &val); + unhashed::put(&Self::full_key(k1, k2)[..], &val); } /// Remove an entry from this map. fn remove(k1: Self::Key1, k2: Self::Key2) { - unhashed::kill(&full_key::(k1, k2)[..]); + unhashed::kill(&Self::full_key(k1, k2)[..]); } /// Get an entry from this map. /// /// If there is entry stored under the given keys, returns `None`. fn get(k1: Self::Key1, k2: Self::Key2) -> Option { - unhashed::get(&full_key::(k1, k2)[..]) + unhashed::get(&Self::full_key(k1, k2)[..]) } /// Returns `true` if value under the specified keys exists. fn exists(k1: Self::Key1, k2: Self::Key2) -> bool { - unhashed::exists(&full_key::(k1, k2)[..]) + unhashed::exists(&Self::full_key(k1, k2)[..]) } /// Removes all entries that shares the `k1` as the first key. fn remove_prefix(k1: Self::Key1) { - unhashed::kill_prefix(&first_part_of_key::(k1)) + unhashed::kill_prefix(&Self::derive_key1(Self::encode_key1(k1))) + } + + /// Encode key1 into Vec and prepend a prefix + fn encode_key1(key: Self::Key1) -> Vec { + let mut raw_prefix = Vec::new(); + raw_prefix.extend(Self::PREFIX); + raw_prefix.extend(Encode::encode(&key)); + raw_prefix + } + + /// Encode key2 into Vec + fn encode_key2(key: Self::Key2) -> Vec { + Encode::encode(&key) + } + + /// Derive the first part of the key + fn derive_key1(key1_data: Vec) -> Vec; + + /// Derive the remaining part of the key + fn derive_key2(key2_data: Vec) -> Vec; + + /// Returns a compound key that consist of the two parts: (prefix, `k1`) and `k2`. + /// The first part is hased and then concatenated with a hash of `k2`. + fn full_key(k1: Self::Key1, k2: Self::Key2) -> Vec { + let key1_data = Self::encode_key1(k1); + let key2_data = Self::encode_key2(k2); + let mut key = Self::derive_key1(key1_data); + key.extend(Self::derive_key2(key2_data)); + key } } diff --git a/srml/support/src/lib.rs b/srml/support/src/lib.rs index 6ab77d9b58..3a988426e2 100644 --- a/srml/support/src/lib.rs +++ b/srml/support/src/lib.rs @@ -67,12 +67,14 @@ pub mod metadata; mod runtime; #[macro_use] pub mod inherent; +mod double_map; pub use self::storage::{StorageVec, StorageList, StorageValue, StorageMap}; pub use self::hashable::Hashable; pub use self::dispatch::{Parameter, Dispatchable, Callable, IsSubType}; pub use self::metadata::RuntimeMetadata; pub use runtime_io::print; +pub use double_map::StorageDoubleMap; #[doc(inline)] pub use srml_support_procedural::decl_storage; -- GitLab From bf86ff0bd55d7512513838301e589d8ca68a5abf Mon Sep 17 00:00:00 2001 From: Xiliang Chen Date: Sat, 12 Jan 2019 00:51:19 +1300 Subject: [PATCH 056/349] new state api state_getKeys to expose storage keys (#1380) --- core/client/db/src/storage_cache.rs | 4 ++++ core/client/src/client.rs | 6 ++++++ core/client/src/light/backend.rs | 5 +++++ core/rpc/src/state/mod.rs | 10 ++++++++++ core/state-machine/src/backend.rs | 7 +++++++ core/state-machine/src/proving_backend.rs | 4 ++++ core/state-machine/src/trie_backend.rs | 20 ++++++++++++++++++++ 7 files changed, 56 insertions(+) diff --git a/core/client/db/src/storage_cache.rs b/core/client/db/src/storage_cache.rs index 27d5cec088..3411987d48 100644 --- a/core/client/db/src/storage_cache.rs +++ b/core/client/db/src/storage_cache.rs @@ -346,6 +346,10 @@ impl, B:Block> StateBackend for CachingState) -> Vec> { + self.state.keys(prefix) + } + fn try_into_trie_backend(self) -> Option> { self.state.try_into_trie_backend() } diff --git a/core/client/src/client.rs b/core/client/src/client.rs index f02e25f78c..8cd0d95f67 100644 --- a/core/client/src/client.rs +++ b/core/client/src/client.rs @@ -265,6 +265,12 @@ impl Client where &self.backend } + /// Return storage entry keys in state in a block of given hash with given prefix. + pub fn storage_keys(&self, id: &BlockId, key_prefix: &StorageKey) -> error::Result> { + let keys = self.state_at(id)?.keys(&key_prefix.0).into_iter().map(StorageKey).collect(); + Ok(keys) + } + /// Return single storage entry of contract under given address in state in a block of given hash. pub fn storage(&self, id: &BlockId, key: &StorageKey) -> error::Result> { Ok(self.state_at(id)? diff --git a/core/client/src/light/backend.rs b/core/client/src/light/backend.rs index 6beaf1271b..924a474acc 100644 --- a/core/client/src/light/backend.rs +++ b/core/client/src/light/backend.rs @@ -279,6 +279,11 @@ where Vec::new() } + fn keys(&self, _prefix: &Vec) -> Vec> { + // whole state is not available on light node + Vec::new() + } + fn try_into_trie_backend(self) -> Option> { None } diff --git a/core/rpc/src/state/mod.rs b/core/rpc/src/state/mod.rs index 209fe5bb3a..72175ca5df 100644 --- a/core/rpc/src/state/mod.rs +++ b/core/rpc/src/state/mod.rs @@ -51,6 +51,10 @@ build_rpc_trait! { #[rpc(name = "state_call", alias = ["state_callAt", ])] fn call(&self, String, Bytes, Trailing) -> Result; + /// Returns the keys with prefix, leave empty to get all the keys + #[rpc(name = "state_getKeys")] + fn storage_keys(&self, StorageKey, Trailing) -> Result>; + /// Returns a storage entry at a specific block's state. #[rpc(name = "state_getStorage", alias = ["state_getStorageAt", ])] fn storage(&self, StorageKey, Trailing) -> Result>; @@ -148,6 +152,12 @@ impl StateApi for State where Ok(Bytes(return_data)) } + fn storage_keys(&self, key_prefix: StorageKey, block: Trailing) -> Result> { + let block = self.unwrap_or_best(block)?; + trace!(target: "rpc", "Querying storage keys at {:?}", block); + Ok(self.client.storage_keys(&BlockId::Hash(block), &key_prefix)?) + } + fn storage(&self, key: StorageKey, block: Trailing) -> Result> { let block = self.unwrap_or_best(block)?; trace!(target: "rpc", "Querying storage at {:?} for key {}", block, HexDisplay::from(&key.0)); diff --git a/core/state-machine/src/backend.rs b/core/state-machine/src/backend.rs index ea1d19859e..a032ab1195 100644 --- a/core/state-machine/src/backend.rs +++ b/core/state-machine/src/backend.rs @@ -86,6 +86,9 @@ pub trait Backend { /// Get all key/value pairs into a Vec. fn pairs(&self) -> Vec<(Vec, Vec)>; + /// Get all keys with given prefix + fn keys(&self, prefix: &Vec) -> Vec>; + /// Try convert into trie backend. fn try_into_trie_backend(self) -> Option>; } @@ -283,6 +286,10 @@ impl Backend for InMemory where H::Out: HeapSizeOf { self.inner.get(&None).into_iter().flat_map(|map| map.iter().map(|(k, v)| (k.clone(), v.clone()))).collect() } + fn keys(&self, prefix: &Vec) -> Vec> { + self.inner.get(&None).into_iter().flat_map(|map| map.keys().filter(|k| k.starts_with(prefix)).cloned()).collect() + } + fn try_into_trie_backend(self) -> Option> { let mut mdb = MemoryDB::default(); // TODO: should be more correct and use ::new() let mut root = None; diff --git a/core/state-machine/src/proving_backend.rs b/core/state-machine/src/proving_backend.rs index 85afc0b3dc..2e9d2e5ff2 100644 --- a/core/state-machine/src/proving_backend.rs +++ b/core/state-machine/src/proving_backend.rs @@ -146,6 +146,10 @@ impl<'a, S, H> Backend for ProvingBackend<'a, S, H> self.backend.pairs() } + fn keys(&self, prefix: &Vec) -> Vec> { + self.backend.keys(prefix) + } + fn storage_root(&self, delta: I) -> (H::Out, MemoryDB) where I: IntoIterator, Option>)> { diff --git a/core/state-machine/src/trie_backend.rs b/core/state-machine/src/trie_backend.rs index f29608b5d1..543f8a2e04 100644 --- a/core/state-machine/src/trie_backend.rs +++ b/core/state-machine/src/trie_backend.rs @@ -105,6 +105,26 @@ impl, H: Hasher> Backend for TrieBackend where } } + fn keys(&self, prefix: &Vec) -> Vec> { + let mut read_overlay = MemoryDB::default(); // TODO: use new for correctness + let eph = Ephemeral::new(self.essence.backend_storage(), &mut read_overlay); + + let collect_all = || -> Result<_, Box>> { + let trie = TrieDB::::new(&eph, self.essence.root())?; + let mut v = Vec::new(); + for x in trie.iter()? { + let (key, _) = x?; + if key.starts_with(prefix) { + v.push(key.to_vec()); + } + } + + Ok(v) + }; + + collect_all().map_err(|e| debug!(target: "trie", "Error extracting trie keys: {}", e)).unwrap_or_default() + } + fn storage_root(&self, delta: I) -> (H::Out, MemoryDB) where I: IntoIterator, Option>)> { -- GitLab From 4731b80c9f8541ac37c7b9f78edab2cc4e47194d Mon Sep 17 00:00:00 2001 From: Benjamin Kampmann Date: Fri, 11 Jan 2019 15:20:40 +0100 Subject: [PATCH 057/349] Properly log sealing and the newly created proposal hash from aura (#1397) * Properly log sealing and the newly created proposal hash from aura * Update lib.rs --- core/basic-authorship/src/basic_authorship.rs | 19 ++++++++++--------- core/consensus/aura/src/lib.rs | 9 ++++++++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/core/basic-authorship/src/basic_authorship.rs b/core/basic-authorship/src/basic_authorship.rs index d4d39c4541..e524b6aa9e 100644 --- a/core/basic-authorship/src/basic_authorship.rs +++ b/core/basic-authorship/src/basic_authorship.rs @@ -232,15 +232,16 @@ impl Proposer where self.transaction_pool.remove_invalid(&unqueue_invalid); })?; - info!("Proposing block [number: {}; hash: {}; parent_hash: {}; extrinsics: [{}]]", - block.header().number(), - <::Block as BlockT>::Hash::from(block.header().hash()), - block.header().parent_hash(), - block.extrinsics().iter() - .map(|xt| format!("{}", BlakeTwo256::hash_of(xt))) - .collect::>() - .join(", ") - ); + info!("Prepared block for proposing at {} [hash: {:?}; parent_hash: {}; extrinsics: [{}]]", + block.header().number(), + <::Block as BlockT>::Hash::from(block.header().hash()), + block.header().parent_hash(), + block.extrinsics() + .iter() + .map(|xt| format!("{}", BlakeTwo256::hash_of(xt))) + .collect::>() + .join(", ") + ); let substrate_block = Decode::decode(&mut block.encode().as_slice()) .expect("blocks are defined to serialize to substrate blocks correctly; qed"); diff --git a/core/consensus/aura/src/lib.rs b/core/consensus/aura/src/lib.rs index f544c2f0e7..5906c267b3 100644 --- a/core/consensus/aura/src/lib.rs +++ b/core/consensus/aura/src/lib.rs @@ -304,6 +304,7 @@ pub fn start_aura( } let (header, body) = b.deconstruct(); + let header_num = header.number().clone(); let pre_hash = header.hash(); let parent_hash = header.parent_hash().clone(); @@ -316,7 +317,7 @@ pub fn start_aura( signature, ); - let import_block = ImportBlock { + let import_block: ImportBlock = ImportBlock { origin: BlockOrigin::Own, header, justification: None, @@ -327,6 +328,12 @@ pub fn start_aura( fork_choice: ForkChoiceStrategy::LongestChain, }; + info!("Pre-sealed block for proposal at {}. Hash now {:?}, previously {:?}.", + header_num, + import_block.post_header().hash(), + pre_hash + ); + if let Err(e) = block_import.import_block(import_block, None) { warn!(target: "aura", "Error with block built on {:?}: {:?}", parent_hash, e); -- GitLab From abdf57fcaaf41b578ef7ec8fa0730363d3ae3838 Mon Sep 17 00:00:00 2001 From: Benjamin Kampmann Date: Fri, 11 Jan 2019 16:40:36 +0100 Subject: [PATCH 058/349] Upgrade the rocksdb dependency to 0.11 (#1398) --- Cargo.lock | 98 ++++++++++++++++++---------------- core/client/Cargo.toml | 4 +- core/client/db/Cargo.toml | 7 +-- core/network-libp2p/Cargo.toml | 2 +- 4 files changed, 59 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index da7d831433..447aeca08f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,14 +184,15 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.37.4" +version = "0.43.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cexpr 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)", + "clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -291,10 +292,10 @@ dependencies = [ [[package]] name = "cexpr" -version = "0.2.3" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "nom 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -323,7 +324,7 @@ dependencies = [ [[package]] name = "clang-sys" -version = "0.23.0" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", @@ -667,6 +668,18 @@ dependencies = [ "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "env_logger" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "environmental" version = "1.0.0" @@ -1182,35 +1195,35 @@ dependencies = [ [[package]] name = "kvdb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", ] [[package]] name = "kvdb-memorydb" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kvdb-rocksdb" version = "0.1.4" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" dependencies = [ "elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "fs-swap 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "interleaved-ordered 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1556,11 +1569,12 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "5.14.2" +version = "5.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bindgen 0.43.2 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "make-cmd 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1636,14 +1650,6 @@ name = "matches" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "memchr" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "memchr" version = "2.1.2" @@ -1942,10 +1948,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "nom" -version = "3.2.1" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2057,7 +2063,7 @@ dependencies = [ [[package]] name = "parity-bytes" version = "0.1.0" -source = "git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6#616b40150ded71f57f650067fcbc5c99d7c343e6" +source = "git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d#b0317f649ab2c665b7987b8475878fc4d2e1f81d" [[package]] name = "parity-codec" @@ -2516,11 +2522,11 @@ dependencies = [ [[package]] name = "rocksdb" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)", + "librocksdb-sys 5.14.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -3382,8 +3388,8 @@ dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", "heapsize 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "hex-literal 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", + "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3407,9 +3413,9 @@ name = "substrate-client-db" version = "0.1.0" dependencies = [ "hash-db 0.9.0 (git+https://github.com/paritytech/trie)", - "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", - "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", - "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", + "kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", + "kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3632,7 +3638,7 @@ dependencies = [ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", "libp2p 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)", + "parity-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.84 (registry+https://github.com/rust-lang/crates.io-index)", @@ -4703,7 +4709,7 @@ dependencies = [ "checksum base64 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5032d51da2741729bfdaeb2664d9b8c6d9fd1e2b90715c660b6def36628499c2" "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" -"checksum bindgen 0.37.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1b25ab82877ea8fe6ce1ce1f8ac54361f0218bad900af9eb11803994bf67c221" +"checksum bindgen 0.43.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d52d263eacd15d26cbcf215d254b410bd58212aaa2d3c453a04b2d3b3adcf41" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum blake2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73b77e29dbd0115e43938be2d5128ecf81c0353e00acaa65339a1242586951d9" @@ -4717,11 +4723,11 @@ dependencies = [ "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" "checksum cast 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "011941fb53da1a8ac3e4132a1becc367c44fe13f630769f3143d8c66c91c6cb6" "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" -"checksum cexpr 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42aac45e9567d97474a834efdee3081b3c942b2205be932092f53354ce503d6c" +"checksum cexpr 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8fc0086be9ca82f7fc89fc873435531cb898b86e850005850de1f820e2db6e9b" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum chashmap 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "47e651a8c1eb0cbbaa730f705e2531e75276c6f2bbe2eb12662cfd305213dff8" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" -"checksum clang-sys 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d7f7c04e52c35222fffcc3a115b5daf5f7e2bfb71c13c4e2321afe1fc71859c2" +"checksum clang-sys 0.26.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ef0c1bcf2e99c649104bd7a7012d8f8802684400e03db0ec0af48583c6fa0e4" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" @@ -4758,6 +4764,7 @@ dependencies = [ "checksum elastic-array 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "88d4851b005ef16de812ea9acdb7bece2f0a40dd86c07b85631d7dafa54537bb" "checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" +"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e" "checksum environmental 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db746025e3ea695bfa0ae744dbacd5fcfc8db51b9760cf8bd0ab69708bb93c49" "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" "checksum eth-secp256k1 0.5.7 (git+https://github.com/paritytech/rust-secp256k1)" = "" @@ -4815,9 +4822,9 @@ dependencies = [ "checksum jsonrpc-ws-server 9.0.0 (git+https://github.com/paritytech/jsonrpc.git)" = "" "checksum keccak-hasher 0.1.0 (git+https://github.com/paritytech/trie)" = "" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" -"checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" -"checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=616b40150ded71f57f650067fcbc5c99d7c343e6)" = "" +"checksum kvdb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" +"checksum kvdb-memorydb 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" +"checksum kvdb-rocksdb 0.1.4 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" @@ -4840,7 +4847,7 @@ dependencies = [ "checksum libp2p-uds 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum libp2p-websocket 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" "checksum libp2p-yamux 0.1.0 (git+https://github.com/tomaka/libp2p-rs?rev=997d0163bc8a7e11559524ad8466bc3b1850c8ec)" = "" -"checksum librocksdb-sys 5.14.2 (registry+https://github.com/rust-lang/crates.io-index)" = "474d805d72e23a06310fa5201dfe182dc4b80ab1f18bb2823c1ac17ff9dcbaa2" +"checksum librocksdb-sys 5.14.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b9024327233e7fac7982440f73301c00046d438c5b1011e8f4e394226ce19007" "checksum linked-hash-map 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7860ec297f7008ff7a1e3382d7f7e1dcd69efc94751a2284bafc3d013c2aa939" "checksum linked-hash-map 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" @@ -4851,7 +4858,6 @@ dependencies = [ "checksum mashup 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f2d82b34c7fb11bb41719465c060589e291d505ca4735ea30016a91f6fc79c3b" "checksum mashup-impl 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "aa607bfb674b4efb310512527d64266b065de3f894fc52f84efcbf7eaa5965fb" "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" -"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" "checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum memory-db 0.9.0 (git+https://github.com/paritytech/trie)" = "" @@ -4870,7 +4876,7 @@ dependencies = [ "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" "checksum nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d138afcce92d219ccb6eb53d9b1e8a96ac0d633cfd3c53cd9856d96d1741bb8" -"checksum nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05aec50c70fd288702bcd93284a8444607f3292dbdf2a30de5ea5dcdbe72287b" +"checksum nom 4.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9c349f68f25f596b9f44cf0e7c69752a5c633b0550c3ff849518bfba0233774a" "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" @@ -4885,7 +4891,7 @@ dependencies = [ "checksum owning_ref 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d52571ddcb42e9c900c901a18d8d67e393df723fcd51dd59c5b1a85d0acb6cc" "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" "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-bytes 0.1.0 (git+https://github.com/paritytech/parity-common?rev=b0317f649ab2c665b7987b8475878fc4d2e1f81d)" = "" "checksum parity-codec 2.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dca389ea5e1632c89b2ce54f7e2b4a8a8c9d278042222a91e0bf95451218cb4c" "checksum parity-codec-derive 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffa42c2cb493b60b12c75b26e8c94cb734af4df4d7f2cc229dc04c1953dac189" "checksum parity-crypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8adf489acb31f1922db0ce43803b6f48a425241a8473611be3cc625a8e4a4c47" @@ -4937,7 +4943,7 @@ dependencies = [ "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rhododendron 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a09bc21b21795c366c8bf0e87afb71175f5f736b3a5b279b6f4e81839d0a877b" "checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" -"checksum rocksdb 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39be726e556e6f21d54d21cdf1be9f6df30c0411a5856c1abf3f4bb12498f2ed" +"checksum rocksdb 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f1651697fefd273bfb4fd69466cc2a9d20de557a0213b97233b22b5e95924b5e" "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0ceb8ce7a5e520de349e1fa172baeba4a9e8d5ef06c47471863530bc4972ee1e" diff --git a/core/client/Cargo.toml b/core/client/Cargo.toml index 82a72920da..d9c6d56b3f 100644 --- a/core/client/Cargo.toml +++ b/core/client/Cargo.toml @@ -19,7 +19,7 @@ substrate-keyring = { path = "../keyring", optional = true } substrate-trie = { path = "../trie", optional = true } substrate-telemetry = { path = "../telemetry", optional = true } hash-db = { git = "https://github.com/paritytech/trie", optional = true } -kvdb = { git = "https://github.com/paritytech/parity-common", optional = true, rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +kvdb = { git = "https://github.com/paritytech/parity-common", optional = true, rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } parity-codec = { version = "2.1", default-features = false } substrate-primitives = { path = "../primitives", default-features = false } @@ -30,7 +30,7 @@ sr-api-macros = { path = "../sr-api-macros" } [dev-dependencies] substrate-test-client = { path = "../test-client" } -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } [features] default = ["std"] diff --git a/core/client/db/Cargo.toml b/core/client/db/Cargo.toml index 77dd4d9bf8..bd5a03fc34 100644 --- a/core/client/db/Cargo.toml +++ b/core/client/db/Cargo.toml @@ -6,8 +6,9 @@ authors = ["Parity Technologies "] [dependencies] parking_lot = "0.7.1" log = "0.4" -kvdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } -kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +kvdb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } +# FIXME replace with release as soon as our rocksdb changes are released upstream https://github.com/paritytech/parity-common/issues/88 +kvdb-rocksdb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } lru-cache = "0.1" hash-db = { git = "https://github.com/paritytech/trie" } substrate-primitives = { path = "../../primitives" } @@ -21,6 +22,6 @@ substrate-state-db = { path = "../../state-db" } substrate-trie = { path = "../../trie" } [dev-dependencies] -kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="616b40150ded71f57f650067fcbc5c99d7c343e6" } +kvdb-memorydb = { git = "https://github.com/paritytech/parity-common", rev="b0317f649ab2c665b7987b8475878fc4d2e1f81d" } substrate-keyring = { path = "../../keyring" } substrate-test-client = { path = "../../test-client" } diff --git a/core/network-libp2p/Cargo.toml b/core/network-libp2p/Cargo.toml index 12f92bc9a1..7c7271e396 100644 --- a/core/network-libp2p/Cargo.toml +++ b/core/network-libp2p/Cargo.toml @@ -26,4 +26,4 @@ unsigned-varint = { version = "0.2.1", features = ["codec"] } [dev-dependencies] assert_matches = "1.2" -parity-bytes = { git = "https://github.com/paritytech/parity-common", rev = "616b40150ded71f57f650067fcbc5c99d7c343e6" } +parity-bytes = { git = "https://github.com/paritytech/parity-common", rev = "b0317f649ab2c665b7987b8475878fc4d2e1f81d" } -- GitLab From 7c9fa48c7e375c92bb6258d7b62cd55f4a107f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Drwi=C4=99ga?= Date: Fri, 11 Jan 2019 19:24:25 +0100 Subject: [PATCH 059/349] Fix serialization of extrinsics. (#1402) --- core/sr-primitives/src/lib.rs | 8 +++++++- node/primitives/src/lib.rs | 2 -- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/sr-primitives/src/lib.rs b/core/sr-primitives/src/lib.rs index 2deb05c90f..5c87782b04 100644 --- a/core/sr-primitives/src/lib.rs +++ b/core/sr-primitives/src/lib.rs @@ -534,7 +534,7 @@ pub struct OpaqueExtrinsic(pub Vec); #[cfg(feature = "std")] impl ::serde::Serialize for OpaqueExtrinsic { fn serialize(&self, seq: S) -> Result where S: ::serde::Serializer { - ::codec::Encode::using_encoded(&self.0, |bytes| seq.serialize_bytes(bytes)) + ::codec::Encode::using_encoded(&self.0, |bytes| ::substrate_primitives::bytes::serialize(bytes, seq)) } } @@ -617,4 +617,10 @@ mod tests { // check that as-style methods are not working with regular items assert!(b1.as_authorities_change().is_none()); } + + #[test] + fn opaque_extrinsic_serialization() { + let ex = super::OpaqueExtrinsic(vec![1, 2, 3, 4]); + assert_eq!(serde_json::to_string(&ex).unwrap(), "\"0x1001020304\"".to_owned()); + } } diff --git a/node/primitives/src/lib.rs b/node/primitives/src/lib.rs index 0273306134..504ac5db95 100644 --- a/node/primitives/src/lib.rs +++ b/node/primitives/src/lib.rs @@ -31,8 +31,6 @@ extern crate sr_primitives as runtime_primitives; extern crate substrate_primitives as primitives; use runtime_primitives::generic; -#[cfg(feature = "std")] -use primitives::bytes; use runtime_primitives::{OpaqueExtrinsic, traits::BlakeTwo256}; pub use runtime_primitives::BasicInherentData as InherentData; -- GitLab From b57c458587e5e41b785b0197daa00723cccca488 Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Fri, 11 Jan 2019 21:25:03 +0300 Subject: [PATCH 060/349] GRANDPA finality proof draft (#1268) * grandpa finality proof * prove GrandpaApi::grandpa_authorities using parent block + some docs * create justification when consensus data is changed * generate justifications periodically * test for ConsensusChanges --- core/client/src/genesis.rs | 2 +- core/finality-grandpa/primitives/src/lib.rs | 4 + core/finality-grandpa/src/finality_proof.rs | 428 ++++++++++++++++++ core/finality-grandpa/src/lib.rs | 212 +++++++-- core/finality-grandpa/src/tests.rs | 101 ++++- core/network/src/test/mod.rs | 17 +- core/rpc/src/author/tests.rs | 10 +- core/service/src/components.rs | 2 +- core/sr-primitives/src/traits.rs | 2 +- core/test-client/src/block_builder_ext.rs | 2 +- core/test-runtime/src/lib.rs | 28 +- core/test-runtime/src/system.rs | 49 +- .../substrate_test_runtime.compact.wasm | Bin 41787 -> 46028 bytes core/transaction-pool/graph/src/pool.rs | 9 +- core/transaction-pool/src/tests.rs | 27 +- node/cli/src/service.rs | 1 + .../release/node_runtime.compact.wasm | Bin 791790 -> 791154 bytes srml/consensus/src/lib.rs | 5 +- 18 files changed, 786 insertions(+), 113 deletions(-) create mode 100644 core/finality-grandpa/src/finality_proof.rs diff --git a/core/client/src/genesis.rs b/core/client/src/genesis.rs index d7d398a4e9..098c7a35e9 100644 --- a/core/client/src/genesis.rs +++ b/core/client/src/genesis.rs @@ -70,7 +70,7 @@ mod tests { let signature = Pair::from(Keyring::from_public(Public::from_raw(tx.from.to_fixed_bytes())).unwrap()) .sign(&tx.encode()).into(); - Extrinsic { transfer: tx, signature } + Extrinsic::Transfer(tx, signature) }).collect::>(); let extrinsics_root = ordered_trie_root::(transactions.iter().map(Encode::encode)).into(); diff --git a/core/finality-grandpa/primitives/src/lib.rs b/core/finality-grandpa/primitives/src/lib.rs index 15e4a027f6..8776c262a0 100644 --- a/core/finality-grandpa/primitives/src/lib.rs +++ b/core/finality-grandpa/primitives/src/lib.rs @@ -97,6 +97,10 @@ decl_runtime_apis! { /// Get the current GRANDPA authorities and weights. This should not change except /// for when changes are scheduled and the corresponding delay has passed. + /// + /// When called at block B, it will return the set of authorities that should be + /// used to finalize descendants of this block (B+1, B+2, ...). The block B itself + /// is finalized by the authorities from block B-1. fn grandpa_authorities() -> Vec<(Ed25519AuthorityId, u64)>; } } diff --git a/core/finality-grandpa/src/finality_proof.rs b/core/finality-grandpa/src/finality_proof.rs new file mode 100644 index 0000000000..c927aa68a0 --- /dev/null +++ b/core/finality-grandpa/src/finality_proof.rs @@ -0,0 +1,428 @@ +// Copyright 2018 Parity Technologies (UK) Ltd. +// This file is part of Substrate. + +// Substrate is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Substrate is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Substrate. If not, see . + +//! GRANDPA block finality proof generation and check. +//! +//! Finality of block B is proved by providing: +//! 1) valid headers sub-chain from the block B to the block F; +//! 2) valid (with respect to proved authorities) GRANDPA justification of the block F; +//! 3) proof-of-execution of the `grandpa_authorities` call at the block F. +//! +//! Since earliest possible justification is returned, the GRANDPA authorities set +//! at the block F is guaranteed to be the same as in the block B (this is because block +//! that enacts new GRANDPA authorities set always comes with justification). It also +//! means that the `set_id` is the same at blocks B and F. +//! +//! The caller should track the `set_id`. The most straightforward way is to fetch finality +//! proofs ONLY for blocks on the tip of the chain and track the latest known `set_id`. + +use std::collections::HashMap; + +use client::{ + blockchain::Backend as BlockchainBackend, + error::{Error as ClientError, ErrorKind as ClientErrorKind, Result as ClientResult}, + light::fetcher::RemoteCallRequest, +}; +use codec::{Encode, Decode}; +use grandpa::BlockNumberOps; +use runtime_primitives::generic::BlockId; +use runtime_primitives::traits::{ + NumberFor, Block as BlockT, Header as HeaderT, One, +}; +use substrate_primitives::{Ed25519AuthorityId, H256}; + +use GrandpaJustification; + +/// Prepare proof-of-finality for the given block. +/// +/// The proof is the serialized `FinalityProof` constructed using earliest known +/// justification of the block. None is returned if there's no known justification atm. +pub fn prove_finality( + blockchain: &B, + generate_execution_proof: G, + block: Block::Hash, +) -> ::client::error::Result>> + where + B: BlockchainBackend, + G: Fn(&BlockId, &str, &[u8]) -> ClientResult>>, +{ + let block_id = BlockId::Hash(block); + let mut block_number = blockchain.expect_block_number_from_id(&block_id)?; + + // early-return if we sure that the block isn't finalized yet + let info = blockchain.info()?; + if info.finalized_number < block_number { + return Ok(None); + } + + // early-return if we sure that the block is NOT a part of canonical chain + let canonical_block = blockchain.expect_block_hash_from_id(&BlockId::Number(block_number))?; + if block != canonical_block { + return Err(ClientErrorKind::Backend( + "Cannot generate finality proof for non-canonical block".into() + ).into()); + } + + // now that we know that the block is finalized, we can generate finalization proof + + // we need to prove grandpa authorities set that has generated justification + // BUT since `GrandpaApi::grandpa_authorities` call returns the set that becames actual + // at the next block, the proof-of execution is generated using parent block' state + // (this will fail if we're trying to prove genesis finality, but such the call itself is redundant) + let mut current_header = blockchain.expect_header(BlockId::Hash(block))?; + let parent_block_id = BlockId::Hash(*current_header.parent_hash()); + let authorities_proof = generate_execution_proof( + &parent_block_id, + "GrandpaApi_grandpa_authorities", + &[], + )?; + + // search for earliest post-block (inclusive) justification + let mut finalization_path = Vec::new(); + loop { + finalization_path.push(current_header); + + match blockchain.justification(BlockId::Number(block_number))? { + Some(justification) => return Ok(Some(FinalityProof { + finalization_path, + justification, + authorities_proof, + }.encode())), + None if block_number == info.finalized_number => break, + None => { + block_number = block_number + One::one(); + current_header = blockchain.expect_header(BlockId::Number(block_number))?; + }, + } + } + + Err(ClientErrorKind::Backend( + "cannot find justification for finalized block".into() + ).into()) +} + +/// Check proof-of-finality for the given block. +/// +/// Returns the vector of headers (including `block` header, ordered by ASC block number) that MUST be +/// validated + imported at once (i.e. within single db transaction). If at least one of those headers +/// is invalid, all other MUST be considered invalid. +pub fn check_finality_proof, C>( + check_execution_proof: C, + parent_header: Block::Header, + block: (NumberFor, Block::Hash), + set_id: u64, + remote_proof: Vec, +) -> ClientResult> + where + NumberFor: grandpa::BlockNumberOps, + C: Fn(&RemoteCallRequest) -> ClientResult>, +{ + do_check_finality_proof::>( + check_execution_proof, + parent_header, + block, + set_id, + remote_proof, + ) +} + +/// Check proof-of-finality using given justification type. +fn do_check_finality_proof, C, J>( + check_execution_proof: C, + parent_header: Block::Header, + block: (NumberFor, Block::Hash), + set_id: u64, + remote_proof: Vec, +) -> ClientResult> + where + NumberFor: grandpa::BlockNumberOps, + C: Fn(&RemoteCallRequest) -> ClientResult>, + J: ProvableJustification, +{ + // decode finality proof + let proof = FinalityProof::::decode(&mut &remote_proof[..]) + .ok_or_else(|| ClientErrorKind::BadJustification("failed to decode finality proof".into()))?; + + // check that the first header in finalization path is the block itself + { + let finalized_header = proof.finalization_path.first() + .ok_or_else(|| ClientError::from(ClientErrorKind::BadJustification( + "finality proof: finalized path is empty".into() + )))?; + if *finalized_header.number() != block.0 || finalized_header.hash() != block.1 { + return Err(ClientErrorKind::BadJustification( + "finality proof: block is not a part of finalized path".into() + ).into()); + } + } + + // check that the last header in finalization path is the jsutification target block + let just_block = proof.justification.target_block(); + { + let finalized_header = proof.finalization_path.last() + .expect("checked above that proof.finalization_path is not empty; qed"); + if *finalized_header.number() != just_block.0 || finalized_header.hash() != just_block.1 { + return Err(ClientErrorKind::BadJustification( + "finality proof: target jsutification block is not a part of finalized path".into() + ).into()); + } + } + + // check authorities set proof && get grandpa authorities that should have signed justification + let grandpa_authorities = check_execution_proof(&RemoteCallRequest { + block: just_block.1, + header: parent_header, + method: "GrandpaApi_grandpa_authorities".into(), + call_data: vec![], + retry_count: None, + })?; + let grandpa_authorities: Vec<(Ed25519AuthorityId, u64)> = Decode::decode(&mut &grandpa_authorities[..]) + .ok_or_else(|| ClientErrorKind::BadJustification("failed to decode GRANDPA authorities set proof".into()))?; + + // and now check justification + proof.justification.verify(set_id, &grandpa_authorities.into_iter().collect())?; + + Ok(proof.finalization_path) +} + +/// Proof of finality. +/// +/// Finality of block B is proved by providing: +/// 1) valid headers sub-chain from the block B to the block F; +/// 2) proof of `GrandpaApi::grandpa_authorities()` call at the block F; +/// 3) valid (with respect to proved authorities) GRANDPA justification of the block F. +#[derive(Debug, PartialEq, Encode, Decode)] +struct FinalityProof { + /// Headers-path (ordered by block number, ascending) from the block we're gathering proof for + /// (inclusive) to the target block of the justification (inclusive). + pub finalization_path: Vec