diff --git a/.buildkite/rust/common.sh b/.buildkite/rust/common.sh index b533d7333..c33c1360b 100644 --- a/.buildkite/rust/common.sh +++ b/.buildkite/rust/common.sh @@ -12,6 +12,25 @@ export INTEL_SGX_SDK="/opt/sgxsdk" export EKIDEN_UNSAFE_SKIP_AVR_VERIFY="1" export RUST_BACKTRACE="1" +################################## +# Set up RUSTFLAGS for the build # +################################## +if [ -z ${RUSTLINT+x} ]; then + RUSTLINT="" + for opt in $(cat .buildkite/rust/lint.txt | grep -v '#'); do + RUSTLINT=$RUSTLINT" -D "$opt + done + + export RUSTLINT + if [ -z ${RUSTFLAGS+x} ]; then + export RUSTFLAGS=$RUSTLINT + else + export RUSTFLAGS=$RUSTFLAGS" "$RUSTLINT + fi + + echo "Using RUSTFLAGS="$RUSTFLAGS +fi + #################################################### # By default, .bashrc will quit if the shell # is not interactive. It checks whether $PS1 is diff --git a/.buildkite/rust/lint.txt b/.buildkite/rust/lint.txt new file mode 100644 index 000000000..67d9ed104 --- /dev/null +++ b/.buildkite/rust/lint.txt @@ -0,0 +1,32 @@ +# +# list of lints that will be used to compile the code +# elements after a '#' will be ignored +# +bad-style +const-err +dead-code +improper-ctypes +legacy-directory-ownership +non-shorthand-field-patterns +no-mangle-generic-items +overflowing-literals +path-statements +patterns-in-fns-without-body +plugin-as-library +private-in-public +safe-extern-statics +unconditional-recursion +unions-with-drop-fields +# unused +unused-allocation +unused-comparisons +unused-parens +while-true +# missing-debug-implementations +# missing-docs +# trivial-casts +# trivial-numeric-casts +# unused-extern-crates +# unused-import-braces +# unused-qualifications +# unused-results diff --git a/.gitignore b/.gitignore index 677408317..6f87e4e78 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,7 @@ tests/rpc-tests/ # Coverage report from Tarpaulin cobertura.xml + +# in case credentials are put in the repo for using +# inside the docker container +.git-credentials diff --git a/api/build.rs b/api/build.rs index 4921aeb28..bde94f10c 100644 --- a/api/build.rs +++ b/api/build.rs @@ -1,3 +1,5 @@ +//! Build crate for the ekiden api. + extern crate ekiden_tools; fn main() { diff --git a/api/src/lib.rs b/api/src/lib.rs index 8119bdc24..696cb37da 100644 --- a/api/src/lib.rs +++ b/api/src/lib.rs @@ -1,5 +1,4 @@ extern crate protobuf; -extern crate serde; #[macro_use] extern crate serde_derive; diff --git a/build.rs b/build.rs index f5bd71779..f3d16c98a 100644 --- a/build.rs +++ b/build.rs @@ -1,3 +1,5 @@ +//! build crate for the ekiden runtime based enclave + extern crate ekiden_edl; extern crate ekiden_tools; diff --git a/common/Cargo.toml b/common/Cargo.toml index 43f7d2457..2a8edad02 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -18,9 +18,6 @@ keccak-hash = { git = "https://github.com/oasislabs/parity", branch = "ekiden" } lazy_static = { version = "1.1.0", features = ["spin_no_std"] } sodalite = "0.3.0" -[target.'cfg(not(target_env = "sgx"))'.dependencies] -rand = "0.4.2" - [dev-dependencies] ekiden-storage-dummy = { git = "https://github.com/oasislabs/ekiden", branch = "master" } diff --git a/common/src/confidential/confidential_ctx.rs b/common/src/confidential/confidential_ctx.rs index 8d3678128..e86d76a3f 100644 --- a/common/src/confidential/confidential_ctx.rs +++ b/common/src/confidential/confidential_ctx.rs @@ -1,3 +1,4 @@ +#![deny(warnings)] use super::key_manager::KeyManagerClient; use ekiden_core::mrae::{ nonce::{Nonce, NONCE_SIZE}, diff --git a/common/src/confidential/key_manager.rs b/common/src/confidential/key_manager.rs index cbf3c6b7a..25e76c3b1 100644 --- a/common/src/confidential/key_manager.rs +++ b/common/src/confidential/key_manager.rs @@ -41,9 +41,13 @@ impl KeyManagerClient { } } +#[cfg(not(feature = "test"))] +#[derive(Debug)] /// Wrapper around the Ekiden key manager client to provide a more convenient /// Ethereum address based interface along with runtime-specific utility methods. struct KeyManager; + +#[cfg(not(feature = "test"))] impl KeyManager { /// Returns the contract id for the given contract address. The contract_id /// is used to fetch keys for a contract. diff --git a/common/src/lib.rs b/common/src/lib.rs index e15273eb1..4667f56dc 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -16,12 +16,6 @@ extern crate keccak_hash; #[macro_use] extern crate lazy_static; -#[cfg(not(target_env = "sgx"))] -extern crate rand; - -#[cfg(target_env = "sgx")] -extern crate sgx_rand; - pub mod confidential; use std::{ @@ -318,6 +312,7 @@ where } } +#[derive(Debug)] /// Blockchain state database. pub struct BlockchainStateDb { db: Mutex, diff --git a/gateway/Cargo.toml b/gateway/Cargo.toml index ce3a77e97..76bd1ccd8 100644 --- a/gateway/Cargo.toml +++ b/gateway/Cargo.toml @@ -6,12 +6,8 @@ authors = ["Oasis Labs Inc. ", "Parity Technologies , + #[cfg(not(test))] snapshot_manager: Option, eip86_transition: u64, environment: Arc, + #[cfg(not(test))] storage_backend: Arc, /// The most recent block for which we have sent notifications. notified_block_number: Mutex, @@ -118,9 +119,11 @@ impl Client { Self { client: client, engine: spec.engine.clone(), + #[cfg(not(test))] snapshot_manager: snapshot_manager, eip86_transition: spec.params().eip86_transition, environment, + #[cfg(not(test))] storage_backend: backend, // start at current block notified_block_number: Mutex::new(current_block_number), @@ -140,10 +143,8 @@ impl Client { Self { client: test_helpers::get_test_runtime_client(), engine: spec.engine.clone(), - snapshot_manager: None, eip86_transition: spec.params().eip86_transition, environment: environment, - storage_backend: Arc::new(DummyStorageBackend::new()), notified_block_number: Mutex::new(0), listeners: RwLock::new(vec![]), gas_price: U256::from(1_000_000_000), @@ -817,9 +818,9 @@ impl Client { .is_confidential(transaction) .map_err(|_| CallError::StateCorrupt)? { - self.confidential_estimate_gas(transaction, id) + self.confidential_estimate_gas(transaction) } else { - self._estimate_gas(transaction, id, db, state) + self._estimate_gas(transaction, db, state) } } @@ -828,7 +829,6 @@ impl Client { fn _estimate_gas( &self, transaction: &SignedTransaction, - id: BlockId, db: StateDb, mut state: EthState, ) -> Result { @@ -849,7 +849,6 @@ impl Client { fn confidential_estimate_gas( &self, transaction: &SignedTransaction, - id: BlockId, ) -> Result { info!("estimating gas for a confidential contract"); diff --git a/gateway/src/impls/confidential.rs b/gateway/src/impls/confidential.rs index c1fac58bb..b0ed2d068 100644 --- a/gateway/src/impls/confidential.rs +++ b/gateway/src/impls/confidential.rs @@ -1,34 +1,25 @@ use client::Client; -use ekiden_common::bytes::B512; -use ekiden_core::futures::FutureExt; -use ekiden_keymanager_common::confidential; use ethereum_api::TransactionRequest; use ethereum_types::Address; use impls::eth::EthClient; -use jsonrpc_core::{ - futures::{future, Future}, - BoxFuture, Error, ErrorCode, Result, -}; +use jsonrpc_core::{futures::Future, BoxFuture, Error, ErrorCode, Result}; use jsonrpc_macros::Trailing; use parity_rpc::v1::{ helpers::errors, metadata::Metadata, - traits::Eth, - types::{BlockNumber, Bytes, CallRequest, H256}, + types::{BlockNumber, Bytes, CallRequest}, }; use std::sync::Arc; use traits::confidential::{Confidential, PublicKeyResult}; pub struct ConfidentialClient { client: Arc, - eth_client: EthClient, } impl ConfidentialClient { pub fn new(client: Arc) -> Self { ConfidentialClient { client: client.clone(), - eth_client: EthClient::new(&client), } } } @@ -45,7 +36,7 @@ impl Confidential for ConfidentialClient { fn call_enc( &self, - meta: Self::Metadata, + _meta: Self::Metadata, request: CallRequest, tag: Trailing, ) -> BoxFuture { diff --git a/gateway/src/impls/oasis.rs b/gateway/src/impls/oasis.rs index 0a8fc629b..bbbeec27e 100644 --- a/gateway/src/impls/oasis.rs +++ b/gateway/src/impls/oasis.rs @@ -1,12 +1,11 @@ -use std::{str::FromStr, sync::Arc}; +use std::sync::Arc; -use ekiden_common::bytes::H256; use ekiden_core::futures::Future; use ethereum_types::Address; -use jsonrpc_core::{futures::future, BoxFuture, Error, ErrorCode, Result}; +use jsonrpc_core::{BoxFuture, Error, ErrorCode}; use jsonrpc_macros::Trailing; -use parity_rpc::v1::types::{BlockNumber, H160 as RpcH160, H256 as RpcH256}; +use parity_rpc::v1::types::{BlockNumber, H160 as RpcH160}; use client::Client; use impls::eth::EthClient; diff --git a/gateway/src/informant.rs b/gateway/src/informant.rs index a2839fd5d..da4913edb 100644 --- a/gateway/src/informant.rs +++ b/gateway/src/informant.rs @@ -110,11 +110,13 @@ impl RpcStats { .unwrap_or(0) } + #[cfg(test)] /// Returns number of open sessions pub fn sessions(&self) -> usize { self.sessions.read().len() } + #[cfg(test)] /// Returns requests rate pub fn requests_rate(&self, id: &H256) -> usize { self.sessions diff --git a/gateway/src/lib.rs b/gateway/src/lib.rs index 4933f24b7..3e55185bf 100644 --- a/gateway/src/lib.rs +++ b/gateway/src/lib.rs @@ -18,51 +18,35 @@ #[macro_use] extern crate clap; -extern crate env_logger; -#[macro_use] extern crate futures; #[macro_use] extern crate lazy_static; #[macro_use] extern crate log; extern crate parking_lot; -extern crate path; extern crate rayon; -extern crate regex; -extern crate rustc_hex; -extern crate serde; -extern crate serde_json; #[macro_use] extern crate serde_derive; -extern crate toml; extern crate jsonrpc_core; #[macro_use] extern crate jsonrpc_macros; extern crate jsonrpc_http_server; -extern crate jsonrpc_ipc_server; extern crate jsonrpc_pubsub; extern crate jsonrpc_ws_server; extern crate common_types; -#[macro_use] extern crate ethcore; extern crate ethcore_bytes as bytes; extern crate ethcore_transaction as transaction; extern crate ethereum_types; -extern crate evm; #[cfg(test)] extern crate hex; -extern crate journaldb; extern crate keccak_hash as hash; extern crate kvdb; -extern crate parity_machine; extern crate parity_reactor; extern crate parity_rpc; -extern crate rlp; extern crate rlp_compress; -extern crate util_error; -extern crate vm; #[macro_use] extern crate client_utils; @@ -77,7 +61,6 @@ extern crate ekiden_keymanager_common; extern crate ekiden_registry_client; #[cfg(test)] extern crate ekiden_roothash_client; -extern crate ekiden_rpc_client; #[cfg(test)] extern crate ekiden_scheduler_client; extern crate ekiden_storage_base; @@ -119,7 +102,7 @@ use ethereum_types::U256; use ekiden_core::{environment::Environment, x509}; use ekiden_runtime_client::create_runtime_client; -use ekiden_storage_base::{BackendIdentityMapper, StorageBackend}; +use ekiden_storage_base::BackendIdentityMapper; use ethereum_api::with_api; pub use self::run::RunningClient; diff --git a/gateway/src/middleware.rs b/gateway/src/middleware.rs index 457780fd3..78bddc741 100644 --- a/gateway/src/middleware.rs +++ b/gateway/src/middleware.rs @@ -252,7 +252,7 @@ mod tests { let request_1 = make_request(1); let response = dispatcher - .on_request(request_1, metadata.clone(), |request, meta| { + .on_request(request_1, metadata.clone(), |_request, _meta| { Box::new(rpc::futures::finished(None)) }) .wait() @@ -284,15 +284,15 @@ mod tests { let request_1 = make_request(1); let request_2 = make_request(2); - let response = dispatcher - .on_request(request_1, metadata.clone(), |request, meta| { + let _response = dispatcher + .on_request(request_1, metadata.clone(), |_request, _meta| { Box::new(rpc::futures::finished(None)) }) .wait() .unwrap(); let response = dispatcher - .on_request(request_2, metadata.clone(), |request, meta| { + .on_request(request_2, metadata.clone(), |_request, _meta| { Box::new(rpc::futures::finished(None)) }) .wait() @@ -348,7 +348,7 @@ mod tests { // batch size: 1 (should pass) let response_1 = middleware - .on_request(batch_1, (), |request, meta| { + .on_request(batch_1, (), |_request, _meta| { Box::new(rpc::futures::finished(None)) }) .wait() @@ -359,7 +359,7 @@ mod tests { // batch size: 2 (should fail) let response_2 = middleware - .on_request(batch_2, (), |request, meta| { + .on_request(batch_2, (), |_request, _meta| { Box::new(rpc::futures::finished(None)) }) .wait() diff --git a/gateway/src/rpc.rs b/gateway/src/rpc.rs index 6cd5f53c0..0a3bea952 100644 --- a/gateway/src/rpc.rs +++ b/gateway/src/rpc.rs @@ -42,12 +42,6 @@ pub struct HttpConfiguration { pub max_batch_size: usize, } -impl HttpConfiguration { - pub fn address(&self) -> Option { - address(self.enabled, &self.interface, self.port, &self.hosts) - } -} - impl Default for HttpConfiguration { fn default() -> Self { HttpConfiguration { diff --git a/gateway/src/rpc_apis.rs b/gateway/src/rpc_apis.rs index 13ed2704a..19f73b108 100644 --- a/gateway/src/rpc_apis.rs +++ b/gateway/src/rpc_apis.rs @@ -63,6 +63,8 @@ impl FromStr for Api { #[derive(Debug, Clone)] pub enum ApiSet { + // Used in tests. + #[cfg(test)] // Safe context (like token-protected WS interface) SafeContext, // Unsafe context (like jsonrpc over http) @@ -239,6 +241,7 @@ impl ApiSet { match *self { ApiSet::List(ref apis) => apis.clone(), ApiSet::UnsafeContext => public_list, + #[cfg(test)] ApiSet::SafeContext => public_list, ApiSet::All => public_list, } diff --git a/gateway/src/test_helpers.rs b/gateway/src/test_helpers.rs index 53b278879..dffe3fbb5 100644 --- a/gateway/src/test_helpers.rs +++ b/gateway/src/test_helpers.rs @@ -342,7 +342,7 @@ impl Database for MockDb { unimplemented!(); } - fn with_encryption_key(&mut self, key: StateKeyType, _f: F) -> R + fn with_encryption_key(&mut self, _key: StateKeyType, _f: F) -> R where F: FnOnce(&mut DatabaseHandle) -> R, { diff --git a/gateway/src/traits/confidential.rs b/gateway/src/traits/confidential.rs index 2592d151c..2621d88d8 100644 --- a/gateway/src/traits/confidential.rs +++ b/gateway/src/traits/confidential.rs @@ -1,8 +1,7 @@ -use ekiden_common::bytes::B512; use ethereum_types::Address; use jsonrpc_core::{BoxFuture, Result}; use jsonrpc_macros::Trailing; -use parity_rpc::v1::types::{BlockNumber, Bytes, CallRequest, H256}; +use parity_rpc::v1::types::{BlockNumber, Bytes, CallRequest}; build_rpc_trait! { pub trait Confidential { diff --git a/gateway/src/traits/oasis.rs b/gateway/src/traits/oasis.rs index 68fe1a472..bdeb48e25 100644 --- a/gateway/src/traits/oasis.rs +++ b/gateway/src/traits/oasis.rs @@ -1,9 +1,9 @@ //! Oasis rpc interface. -use jsonrpc_core::{BoxFuture, Result}; +use jsonrpc_core::BoxFuture; use jsonrpc_macros::Trailing; -use parity_rpc::v1::types::{BlockNumber, H160, H256}; +use parity_rpc::v1::types::{BlockNumber, H160}; build_rpc_trait! { pub trait Oasis { diff --git a/genesis/src/main.rs b/genesis/src/main.rs index 67377d512..9b20c7d51 100644 --- a/genesis/src/main.rs +++ b/genesis/src/main.rs @@ -1,3 +1,4 @@ +#![deny(warnings)] extern crate clap; extern crate ethcore; extern crate ethereum_types; @@ -5,7 +6,6 @@ extern crate filebuffer; extern crate hex; extern crate log; extern crate pretty_env_logger; -extern crate rlp; #[macro_use] extern crate serde_derive; extern crate serde_json; diff --git a/inspector/parity_patricia_trie/src/lib.rs b/inspector/parity_patricia_trie/src/lib.rs index 60d55e49d..4a52d8c33 100644 --- a/inspector/parity_patricia_trie/src/lib.rs +++ b/inspector/parity_patricia_trie/src/lib.rs @@ -21,15 +21,12 @@ extern crate ethcore_bytes as bytes; extern crate ethereum_types; extern crate hashdb; extern crate keccak_hash as keccak; -extern crate memorydb; extern crate rlp; // extern crate ethcore_logger; #[cfg(test)] extern crate trie_standardmap as standardmap; -extern crate log; - use ethereum_types::H256; use hashdb::DBValue; use keccak::KECCAK_NULL_RLP; diff --git a/inspector/src/main.rs b/inspector/src/main.rs index d2a211c37..9fe8e4c7c 100644 --- a/inspector/src/main.rs +++ b/inspector/src/main.rs @@ -1,16 +1,12 @@ +#![deny(warnings)] extern crate clap; extern crate ethcore; -extern crate ethereum_types; -extern crate filebuffer; -extern crate hex; extern crate log; extern crate patricia_trie as parity_patricia_trie; extern crate pretty_env_logger; -extern crate rlp; extern crate ekiden_core; extern crate ekiden_db_trusted; -extern crate ekiden_roothash_api; extern crate ekiden_roothash_base; extern crate ekiden_roothash_client; extern crate ekiden_storage_base; diff --git a/src/lib.rs b/src/lib.rs index a4de17b93..fa6067e1a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,24 +1,16 @@ -extern crate common_types as ethcore_types; extern crate ekiden_common; extern crate ekiden_core; extern crate ekiden_storage_base; extern crate ekiden_storage_dummy; -extern crate ekiden_storage_lru; extern crate ekiden_trusted; -extern crate elastic_array; extern crate ethcore; extern crate ethereum_api; extern crate ethereum_types; -extern crate hashdb; -extern crate hex; -extern crate keccak_hash; #[macro_use] extern crate lazy_static; #[macro_use] extern crate log; -extern crate protobuf; extern crate runtime_ethereum_common; -extern crate sha3; extern crate ekiden_keymanager_client; extern crate ekiden_keymanager_common; @@ -40,6 +32,7 @@ use std::sync::Arc; use ekiden_core::error::{Error, Result}; use ekiden_storage_base::StorageBackend; #[cfg(not(target_env = "sgx"))] +#[cfg(test)] use ekiden_storage_dummy::DummyStorageBackend; #[cfg(target_env = "sgx")] use ekiden_trusted::db::untrusted::UntrustedStorageBackend; @@ -162,6 +155,8 @@ pub fn get_block_height(_request: &bool, ctx: &mut RuntimeCallContext) -> Result Ok(ectx.cache.get_latest_block_number().into()) } +#[cfg(not(feature = "test"))] +#[cfg(not(test))] fn get_block_hash(id: &BlockId, ctx: &mut RuntimeCallContext) -> Result> { let ectx = ctx.runtime.downcast_mut::().unwrap(); @@ -174,6 +169,8 @@ fn get_block_hash(id: &BlockId, ctx: &mut RuntimeCallContext) -> Result Result>> { let ectx = ctx.runtime.downcast_mut::().unwrap(); @@ -194,6 +191,8 @@ fn get_block(id: &BlockId, ctx: &mut RuntimeCallContext) -> Result Result> { let ectx = ctx.runtime.downcast_mut::().unwrap(); diff --git a/src/state.rs b/src/state.rs index c1c34aa9f..176af54bf 100644 --- a/src/state.rs +++ b/src/state.rs @@ -399,7 +399,6 @@ mod tests { extern crate ekiden_storage_dummy; use self::ekiden_storage_dummy::DummyStorageBackend; - use lazy_static; use super::*; diff --git a/tests/contracts/bulk_storage.rs b/tests/contracts/bulk_storage.rs index 0a48b4ee8..bdfcfc2ba 100644 --- a/tests/contracts/bulk_storage.rs +++ b/tests/contracts/bulk_storage.rs @@ -23,6 +23,7 @@ /// } /// } +#[allow(dead_code)] pub fn initcode() -> Vec { hex::decode("0061736d0100000001370a60037f7f7f017f60027f7f017f60017f017f60027f7f0060017f006000017f60000060037f7f7f0060057f7f7f7f7f017f60017f017e024d0503656e760576616c7565000403656e760c696e7075745f6c656e677468000503656e760b66657463685f696e707574000403656e76066d656d6f7279020140ffff0303656e760372657400030326250107040303030403010401020108010103020606040904040204060404030001010409060604050170010b0b0609017f01418080c0000b0708010463616c6c00280910010041010b0a0e120c1013231a1925260ac85c257302027f027e200041186a2100200141186a210241032101024002400340410021032001417f460d01200141034b0d022000290300220420022903002205540d01200041786a2100200241786a21022001417f6a210120042005580d000b410121030b20030f0b41d48bc000200141041005000b860101017f230041306b220324002003200236020420032001360200200341206a410c6a4103360200200341086a410c6a41023602002003411c6a410236020020034103360224200341848dc0003602082003410236020c200341a489c0003602102003200341046a360220200320033602282003200341206a360218200341086a20001014000be50101037f230041c0006b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020011000200141206a41186a4200370300200141206a41106a4200370300200141206a41086a420037030020014200370320411f2102200141206a2103024003402002417f460d012003200120026a2d00003a00002002417f6a2102200341016a21030c000b0b20002001290320370300200041186a200141206a41186a290300370300200041106a200141206a41106a290300370300200041086a200141206a41086a290300370300200141c0006a24000b3901017f02402001417f4c0d00024002402001450d002001101522020d0100000b410121020b20002001360204200020023602000f0b1016000b0e0002402001450d00200010180b0b3402017f017e230041106b22022400200241086a20011007200229030821032000410036020820002003370200200241106a24000b6802017f037e230041306b22012400200029021021022000290208210320002902002104200141146a41003602002001200437031820014201370204200141808ac0003602102001200141186a36020020012003370320200120023703282001200141206a1014000b890101017f230041306b220224002002200136020420022000360200200241206a410c6a4103360200200241086a410c6a41023602002002411c6a410236020020024103360224200241ac8cc0003602082002410236020c200241a489c000360210200220023602202002200241046a3602282002200241206a360218200241086a41bc8cc0001014000bc90201067f230041306b220224004127210302400240200028020022004190ce00490d00412721030340200241096a20036a2204417c6a200020004190ce006e220541f0b17f6c6a220641e4006e220741017441f285c0006a2f00003b00002004417e6a20062007419c7f6c6a41017441f285c0006a2f00003b00002003417c6a2103200041ffc1d72f4b21042005210020040d000c020b0b200021050b02400240200541e400480d00200241096a2003417e6a22036a200541ffff037141e4006e2200419c7f6c20056a41ffff037141017441f285c0006a2f00003b00000c010b200521000b02400240200041094a0d00200241096a2003417f6a22036a2205200041306a3a00000c010b200241096a2003417e6a22036a2205200041017441f285c0006a2f00003b00000b200141808ac00041002005412720036b10112100200241306a240020000b5c01027f230041106b220124000240024010012202450d002001200210092001200236020820012802001002200041086a2001280208360200200020012903003702000c010b20004100360208200042013702000b200141106a24000b8c0301017f230041106b2202240002400240024002400240024020002d0000417f6a220041044b0d00024020000e050002030405000b2002200128021841e382c000410a2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c050b2002200128021841d882c000410b2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c040b2002200128021841ed82c000410a2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c030b2002200128021841f782c000410d2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c020b20022001280218418483c000410e2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c010b20022001280218419283c00041052001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090b2002100f2101200241106a240020010bd30101037f20002d00082101024020002802042202450d00200141ff0171210341012101024020030d000240200028020022032d0000410471450d0041012101200328021841ef88c00041012003411c6a28020028020c1100000d01200041046a28020021020b024020024101470d0020002d0009450d00410121012000280200220328021841ee88c00041012003411c6a28020028020c1100000d010b2000280200220128021841f088c00041012001411c6a28020028020c11000021010b200041086a20013a00000b200141ff01714100470baf0201037f23004180016b220224002000280200210002400240024002400240200128020022034110710d0020034120710d0120002001100c21000c020b20002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141f085c0004102200220006a4180016a410020006b101121000c010b20002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141f085c0004102200220006a4180016a410020006b101121000b20024180016a240020000f0b2003418001100b000b2003418001100b000bdd0901057f230041206b2205240020052002360204200520013602002005418080c40036020820042106024020002802002207410171450d002005412b360208200441016a21060b41002108200541003a000f02402007410471450d00200541013a000f02402002450d0041002108200221090340200820012d000041c00171418001466a2108200141016a21012009417f6a22090d000b0b200620026a20086b21060b2000280208210120052005410f6a3602142005200541086a36021020052005360218024002400240024002400240024002400240024002400240024002400240024020014101470d002000410c6a280200220120064d0d0120074108710d02200120066b2109410120002d0030220120014103461b4103712201450d0420014102460d03410021020c050b200541106a200010240d0c2000280218200320042000411c6a28020028020c11000021010c0e0b200541106a200010240d0b2000280218200320042000411c6a28020028020c11000021010c0d0b200041013a003020004130360204200541106a200010240d0a200120066b21094101200041306a2d0000220120014103461b4103712201450d0420014102460d03410021020c050b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c02402000280204220141ff004b0d00200520013a001c410121080c050b0240200141ff0f4b0d0020052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c050b200141ffff034b0d0320052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c040b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c0240200041046a280200220141ff004b0d00200520013a001c410121080c040b200141ff0f4b0d0220052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c030b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c040b0b200541106a200010240d02200041186a2209280200200320042000411c6a220028020028020c1100000d02417f21010340200141016a220120024f0d0420092802002005411c6a2008200028020028020c110000450d000c030b0b0240200141ffff034b0d0020052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c010b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c020b0b200041186a2209280200200320042000411c6a220028020028020c1100000d00417f21010340200141016a220120024f0d0220092802002005411c6a2008200028020028020c110000450d000b0b410121010c010b410021010b200541206a240020010bc60a010d7f230041106b22022400200128021021032000280204210420002802002105024002400240024002400240024002400240024002400240024002400240200128020822064101470d0020030d010c080b2003450d010b2004450d01200520046a2107200141146a2802002108200541016a21004100210920052c0000220341004e0d042007210a024020044101460d00200541016a2d0000413f712109200541026a2200210a0b200341ff017141e001490d04200a2007460d02200a2d0000413f71210b200a41016a2200210a0c030b2001280218200520042001411c6a28020028020c11000021000c0b0b4100210420060d040c050b4100210b2007210a0b200341ff017141f001490d002003411f71210c200b200941067472210902400240200a2007460d00200a41016a2100200a2d0000413f7121030c010b410021030b2009410674200c411274418080f0007172200372418080c400460d010b02400240024002402008450d00200020056b2103034020032109200720002203460d05200341016a2100024020032c0000220a41004e0d000240024020002007460d0020002d0000413f71210d200341026a220b21000c010b4100210d2007210b0b200a41ff0171220c41e001490d0002400240200b2007460d00200b2d0000413f71210e200b41016a2200210b0c010b4100210e2007210b0b200c41f001490d00200a411f71210a200e200d41067472210c02400240200b2007460d00200b41016a2100200b2d0000413f71210b0c010b4100210b0b200c410674200a411274418080f0007172200b72418080c400460d060b200920036b20006a21032008417f6a22080d000b20090d010c020b410021094100450d010b20092004460d0041002100200920044f0d01200520096a2c00004140480d010b200521000b2009200420001b21042000200520001b21050b2006450d010b4100210302402004450d0020042109200521000340200320002d000041c00171418001466a2103200041016a21002009417f6a22090d000b0b200420036b2001410c6a28020022084f0d014100210302402004450d004100210320042109200521000340200320002d000041c00171418001466a2103200041016a21002009417f6a22090d000b0b200320046b20086a2109410020012d0030220020004103461b4103712200450d0220004102460d034100210a0c040b2001280218200520042001411c6a28020028020c11000021000c040b2001280218200520042001411c6a28020028020c11000021000c030b2009210a410021090c010b200941016a410176210a200941017621090b2002410036020c024002402001280204220041ff004b0d00200220003a000c410121030c010b0240200041ff0f4b0d0020022000413f71418001723a000d20022000410676411f7141c001723a000c410221030c010b0240200041ffff034b0d0020022000413f71418001723a000e20022000410676413f71418001723a000d20022000410c76410f7141e001723a000c410321030c010b2002200041127641f001723a000c20022000413f71418001723a000f20022000410c76413f71418001723a000d20022000410676413f71418001723a000e410421030b417f2100200141186a21082001411c6a21070240024002400340200041016a220020094f0d0120082802002002410c6a2003200728020028020c110000450d000c020b0b200141186a2209280200200520042001411c6a220128020028020c1100000d00417f21000340200041016a2200200a4f0d0220092802002002410c6a2003200128020028020c110000450d000b0b410121000c010b410021000b200241106a240020000b6401027f230041206b220224002001411c6a280200210320012802182101200241086a41106a200041106a290200370300200241086a41086a200041086a2902003703002002200029020037030820012003200241086a10222100200241206a240020000b4a02017f017e230041206b2202240020012902002103200241146a2001290208370200200241948dc000360204200241808ac000360200200220003602082002200337020c2002101f000b801b02097f017e0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041f4014b0d0041002802d48d40220141102000410b6a4178712000410b491b22024103762203411f712204762200410371450d012000417f7341017120036a2202410374220441e48dc0006a280200220041086a210520002802082203200441dc8dc0006a2204460d022003200436020c200441086a20033602000c030b41002103200041404f0d1c2000410b6a2200417871210241002802d88d402206450d0941002107024020004108762200450d00411f2107200241ffffff074b0d002002412620006722006b411f7176410171411f20006b4101747221070b410020026b2103200741027441e48fc0006a2802002200450d064100210420024100411920074101766b411f712007411f461b7421014100210503400240200028020441787122082002490d00200820026b220820034f0d0020082103200021052008450d060b200041146a28020022082004200820002001411d764104716a41106a2802002200471b200420081b21042001410174210120000d000b2004450d05200421000c070b200241002802e490404d0d082000450d02200020047441022004742200410020006b72712200410020006b71682203410374220541e48dc0006a28020022002802082204200541dc8dc0006a2205460d0a2004200536020c200541086a20043602000c0b0b41002001417e200277713602d48d400b200020024103742202410372360204200020026a2200200028020441017236020420050f0b41002802d88d402200450d052000410020006b716841027441e48fc0006a280200220128020441787120026b21032001210420012802102200450d14410021090c150b41002103200021050c020b20050d020b4100210541022007411f71742200410020006b722006712200450d022000410020006b716841027441e48fc0006a2802002200450d020b03402000280204417871220420024f200420026b22082003497121010240200028021022040d00200041146a28020021040b2000200520011b21052008200320011b21032004210020040d000b2005450d010b41002802e4904022002002490d012003200020026b490d010b024002400240024041002802e49040220320024f0d0041002802e89040220020024d0d014100200020026b22033602e89040410041002802f09040220020026a22043602f090402004200341017236020420002002410372360204200041086a0f0b41002802ec90402100200320026b220441104f0d01410041003602ec9040410041003602e4904020002003410372360204200020036a220341046a2102200328020441017221030c020b41002103200241af80046a220441107640002200417f460d1420004110742201450d14410041002802f4904020044180807c7122086a22003602f49040410041002802f890402203200020002003491b3602f8904041002802f090402203450d0941fc90c0002100034020002802002204200028020422056a2001460d0b200028020822000d000c130b0b410020043602e490404100200020026a22013602ec904020012004410172360204200020036a200436020020024103722103200041046a21020b20022003360200200041086a0f0b200510202003410f4b0d022005200320026a2200410372360204200520006a220020002802044101723602040c0c0b41002001417e200377713602d48d400b200041086a210420002002410372360204200020026a22012003410374220320026b2202410172360204200020036a200236020041002802e490402200450d032000410376220541037441dc8dc0006a210341002802ec9040210041002802d48d40220841012005411f7174220571450d01200328020821050c020b20052002410372360204200520026a22002003410172360204200020036a2003360200200341ff014b0d052003410376220341037441dc8dc0006a210241002802d48d40220441012003411f7174220371450d07200241086a2104200228020821030c080b410020082005723602d48d40200321050b200341086a20003602002005200036020c2000200336020c200020053602080b410020013602ec9040410020023602e4904020040f0b02400240410028029091402200450d00200020014d0d010b4100200136029091400b41002100410020083602809140410020013602fc9040410041ff1f36029491404100410036028891400340200041e48dc0006a200041dc8dc0006a2203360200200041e88dc0006a2003360200200041086a2200418002470d000b410020013602f090404100200841586a22003602e8904020012000410172360204200120006a41283602044100418080800136028c91400c090b200028020c450d010c070b2000200310210c030b200120034d0d05200420034b0d05200041046a200520086a360200410041002802f090402200410f6a417871220341786a22043602f09040410041002802e8904020086a2201200041086a20036b6a22033602e8904020042003410172360204200020016a41283602044100418080800136028c91400c060b410020042003723602d48d40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200541086a21030c040b410121090b034002400240024002400240024002400240024002400240024002400240024002400240024020090e0b00010204050608090a0703030b200028020441787120026b22012003200120034922011b21032000200420011b21042000220128021022000d0a410121090c110b200141146a28020022000d0a410221090c100b20041020200341104f0d0a410a21090c0f0b2004200320026a2200410372360204200420006a220020002802044101723602040c0d0b20042002410372360204200420026a22022003410172360204200220036a200336020041002802e490402200450d09410421090c0d0b2000410376220541037441dc8dc0006a210141002802ec9040210041002802d48d40220841012005411f7174220571450d09410521090c0c0b200128020821050c090b410020082005723602d48d4020012105410621090c0a0b200141086a20003602002005200036020c2000200136020c20002005360208410721090c090b410020023602ec9040410020033602e49040410821090c080b200441086a0f0b410021090c060b410021090c050b410321090c040b410721090c030b410921090c020b410621090c010b410821090c000b0b4100410028029091402200200120002001491b3602909140200120086a210441fc90c000210002400240024002400240034020002802002004460d01200028020822000d000c020b0b200028020c450d010b41fc90c00021000240034002402000280200220420034b0d00200420002802046a220420034b0d020b200028020821000c000b0b410020013602f090404100200841586a22003602e8904020012000410172360204200120006a41283602044100418080800136028c91402003200441606a41787141786a22002000200341106a491b2205411b36020441002902fc9040210a200541106a410029028491403702002005200a370208410020083602809140410020013602fc90404100200541086a36028491404100410036028891402005411c6a21000340200041073602002004200041046a22004b0d000b20052003460d0320052005280204417e713602042003200520036b2200410172360204200520003602000240200041ff014b0d002000410376220441037441dc8dc0006a210041002802d48d40220141012004411f7174220471450d02200028020821040c030b2003200010210c030b200020013602002000200028020420086a36020420012002410372360204200120026a2100200420016b20026b210241002802f090402004460d0441002802ec90402004460d05200428020422034103714101470d092003417871220541ff014b0d06200428020c220820042802082207460d072007200836020c200820073602080c080b410020012004723602d48d40200021040b200041086a20033602002004200336020c2003200036020c200320043602080b4100210341002802e89040220020024d0d004100200020026b22033602e89040410041002802f09040220020026a22043602f090402004200341017236020420002002410372360204200041086a0f0b20030f0b410020003602f09040410041002802e8904020026a22023602e89040200020024101723602040c050b410020003602ec9040410041002802e4904020026a22023602e4904020002002410172360204200020026a20023602000c040b200410200c010b410041002802d48d40417e200341037677713602d48d400b200520026a2102200420056a21040b20042004280204417e7136020420002002410172360204200020026a2002360200024002400240200241ff014b0d002002410376220341037441dc8dc0006a210241002802d48d40220441012003411f7174220371450d01200241086a2104200228020821030c020b2000200210210c020b410020042003723602d48d40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200141086a0b05001017000b0a0041f48bc000100a000bbf0701057f200041786a22012000417c6a280200220241787122006a21030240024020024101710d002002410371450d012001280200220220006a210002400240024041002802ec9040200120026b2201460d00200241ff014b0d01200128020c220420012802082205460d022005200436020c200420053602080c030b20032802044103714103470d02410020003602e49040200341046a22032003280200417e7136020020012000410172360204200120006a20003602000f0b200110200c010b410041002802d48d40417e200241037677713602d48d400b024002400240024002400240024002400240200328020422024102710d0041002802f090402003460d0141002802ec90402003460d022002417871220420006a2100200441ff014b0d03200328020c220420032802082203460d042003200436020c200420033602080c050b200341046a2002417e7136020020012000410172360204200120006a20003602000c070b410020013602f09040410041002802e8904020006a22003602e89040200120004101723602040240200141002802ec9040470d00410041003602e49040410041003602ec90400b410028028c9140220220004f0d0741002802f090402200450d07024041002802e8904022044129490d0041fc90c0002101034002402001280200220320004b0d00200320012802046a20004b0d020b200128020822010d000b0b410028028491402200450d04410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c050b410020013602ec9040410041002802e4904020006a22003602e4904020012000410172360204200120006a20003602000f0b200310200c010b410041002802d48d40417e200241037677713602d48d400b20012000410172360204200120006a2000360200200141002802ec9040470d02410020003602e490400f0b41ff1f21010b410020013602949140200420024d0d014100417f36028c91400f0b02400240024002400240200041ff014b0d002000410376220341037441dc8dc0006a210041002802d48d40220241012003411f7174220371450d01200041086a2102200028020821030c020b200120001021410041002802949140417f6a2201360294914020010d04410028028491402200450d02410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c030b410020022003723602d48d40200041086a2102200021030b200220013602002003200136020c2001200036020c200120033602080f0b41ff1f21010b4100200136029491400b0b0c0042eac3fccee49daadc020b02000b3101017f230041106b220124002000280208101c1a2001200029020c3703002001200041146a2902003703082001101d000b150002402000450d0020000f0b41dc8cc000100a000b6c01027f41012101024002400240024041002802c88d404101470d00410041002802cc8d4041016a22013602cc8d4020014103490d010c020b41004281808080103703c88d400b41002802d08d402202417f4c0d00410020023602d08d4020014102490d010b00000b101e000b040000000b07002000101b000bd10201057f200028021821010240024002400240200028020c22022000460d0020002802082203200236020c2002200336020820010d010c020b0240200041144110200041146a220228020022041b6a2802002203450d002002200041106a20041b2104024003402004210502402003220241146a22042802002203450d0020030d010c020b200241106a2104200228021022030d000b0b2005410036020020010d010c020b410021022001450d010b02400240200028021c41027441e48fc0006a22032802002000460d0020014110411420012802102000461b6a200236020020020d010c020b200320023602002002450d020b20022001360218024020002802102203450d0020022003360210200320023602180b200041146a2802002203450d00200241146a2003360200200320023602180b0f0b410041002802d88d40417e2000411c6a28020077713602d88d400bc40201047f41002102024020014108762203450d00411f2102200141ffffff074b0d002001412620036722026b411f7176410171411f20026b4101747221020b2000200236021c20004200370210200241027441e48fc0006a21030240024002400240024041002802d88d40220441012002411f7174220571450d00200328020022042802044178712001470d01200421020c020b410020042005723602d88d4020032000360200200020033602180c030b20014100411920024101766b411f712002411f461b742103034020042003411d764104716a41106a22052802002202450d02200341017421032002210420022802044178712001470d000b0b20022802082203200036020c200220003602082000200236020c20002003360208200041003602180f0b20052000360200200020043602180b2000200036020c200020003602080ba00801117f230041c0006b22032400200341086a411c6a22042001360200200341346a2205200241146a2802002206360200200341033a0038200341086a41246a220720022802102201200641037422066a36020020034280808080800437030820034100360210200341003602182003200036022020032001360228200320013602302002280204220841037421092002280200210a02400240024002400240024002400240024020022802082200450d002000411c6a210120002002410c6a28020041246c6a210b200341206a210c200341386a210d200341306a210e200341086a41146a210f200341186a2110200341286a211120092108200a210203402000200b460d022008450d04200c2802002002280200200241046a280200200428020028020c1100000d03200d20002d00203a00002003200028020836020c2003200028020c360208410021060240024002400240200028021822124101460d00024020124103460d0020124102470d02201128020022132007280200460d002011201341086a36020020132802044106470d04201328020028020021120c030b0c030b20012802002213200528020022124f0d0b200e28020020134103746a22132802044106470d02201328020028020021120c010b200128020021120b410121060b200341086a410c6a2012360200200341086a41086a2006360200410021060240024002400240200028021022124101460d00024020124103460d0020124102470d02201128020022132007280200460d002011201341086a36020020132802044106470d04201328020028020021120c030b0c030b200141786a2802002213200528020022124f0d0c200e28020020134103746a22132802044106470d02201328020028020021120c010b200141786a28020021120b410121060b200f2012360200201020063602000240024020002802004101470d00200141686a2802002206200528020022124f0d08200e28020020064103746a21060c010b201128020022062007280200460d082011200641086a3602000b200041246a2100200241086a2102200141246a2101200841786a21082006280200200341086a200641046a280200110100450d000c030b0b20084103742100200341206a2111200a210203402006450d012000450d0320112802002002280200200241046a280200200428020028020c1100000d02200641786a2106200041786a2100200241086a21022001280200210820012802042112200141086a21012008200341086a2012110100450d000c020b0b2002200a20096a460d01200341206a28020020022802002002280204200341246a28020028020c110000450d010b410121000c010b410021000b200341c0006a240020000f0b41f48cc000200620121005000b41dc8cc000100a000b41cc8cc000201320121005000b41cc8cc000201320121005000b080020002001100c0be40201057f230041106b220224000240024020002802002802002203418080c400460d002001411c6a2802002104200128021821052002410036020c02400240200341ff004b0d00200220033a000c410121060c010b0240200341ff0f4b0d0020022003413f71418001723a000d20022003410676411f7141c001723a000c410221060c010b0240200341ffff034b0d0020022003413f71418001723a000e20022003410676413f71418001723a000d20022003410c76410f7141e001723a000c410321060c010b2002200341127641f001723a000c20022003413f71418001723a000f20022003410c76413f71418001723a000d20022003410676413f71418001723a000e410421060b4101210320052002410c6a2006200428020c1100000d010b024020002802042d0000450d0020012802182000280208220028020020002802042001411c6a28020028020c11000021030c010b410021030b200241106a240020030b02000b0c0042eac3fccee49daadc020b6e01017f230041d0006b220024002000100d200041106a1006200041c8006a4200370300200041c0006a4200370300200041386a4200370300200042003703300240200041106a200041306a10040d00200028020020002802041008200041d0006a24000f0b41b48ac000100a000b0f001027419c91c00041a3990110030b0bdbaa010400418080c0000b820a496e76616c69642061626920696e766f6b657372632f6c69622e7273496e76616c6964206d6574686f64207369676e6174757265556e61626c6520746f206163636570742076616c756520696e206e6f6e2d70617961626c6520636f6e7374727563746f722063616c6c617267756d656e74206465636f64696e67206661696c65642f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f73696e6b2e7273556e646572666c6f77206f662070757368656420706172616d6574657273202f21000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f636f6d6d6f6e2e7273496e76616c6964426f6f6c496e76616c6964553332496e76616c6964553634556e6578706563746564456f66496e76616c696450616464696e674f74686572617373657274696f6e206661696c65643a2060286c656674203d3d20726967687429600a20206c6566743a2060602c0a2072696768743a2060603a2064657374696e6174696f6e20616e6420736f7572636520736c69636573206861766520646966666572656e74206c656e67746873000100000000000000200000000000000003000000000000000300000000000000030000000100000001000000200000000000000003000000000000000300000000000000030000000100000002000000200000000000000003000000000000000300000000000000030000000000000000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e72736c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f77307830303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839396c6962636f72652f736c6963652f6d6f642e7273696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820736c69636520696e64657820737461727473206174202062757420656e647320617420000000000000006c6962636f72652f666d742f6d6f642e727363616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e72732c0a29696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320000100000000000000200000000000000003000000000000000300000000000000030000000100000001000000200000000000000003000000000000000300000000000000030000006c6962636f72652f726573756c742e72730000003a200041848ac0000bc0030000100012000000120010000a00000003000000010000001c00100018000000120010000a00000003000000010000003400100036000000120010000a0000000300000001000000d80010001f000000f700100001000000f80010000100000000011000580000001100000012000000000110005800000012000000060000000001100058000000130000000600000000011000580000001400000005000000970110002d000000c40110000c000000d001100003000000d301100034000000ba03100014000000f906000009000000800210004c0000009b0400000900000007000000000000000100000008000000df02100011000000cc02100013000000f502000005000000ce03100006000000d403100022000000ba031000140000007108000005000000f6031000160000000c0410000d000000ba03100014000000770800000500000020041000120000005704000011000000320410002b0000005d04100011000000630100001500000020041000120000004b04000028000000710410002000000091041000120000000900000000000000010000000a00000000051000000000000005100002000000ec04100011000000f1030000050000000041c88dc0000bd003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000419c91c0000ba399010061736d01000000014c0d60037f7f7f017f60027f7f017f60037f7f7e0060017f017f60027f7f0060017f006000017f60000060037f7f7f0060057f7f7f7f7f0060057f7f7f7f7f017f60047f7f7f7f0060017f017e0281010803656e76097365745f6279746573000203656e760d6765745f62797465735f6c656e000303656e76096765745f6279746573000403656e760576616c7565000503656e760c696e7075745f6c656e677468000603656e760b66657463685f696e707574000503656e7603726574000403656e76066d656d6f7279020140ffff0303363504050108080504040408040404050405040401050504090103010a010b010403070705010c050503050705050404000101050c070004050170010b0b0609017f01418080c0000b0708010463616c6c003a0910010041010b0a1e22192024362c2b38390aae8501355b01017f200141016a2102024020012d00004101460d0020002002290000370000200041186a200241186a290000370000200041106a200241106a290000370000200041086a200241086a2900003700000f0b20022d00001008000b970101017f230041c0006b220124002001411836020c200141ea80c000360208200120003a0017200141306a410c6a4101360200200141186a410c6a41023602002001412c6a410236020020014102360234200141a48dc0003602182001410236021c200141a489c0003602202001200141086a3602302001200141176a3602382001200141306a360228200141186a41b48dc0001025000b7302027f027e200041186a2100200141186a210241032101024002400340410021032001417f460d01200141034b0d022000290300220420022903002205540d01200041786a2100200241786a21022001417f6a210120042005580d000b410121030b20030f0b41d48bc00020014104100a000b860101017f230041306b220324002003200236020420032001360200200341206a410c6a4103360200200341086a410c6a41023602002003411c6a410236020020034103360224200341848dc0003602082003410236020c200341a489c0003602102003200341046a360220200320033602282003200341206a360218200341086a20001025000bd20c03027f017e0c7f23004190016b22032400024002400240024002400240024002400240200241034d0d002002417c6a2102200141046a210402400240200128000022014118742001410874418080fc07717220014108764180fe037120014118767272220141fc9789ed78460d00200141dad9969907470d03200341186a100c200341d0006a4200370300200341c8006a4200370300200341c0006a420037030020034200370338200341186a200341386a10090d052003200236027c200320043602782003410036028001200341386a200341f8006a100d200341186a200341386a1007200341386a200341f8006a100e20032903382205a741ff01714101460d04200328027c22022005422088a72201490d06200341003602682003200328027820016a3602602003200220016b360264200341386a200341e0006a100e20032903382205a741ff01714101460d04200341e8006a28020022012005422088a722026a22042001490d07200328026422062004490d082003280260210420032002100f2003410036024020032003290300370338200341386a200420016a20021010200328023c2101200341186a200328023822022003350240100020022001101120004100360208200042013702000c010b200341186a100c200341386a41186a4200370300200341c8006a4200370300200341386a41086a420037030020034200370338200341186a200341386a10090d082003200236020c2003200436020820034100360210200341386a200341086a100d200341186a200341386a1007200341386a200341186a1001220110120240024002402001200328024022064d0d00200341386a200120066b220610132003280238200341c0006a28020022076a210841012101024002400340200820016a2102200120064f0d01200141016a22042001490d022002417f6a41003a0000200421010c000b0b2006450d020b2002417f6a41003a0000200720016a21020c020b200621020340200120064f0d02200141016a22042001490d022002417f6a2102200421010c000b0b200720016a417f6a21020b200341386a41086a22072002360200200341186a200328023822061002200329023c2105200341186a1014200341386a101420032005370264200320063602602005a72109024002400240024002402005422088a72208411f712201450d00200841206a20016b220120084d0d01200341e0006a200120086b220610132003280260200341e8006a28020022096a21044101210102400340200420016a2102200120064f0d012002417f6a41003a0000200141016a21010c000b0b200920016a21042006450d022002417f6a41003a00000c030b200821040c030b2008210402400340200120084f0d01200141016a22022001490d012004417f6a2104200221010c000b0b200341e8006a20043602000c020b2004417f6a21040b200341e8006a200436020020032802602106200328026421090b2008200341386a1015200341386a410472200620041010200620091011200341186a41186a2209280200210a200341186a41086a220b280200210c2007280200210d200341386a41146a220e280200210f20032802482101200328023c2102200341186a41106a2204200341386a41186a22062802002210200341386a410c6a220828020022116a1013200420022011101020042001201010102001200f10112002200d1011200a200c6a200341186a10152007200b29030037030020062009280200360200200341386a41106a200329032837030020032003290318370338200828020022012003280238470d09200341e0006a41086a220120082802003602002003200329023c370360200e2802002102200341e0006a2003280248220420062802001010200041086a2001280200360200200020032903603702002004200210110b20034190016a24000f0b41848ac0001016000b419c8ac0001016000b2005420888a71008000b41b48ac0001016000b200120021017000b200120041017000b200420061018000b41b48ac0001016000b200341f8006a410c6a4103360200200341e0006a410c6a4102360200200341e0006a41146a41023602002003200136028c012003410336027c200341cc8ac00036026020034103360264200341a489c00036026820032003418c016a3602782003200341386a360280012003200341f8006a360270200341e0006a101a000be50101037f230041c0006b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020011003200141206a41186a4200370300200141206a41106a4200370300200141206a41086a420037030020014200370320411f2102200141206a2103024003402002417f460d012003200120026a2d00003a00002002417f6a2102200341016a21030c000b0b20002001290320370300200041186a200141206a41186a290300370300200041106a200141206a41106a290300370300200041086a200141206a41086a290300370300200141c0006a24000b8705010d7f23004190016b22022400024002402001280208220341206a2204200128020422054d0d00200241306a41176a200241d0006a41176a290000370000200241306a41106a200241d0006a41106a290300370300200241306a41086a200241d0006a41086a29030037030020022002290350370330200041033a0001410121010c010b200141086a2004360200200241086a2003200420012802002005101d200228020c210320022802082105200241f0006a41186a22044200370300200241f0006a41106a22064200370300200241f0006a41086a22074200370300200242003703704100210120024100412020052003101d200241f0006a4120200228020020022802041023200241d0006a41086a2203200241f0006a41096a2208290000370300200241d0006a41106a2205200241f0006a41116a2209290000370300200241d0006a41176a220a20042900003700002002200229007137035020022d0070210b200241306a41176a220c200a290000370000200241306a41106a220a2005290300370300200241306a41086a220d200329030037030020022002290350370330200241106a41176a220e200c290000370000200241106a41106a220c200a290300370300200241106a41086a220a200d290300370300200220022903303703102008200a2903003700002009200c2903003700002004200e290000370000200220022903103700712003200729030037030020052006290300370300200241d0006a41186a220620042903003703002002200b3a007020022002290370370350200041196a2006290300370000200041116a2005290300370000200041096a2003290300370000200020022903503700010b200020013a000020024190016a24000baa0301087f230041106b22022400024002402001280208220341206a2204200128020422054d0d00200041033a0001410121010c010b200141086a2004360200200241086a2003200420012802002005101d4100210120024100411c20022802082206200228020c2207101d20022802002203200228020422086a2109200321050240024002400340200320016a2104200920056b41034d0d0120042d00000d02200320016a220441016a2d00000d02200441026a2d00000d02200141046a2101200441046a2105200441036a2d0000450d000c020b0b200820016b210103402001450d022001417f6a210120042d00002103200441016a21042003450d000b0b41012101200041013a00010c010b02400240024002402007411d490d002007411d460d012007411f490d022007411f460d03200041046a200628001c22014118742001410874418080fc07717220014108764180fe037120014118767272360200410021010c040b41e48ac000411c2007100a000b41f48ac000411d411d100a000b41848bc000411e2007100a000b41948bc000411f411f100a000b200020013a0000200241106a24000b3901017f02402001417f4c0d00024002402001450d002001102622020d0100000b410121020b20002001360204200020023602000f0b1027000b2901017f20002002101320002000280208220320026a360208200320002802006a20022001200210230b0e0002402001450d00200010290b0b3402017f017e230041106b22022400200241086a2001100f200229030821032000410036020820002003370200200241106a24000b7c01027f024020002802042202200028020822036b20014f0d0002400240200320016a22012003490d0020024101742203200120012003491b22014100480d00024002402002450d0020002802002001102a2202450d010c030b2001102622020d020b00000b1028000b20002002360200200041046a20013602000b0b4c02017f017e230041106b22012400200141086a4120100f20012903082102200041203602002000410c6a428080808010370200200041146a420037020020002002370204200141106a24000b6901017f230041206b22022400200241186a4100360200200241106a4200370300200241086a420037030020024200370300200220003a001f200220004118763a001c200220004110763a001d200220004108763a001e200141046a200241201010200241206a24000b6802017f037e230041306b22012400200029021021022000290208210320002902002104200141146a41003602002001200437031820014201370204200141808ac0003602102001200141186a36020020012003370320200120023703282001200141206a1025000b890101017f230041306b220224002002200136020420022000360200200241206a410c6a4103360200200241086a410c6a41023602002002411c6a410236020020024103360224200241ac8cc0003602082002410236020c200241a489c000360210200220023602202002200241046a3602282002200241206a360218200241086a41bc8cc0001025000b890101017f230041306b220224002002200136020420022000360200200241206a410c6a4103360200200241086a410c6a41023602002002411c6a4102360200200241033602242002418c8cc0003602082002410236020c200241a489c000360210200220023602202002200241046a3602282002200241206a360218200241086a419c8cc0001025000bc90201067f230041306b220224004127210302400240200028020022004190ce00490d00412721030340200241096a20036a2204417c6a200020004190ce006e220541f0b17f6c6a220641e4006e220741017441f285c0006a2f00003b00002004417e6a20062007419c7f6c6a41017441f285c0006a2f00003b00002003417c6a2103200041ffc1d72f4b21042005210020040d000c020b0b200021050b02400240200541e400480d00200241096a2003417e6a22036a200541ffff037141e4006e2200419c7f6c20056a41ffff037141017441f285c0006a2f00003b00000c010b200521000b02400240200041094a0d00200241096a2003417f6a22036a2205200041306a3a00000c010b200241096a2003417e6a22036a2205200041017441f285c0006a2f00003b00000b200141808ac00041002005412720036b10212100200241306a240020000b5001017f230041206b22012400200141106a42d6808080c006370300200141186a412d360200200141e48bc000360204200141808ac000360200200120003602082001418281c00036020c2001102d000b5c01027f230041106b220124000240024010042202450d002001200210122001200236020820012802001005200041086a2001280208360200200020012903003702000c010b20004100360208200042013702000b200141106a24000b0900200020011006000b39000240024020022001490d0020042002490d012000200220016b3602042000200320016a3602000f0b200120021017000b200220041018000b8c0301017f230041106b2202240002400240024002400240024020002d0000417f6a220041044b0d00024020000e050002030405000b2002200128021841e382c000410a2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c050b2002200128021841d882c000410b2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c040b2002200128021841ed82c000410a2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c030b2002200128021841f782c000410d2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c020b20022001280218418483c000410e2001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090c010b20022001280218419283c00041052001411c6a28020028020c1100003a00082002200136020020024100360204200241003a00090b2002101f2101200241106a240020010bd30101037f20002d00082101024020002802042202450d00200141ff0171210341012101024020030d000240200028020022032d0000410471450d0041012101200328021841ef88c00041012003411c6a28020028020c1100000d01200041046a28020021020b024020024101470d0020002d0009450d00410121012000280200220328021841ee88c00041012003411c6a28020028020c1100000d010b2000280200220128021841f088c00041012001411c6a28020028020c11000021010b200041086a20013a00000b200141ff01714100470baf0201037f23004180016b220224002000280200210002400240024002400240200128020022034110710d0020034120710d0120002001101921000c020b20002802002103410021000340200220006a41ff006a2003410f712204413072200441d7006a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141f085c0004102200220006a4180016a410020006b102121000c010b20002802002103410021000340200220006a41ff006a2003410f712204413072200441376a2004410a491b3a00002000417f6a2100200341047622030d000b20004180016a22034181014f0d02200141f085c0004102200220006a4180016a410020006b102121000b20024180016a240020000f0b20034180011017000b20034180011017000bdd0901057f230041206b2205240020052002360204200520013602002005418080c40036020820042106024020002802002207410171450d002005412b360208200441016a21060b41002108200541003a000f02402007410471450d00200541013a000f02402002450d0041002108200221090340200820012d000041c00171418001466a2108200141016a21012009417f6a22090d000b0b200620026a20086b21060b2000280208210120052005410f6a3602142005200541086a36021020052005360218024002400240024002400240024002400240024002400240024002400240024020014101470d002000410c6a280200220120064d0d0120074108710d02200120066b2109410120002d0030220120014103461b4103712201450d0420014102460d03410021020c050b200541106a200010370d0c2000280218200320042000411c6a28020028020c11000021010c0e0b200541106a200010370d0b2000280218200320042000411c6a28020028020c11000021010c0d0b200041013a003020004130360204200541106a200010370d0a200120066b21094101200041306a2d0000220120014103461b4103712201450d0420014102460d03410021020c050b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c02402000280204220141ff004b0d00200520013a001c410121080c050b0240200141ff0f4b0d0020052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c050b200141ffff034b0d0320052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c040b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c0240200041046a280200220141ff004b0d00200520013a001c410121080c040b200141ff0f4b0d0220052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c030b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c040b0b200541106a200010370d02200041186a2209280200200320042000411c6a220028020028020c1100000d02417f21010340200141016a220120024f0d0420092802002005411c6a2008200028020028020c110000450d000c030b0b0240200141ffff034b0d0020052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c010b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c020b0b200041186a2209280200200320042000411c6a220028020028020c1100000d00417f21010340200141016a220120024f0d0220092802002005411c6a2008200028020028020c110000450d000b0b410121010c010b410021010b200541206a240020010bc60a010d7f230041106b22022400200128021021032000280204210420002802002105024002400240024002400240024002400240024002400240024002400240200128020822064101470d0020030d010c080b2003450d010b2004450d01200520046a2107200141146a2802002108200541016a21004100210920052c0000220341004e0d042007210a024020044101460d00200541016a2d0000413f712109200541026a2200210a0b200341ff017141e001490d04200a2007460d02200a2d0000413f71210b200a41016a2200210a0c030b2001280218200520042001411c6a28020028020c11000021000c0b0b4100210420060d040c050b4100210b2007210a0b200341ff017141f001490d002003411f71210c200b200941067472210902400240200a2007460d00200a41016a2100200a2d0000413f7121030c010b410021030b2009410674200c411274418080f0007172200372418080c400460d010b02400240024002402008450d00200020056b2103034020032109200720002203460d05200341016a2100024020032c0000220a41004e0d000240024020002007460d0020002d0000413f71210d200341026a220b21000c010b4100210d2007210b0b200a41ff0171220c41e001490d0002400240200b2007460d00200b2d0000413f71210e200b41016a2200210b0c010b4100210e2007210b0b200c41f001490d00200a411f71210a200e200d41067472210c02400240200b2007460d00200b41016a2100200b2d0000413f71210b0c010b4100210b0b200c410674200a411274418080f0007172200b72418080c400460d060b200920036b20006a21032008417f6a22080d000b20090d010c020b410021094100450d010b20092004460d0041002100200920044f0d01200520096a2c00004140480d010b200521000b2009200420001b21042000200520001b21050b2006450d010b4100210302402004450d0020042109200521000340200320002d000041c00171418001466a2103200041016a21002009417f6a22090d000b0b200420036b2001410c6a28020022084f0d014100210302402004450d004100210320042109200521000340200320002d000041c00171418001466a2103200041016a21002009417f6a22090d000b0b200320046b20086a2109410020012d0030220020004103461b4103712200450d0220004102460d034100210a0c040b2001280218200520042001411c6a28020028020c11000021000c040b2001280218200520042001411c6a28020028020c11000021000c030b2009210a410021090c010b200941016a410176210a200941017621090b2002410036020c024002402001280204220041ff004b0d00200220003a000c410121030c010b0240200041ff0f4b0d0020022000413f71418001723a000d20022000410676411f7141c001723a000c410221030c010b0240200041ffff034b0d0020022000413f71418001723a000e20022000410676413f71418001723a000d20022000410c76410f7141e001723a000c410321030c010b2002200041127641f001723a000c20022000413f71418001723a000f20022000410c76413f71418001723a000d20022000410676413f71418001723a000e410421030b417f2100200141186a21082001411c6a21070240024002400340200041016a220020094f0d0120082802002002410c6a2003200728020028020c110000450d000c020b0b200141186a2209280200200520042001411c6a220128020028020c1100000d00417f21000340200041016a2200200a4f0d0220092802002002410c6a2003200128020028020c110000450d000b0b410121000c010b410021000b200241106a240020000b810201017f230041e0006b22042400200420013602082004200336020c2004200441086a36021020042004410c6a360214024020012003470d00200020022001103b1a200441e0006a24000f0b200441c8006a41146a4100360200200441306a410c6a4104360200200441306a41146a4105360200200441186a410c6a4103360200200441186a41146a4103360200200441bc8bc0003602482004420137024c200441808ac00036025820044104360234200441a48bc0003602182004410336021c2004418884c0003602202004200441106a3602302004200441146a3602382004200441c8006a3602402004200441306a360228200441186a41c48bc0001025000b6401027f230041206b220224002001411c6a280200210320012802182101200241086a41106a200041106a290200370300200241086a41086a200041086a2902003703002002200029020037030820012003200241086a10352100200241206a240020000b4a02017f017e230041206b2202240020012902002103200241146a2001290208370200200241948dc000360204200241808ac000360200200220003602082002200337020c20021031000b801b02097f017e0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041f4014b0d0041002802d48d40220141102000410b6a4178712000410b491b22024103762203411f712204762200410371450d012000417f7341017120036a2202410374220441e48dc0006a280200220041086a210520002802082203200441dc8dc0006a2204460d022003200436020c200441086a20033602000c030b41002103200041404f0d1c2000410b6a2200417871210241002802d88d402206450d0941002107024020004108762200450d00411f2107200241ffffff074b0d002002412620006722006b411f7176410171411f20006b4101747221070b410020026b2103200741027441e48fc0006a2802002200450d064100210420024100411920074101766b411f712007411f461b7421014100210503400240200028020441787122082002490d00200820026b220820034f0d0020082103200021052008450d060b200041146a28020022082004200820002001411d764104716a41106a2802002200471b200420081b21042001410174210120000d000b2004450d05200421000c070b200241002802e490404d0d082000450d02200020047441022004742200410020006b72712200410020006b71682203410374220541e48dc0006a28020022002802082204200541dc8dc0006a2205460d0a2004200536020c200541086a20043602000c0b0b41002001417e200277713602d48d400b200020024103742202410372360204200020026a2200200028020441017236020420050f0b41002802d88d402200450d052000410020006b716841027441e48fc0006a280200220128020441787120026b21032001210420012802102200450d14410021090c150b41002103200021050c020b20050d020b4100210541022007411f71742200410020006b722006712200450d022000410020006b716841027441e48fc0006a2802002200450d020b03402000280204417871220420024f200420026b22082003497121010240200028021022040d00200041146a28020021040b2000200520011b21052008200320011b21032004210020040d000b2005450d010b41002802e4904022002002490d012003200020026b490d010b024002400240024041002802e49040220320024f0d0041002802e89040220020024d0d014100200020026b22033602e89040410041002802f09040220020026a22043602f090402004200341017236020420002002410372360204200041086a0f0b41002802ec90402100200320026b220441104f0d01410041003602ec9040410041003602e4904020002003410372360204200020036a220341046a2102200328020441017221030c020b41002103200241af80046a220441107640002200417f460d1420004110742201450d14410041002802f4904020044180807c7122086a22003602f49040410041002802f890402203200020002003491b3602f8904041002802f090402203450d0941fc90c0002100034020002802002204200028020422056a2001460d0b200028020822000d000c130b0b410020043602e490404100200020026a22013602ec904020012004410172360204200020036a200436020020024103722103200041046a21020b20022003360200200041086a0f0b200510322003410f4b0d022005200320026a2200410372360204200520006a220020002802044101723602040c0c0b41002001417e200377713602d48d400b200041086a210420002002410372360204200020026a22012003410374220320026b2202410172360204200020036a200236020041002802e490402200450d032000410376220541037441dc8dc0006a210341002802ec9040210041002802d48d40220841012005411f7174220571450d01200328020821050c020b20052002410372360204200520026a22002003410172360204200020036a2003360200200341ff014b0d052003410376220341037441dc8dc0006a210241002802d48d40220441012003411f7174220371450d07200241086a2104200228020821030c080b410020082005723602d48d40200321050b200341086a20003602002005200036020c2000200336020c200020053602080b410020013602ec9040410020023602e4904020040f0b02400240410028029091402200450d00200020014d0d010b4100200136029091400b41002100410020083602809140410020013602fc9040410041ff1f36029491404100410036028891400340200041e48dc0006a200041dc8dc0006a2203360200200041e88dc0006a2003360200200041086a2200418002470d000b410020013602f090404100200841586a22003602e8904020012000410172360204200120006a41283602044100418080800136028c91400c090b200028020c450d010c070b2000200310330c030b200120034d0d05200420034b0d05200041046a200520086a360200410041002802f090402200410f6a417871220341786a22043602f09040410041002802e8904020086a2201200041086a20036b6a22033602e8904020042003410172360204200020016a41283602044100418080800136028c91400c060b410020042003723602d48d40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200541086a21030c040b410121090b034002400240024002400240024002400240024002400240024002400240024002400240024020090e0b00010204050608090a0703030b200028020441787120026b22012003200120034922011b21032000200420011b21042000220128021022000d0a410121090c110b200141146a28020022000d0a410221090c100b20041032200341104f0d0a410a21090c0f0b2004200320026a2200410372360204200420006a220020002802044101723602040c0d0b20042002410372360204200420026a22022003410172360204200220036a200336020041002802e490402200450d09410421090c0d0b2000410376220541037441dc8dc0006a210141002802ec9040210041002802d48d40220841012005411f7174220571450d09410521090c0c0b200128020821050c090b410020082005723602d48d4020012105410621090c0a0b200141086a20003602002005200036020c2000200136020c20002005360208410721090c090b410020023602ec9040410020033602e49040410821090c080b200441086a0f0b410021090c060b410021090c050b410321090c040b410721090c030b410921090c020b410621090c010b410821090c000b0b4100410028029091402200200120002001491b3602909140200120086a210441fc90c000210002400240024002400240034020002802002004460d01200028020822000d000c020b0b200028020c450d010b41fc90c00021000240034002402000280200220420034b0d00200420002802046a220420034b0d020b200028020821000c000b0b410020013602f090404100200841586a22003602e8904020012000410172360204200120006a41283602044100418080800136028c91402003200441606a41787141786a22002000200341106a491b2205411b36020441002902fc9040210a200541106a410029028491403702002005200a370208410020083602809140410020013602fc90404100200541086a36028491404100410036028891402005411c6a21000340200041073602002004200041046a22004b0d000b20052003460d0320052005280204417e713602042003200520036b2200410172360204200520003602000240200041ff014b0d002000410376220441037441dc8dc0006a210041002802d48d40220141012004411f7174220471450d02200028020821040c030b2003200010330c030b200020013602002000200028020420086a36020420012002410372360204200120026a2100200420016b20026b210241002802f090402004460d0441002802ec90402004460d05200428020422034103714101470d092003417871220541ff014b0d06200428020c220820042802082207460d072007200836020c200820073602080c080b410020012004723602d48d40200021040b200041086a20033602002004200336020c2003200036020c200320043602080b4100210341002802e89040220020024d0d004100200020026b22033602e89040410041002802f09040220020026a22043602f090402004200341017236020420002002410372360204200041086a0f0b20030f0b410020003602f09040410041002802e8904020026a22023602e89040200020024101723602040c050b410020003602ec9040410041002802e4904020026a22023602e4904020002002410172360204200020026a20023602000c040b200410320c010b410041002802d48d40417e200341037677713602d48d400b200520026a2102200420056a21040b20042004280204417e7136020420002002410172360204200020026a2002360200024002400240200241ff014b0d002002410376220341037441dc8dc0006a210241002802d48d40220441012003411f7174220371450d01200241086a2104200228020821030c020b2000200210330c020b410020042003723602d48d40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200141086a0b05001028000b0a0041f48bc0001016000bbf0701057f200041786a22012000417c6a280200220241787122006a21030240024020024101710d002002410371450d012001280200220220006a210002400240024041002802ec9040200120026b2201460d00200241ff014b0d01200128020c220420012802082205460d022005200436020c200420053602080c030b20032802044103714103470d02410020003602e49040200341046a22032003280200417e7136020020012000410172360204200120006a20003602000f0b200110320c010b410041002802d48d40417e200241037677713602d48d400b024002400240024002400240024002400240200328020422024102710d0041002802f090402003460d0141002802ec90402003460d022002417871220420006a2100200441ff014b0d03200328020c220420032802082203460d042003200436020c200420033602080c050b200341046a2002417e7136020020012000410172360204200120006a20003602000c070b410020013602f09040410041002802e8904020006a22003602e89040200120004101723602040240200141002802ec9040470d00410041003602e49040410041003602ec90400b410028028c9140220220004f0d0741002802f090402200450d07024041002802e8904022044129490d0041fc90c0002101034002402001280200220320004b0d00200320012802046a20004b0d020b200128020822010d000b0b410028028491402200450d04410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c050b410020013602ec9040410041002802e4904020006a22003602e4904020012000410172360204200120006a20003602000f0b200310320c010b410041002802d48d40417e200241037677713602d48d400b20012000410172360204200120006a2000360200200141002802ec9040470d02410020003602e490400f0b41ff1f21010b410020013602949140200420024d0d014100417f36028c91400f0b02400240024002400240200041ff014b0d002000410376220341037441dc8dc0006a210041002802d48d40220241012003411f7174220371450d01200041086a2102200028020821030c020b200120001033410041002802949140417f6a2201360294914020010d04410028028491402200450d02410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c030b410020022003723602d48d40200041086a2102200021030b200220013602002003200136020c2001200036020c200120033602080f0b41ff1f21010b4100200136029491400b0be50501087f4100210202400240024002400240200141bf7f4b0d0041102001410b6a4178712001410b491b21032000417c6a220428020022054178712106024002400240024002402005410371450d00200041786a220720066a2108200620034f0d0141002802f090402008460d0241002802ec90402008460d03200828020422054102710d042005417871220920066a22062003490d04200620036b2101200941ff014b0d07200828020c220220082802082208460d082008200236020c200220083602080c090b2003418002490d0320062003410472490d03200620036b418180084f0d0320000f0b0240200620036b220141104f0d0020000f0b20042003200541017172410272360200200720036a220220014103723602042008200828020441017236020420022001103420000f0b41002802e8904020066a220620034d0d0120042003200541017172410272360200200720036a2201200620036b2202410172360204410020023602e89040410020013602f0904020000f0b41002802e4904020066a220620034f0d020b200110262203450d00200320002001200428020022024178714104410820024103711b6b2202200220014b1b103b210120001029200121020b20020f0b02400240200620036b220141104f0d0020042005410171200672410272360200200720066a2201200128020441017236020441002101410021020c010b20042003200541017172410272360200200720036a22022001410172360204200720066a2203200136020020032003280204417e713602040b410020023602ec9040410020013602e4904020000f0b200810320c010b410041002802d48d40417e200541037677713602d48d400b02402001410f4b0d0020042006200428020041017172410272360200200720066a2201200128020441017236020420000f0b20042003200428020041017172410272360200200720036a22022001410372360204200720066a2203200328020441017236020420022001103420000b0c0042eac3fccee49daadc020b02000b3101017f230041106b220124002000280208102e1a2001200029020c3703002001200041146a2902003703082001102f000b150002402000450d0020000f0b41dc8cc0001016000b6c01027f41012101024002400240024041002802c88d404101470d00410041002802cc8d4041016a22013602cc8d4020014103490d010c020b41004281808080103703c88d400b41002802d08d402202417f4c0d00410020023602d08d4020014102490d010b00000b1030000b040000000b07002000102d000bd10201057f200028021821010240024002400240200028020c22022000460d0020002802082203200236020c2002200336020820010d010c020b0240200041144110200041146a220228020022041b6a2802002203450d002002200041106a20041b2104024003402004210502402003220241146a22042802002203450d0020030d010c020b200241106a2104200228021022030d000b0b2005410036020020010d010c020b410021022001450d010b02400240200028021c41027441e48fc0006a22032802002000460d0020014110411420012802102000461b6a200236020020020d010c020b200320023602002002450d020b20022001360218024020002802102203450d0020022003360210200320023602180b200041146a2802002203450d00200241146a2003360200200320023602180b0f0b410041002802d88d40417e2000411c6a28020077713602d88d400bc40201047f41002102024020014108762203450d00411f2102200141ffffff074b0d002001412620036722026b411f7176410171411f20026b4101747221020b2000200236021c20004200370210200241027441e48fc0006a21030240024002400240024041002802d88d40220441012002411f7174220571450d00200328020022042802044178712001470d01200421020c020b410020042005723602d88d4020032000360200200020033602180c030b20014100411920024101766b411f712002411f461b742103034020042003411d764104716a41106a22052802002202450d02200341017421032002210420022802044178712001470d000b0b20022802082203200036020c200220003602082000200236020c20002003360208200041003602180f0b20052000360200200020043602180b2000200036020c200020003602080b960501047f200020016a210202400240024002400240024002400240200028020422034101710d002003410371450d012000280200220320016a210102400240024041002802ec9040200020036b2200460d00200341ff014b0d01200028020c220420002802082205460d022005200436020c200420053602080c030b20022802044103714103470d02410020013602e49040200241046a22032003280200417e7136020020002001410172360204200220013602000f0b200010320c010b410041002802d48d40417e200341037677713602d48d400b02400240200228020422034102710d0041002802f090402002460d0141002802ec90402002460d032003417871220420016a2101200441ff014b0d04200228020c220420022802082202460d062002200436020c200420023602080c070b200241046a2003417e7136020020002001410172360204200020016a20013602000c070b410020003602f09040410041002802e8904020016a22013602e8904020002001410172360204200041002802ec9040460d030b0f0b410020003602ec9040410041002802e4904020016a22013602e4904020002001410172360204200020016a20013602000f0b200210320c020b410041003602e49040410041003602ec90400f0b410041002802d48d40417e200341037677713602d48d400b20002001410172360204200020016a2001360200200041002802ec9040470d00410020013602e490400f0b024002400240200141ff014b0d002001410376220241037441dc8dc0006a210141002802d48d40220341012002411f7174220271450d01200128020821020c020b2000200110330f0b410020032002723602d48d40200121020b200141086a20003602002002200036020c2000200136020c200020023602080ba00801117f230041c0006b22032400200341086a411c6a22042001360200200341346a2205200241146a2802002206360200200341033a0038200341086a41246a220720022802102201200641037422066a36020020034280808080800437030820034100360210200341003602182003200036022020032001360228200320013602302002280204220841037421092002280200210a02400240024002400240024002400240024020022802082200450d002000411c6a210120002002410c6a28020041246c6a210b200341206a210c200341386a210d200341306a210e200341086a41146a210f200341186a2110200341286a211120092108200a210203402000200b460d022008450d04200c2802002002280200200241046a280200200428020028020c1100000d03200d20002d00203a00002003200028020836020c2003200028020c360208410021060240024002400240200028021822124101460d00024020124103460d0020124102470d02201128020022132007280200460d002011201341086a36020020132802044106470d04201328020028020021120c030b0c030b20012802002213200528020022124f0d0b200e28020020134103746a22132802044106470d02201328020028020021120c010b200128020021120b410121060b200341086a410c6a2012360200200341086a41086a2006360200410021060240024002400240200028021022124101460d00024020124103460d0020124102470d02201128020022132007280200460d002011201341086a36020020132802044106470d04201328020028020021120c030b0c030b200141786a2802002213200528020022124f0d0c200e28020020134103746a22132802044106470d02201328020028020021120c010b200141786a28020021120b410121060b200f2012360200201020063602000240024020002802004101470d00200141686a2802002206200528020022124f0d08200e28020020064103746a21060c010b201128020022062007280200460d082011200641086a3602000b200041246a2100200241086a2102200141246a2101200841786a21082006280200200341086a200641046a280200110100450d000c030b0b20084103742100200341206a2111200a210203402006450d012000450d0320112802002002280200200241046a280200200428020028020c1100000d02200641786a2106200041786a2100200241086a21022001280200210820012802042112200141086a21012008200341086a2012110100450d000c020b0b2002200a20096a460d01200341206a28020020022802002002280204200341246a28020028020c110000450d010b410121000c010b410021000b200341c0006a240020000f0b41f48cc00020062012100a000b41dc8cc0001016000b41cc8cc00020132012100a000b41cc8cc00020132012100a000b08002000200110190be40201057f230041106b220224000240024020002802002802002203418080c400460d002001411c6a2802002104200128021821052002410036020c02400240200341ff004b0d00200220033a000c410121060c010b0240200341ff0f4b0d0020022003413f71418001723a000d20022003410676411f7141c001723a000c410221060c010b0240200341ffff034b0d0020022003413f71418001723a000e20022003410676413f71418001723a000d20022003410c76410f7141e001723a000c410321060c010b2002200341127641f001723a000c20022003413f71418001723a000f20022003410c76413f71418001723a000d20022003410676413f71418001723a000e410421060b4101210320052002410c6a2006200428020c1100000d010b024020002802042d0000450d0020012802182000280208220028020020002802042001411c6a28020028020c11000021030c010b410021030b200241106a240020030b02000b0c0042eac3fccee49daadc020b2f01017f230041206b22002400200041106a101b200020002802102000280218100b20002802002000280208101c000b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b0bae110300418080c0000b820a496e76616c69642061626920696e766f6b657372632f6c69622e7273496e76616c6964206d6574686f64207369676e6174757265556e61626c6520746f206163636570742076616c756520696e206e6f6e2d70617961626c6520636f6e7374727563746f722063616c6c617267756d656e74206465636f64696e67206661696c65642f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f73696e6b2e7273556e646572666c6f77206f662070757368656420706172616d6574657273202f21000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f636f6d6d6f6e2e7273496e76616c6964426f6f6c496e76616c6964553332496e76616c6964553634556e6578706563746564456f66496e76616c696450616464696e674f74686572617373657274696f6e206661696c65643a2060286c656674203d3d20726967687429600a20206c6566743a2060602c0a2072696768743a2060603a2064657374696e6174696f6e20616e6420736f7572636520736c69636573206861766520646966666572656e74206c656e67746873000100000000000000200000000000000003000000000000000300000000000000030000000100000001000000200000000000000003000000000000000300000000000000030000000100000002000000200000000000000003000000000000000300000000000000030000000000000000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e72736c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f77307830303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839396c6962636f72652f736c6963652f6d6f642e7273696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820736c69636520696e64657820737461727473206174202062757420656e647320617420000000000000006c6962636f72652f666d742f6d6f642e727363616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e72732c0a29696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320000100000000000000200000000000000003000000000000000300000000000000030000000100000001000000200000000000000003000000000000000300000000000000030000006c6962636f72652f726573756c742e72730000003a200041848ac0000bc0030000100012000000120010000a00000003000000010000001c00100018000000120010000a00000003000000010000003400100036000000120010000a0000000300000001000000d80010001f000000f700100001000000f80010000100000000011000580000001100000012000000000110005800000012000000060000000001100058000000130000000600000000011000580000001400000005000000970110002d000000c40110000c000000d001100003000000d301100034000000ba03100014000000f906000009000000800210004c0000009b0400000900000007000000000000000100000008000000df02100011000000cc02100013000000f502000005000000ce03100006000000d403100022000000ba031000140000007108000005000000f6031000160000000c0410000d000000ba03100014000000770800000500000020041000120000005704000011000000320410002b0000005d04100011000000630100001500000020041000120000004b04000028000000710410002000000091041000120000000900000000000000010000000a00000000051000000000000005100002000000ec04100011000000f1030000050000000041c88dc0000bd0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000").unwrap() } diff --git a/tests/contracts/counter.rs b/tests/contracts/counter.rs index 70809f6a6..69fc489de 100644 --- a/tests/contracts/counter.rs +++ b/tests/contracts/counter.rs @@ -23,6 +23,7 @@ pub fn solidity_initcode() -> Vec { hex::decode("608060405234801561001057600080fd5b506101b3806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680635b34b9661461005c5780637531dafc146100735780638ada066e146100a0575b600080fd5b34801561006857600080fd5b506100716100cb565b005b34801561007f57600080fd5b5061009e60048036038101908080359060200190929190505050610116565b005b3480156100ac57600080fd5b506100b561017e565b6040518082815260200191505060405180910390f35b600160008082825401925050819055507f20d8a6f5a693f9d1d627a598e8820f7a55ee74c183aa8f1a30e8d4e8dd9a8d846000546040518082815260200191505060405180910390a1565b60008090505b8181101561017a57600160008082825401925050819055507f20d8a6f5a693f9d1d627a598e8820f7a55ee74c183aa8f1a30e8d4e8dd9a8d846000546040518082815260200191505060405180910390a1808060010191505061011c565b5050565b600080549050905600a165627a7a72305820315c1fff2fd6fb75de1e5ef9e77dcb4f33f5786355c5656f8c711b50d2747d200029").unwrap() } +#[allow(dead_code)] pub fn rust_initcode() -> Vec { hex::decode("0061736d0100000001370a60037f7f7f017f60027f7f0060017f006000017f60000060027f7f017f60037f7f7f0060017f017f60017f017e60057f7f7f7f7f017f02610603656e760576616c7565000203656e760c696e7075745f6c656e677468000303656e760b66657463685f696e707574000203656e760d73746f726167655f7772697465000103656e76066d656d6f7279020111ffff0303656e76037265740001031f1e040202050102010201070404020208020207040202010509010506020804040501700106060609017f01418080c0000b0708010463616c6c0022090b010041010b051b141320210ae1431ea30101047f230041d0006b2200240020001006200041106a1007200041c8006a22014200370300200041c0006a22024200370300200041386a22034200370300200042003703300240200041106a200041306a10080d0020014200370300200242003703002003420037030020004200370330200041106a200041306a1009200041106a100a20002802002000280204100b200041d0006a24000f0b41bc8bc000100c000b6001047f230041106b220124000240024010012202450d00200141086a2002100d200128020c2103200128020822041002200020043602000c010b2000410136020041002103410021020b2000200236020820002003360204200141106a24000be50101037f230041c0006b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020011000200141206a41186a4200370300200141206a41106a4200370300200141206a41086a420037030020014200370320411f2102200141206a2103024003402002417f460d012003200120026a2d00003a00002002417f6a2102200341016a21030c000b0b20002001290320370300200041186a200141206a41186a290300370300200041106a200141206a41106a290300370300200041086a200141206a41086a290300370300200141c0006a24000b7302027f027e200041186a2100200141186a210241032101024002400340410021032001417f460d01200141034b0d022000290300220420022903002205540d01200041786a2100200241786a21022001417f6a210120042005580d000b410121030b20030f0b41ac89c00020014104101f000bfd0202047f017e230041c0006b22022400200241186a2203200141186a290300370300200241106a200141106a290300370300200241086a200141086a29030037030020022001290300370300200241206a41186a4200370300200241206a41106a4200370300200241206a41086a42003703002002420037032041002101200241206a210441032105024002400340200141034b0d01200541034b0d02200420032903002206423886200642288642808080808080c0ff0083842006421886428080808080e03f8320064208864280808080f01f838484200642088842808080f80f832006421888428080fc07838420064228884280fe03832006423888848484370000200441086a21042005417f6a2105200341786a2103200141016a21010c000b0b20002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a290300370000200241c0006a24000f0b41bc89c000417f4104101f000b0b00418080c000200010030b0e0002402001450d00200010110b0b6802017f037e230041306b22012400200029021021022000290208210320002902002104200141146a41003602002001200437031820014201370204200141fc86c0003602102001200141186a36020020012003370320200120023703282001200141206a101d000b3901017f02402001417f4c0d00024002402001450d002001100e22020d0100000b410121020b20002001360204200020023602000f0b100f000b801b02097f017e0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041f4014b0d0041002802e48b40220141102000410b6a4178712000410b491b22024103762203411f712204762200410371450d012000417f7341017120036a2202410374220441f48bc0006a280200220041086a210520002802082203200441ec8bc0006a2204460d022003200436020c200441086a20033602000c030b41002103200041404f0d1c2000410b6a2200417871210241002802e88b402206450d0941002107024020004108762200450d00411f2107200241ffffff074b0d002002412620006722006b411f7176410171411f20006b4101747221070b410020026b2103200741027441f48dc0006a2802002200450d064100210420024100411920074101766b411f712007411f461b7421014100210503400240200028020441787122082002490d00200820026b220820034f0d0020082103200021052008450d060b200041146a28020022082004200820002001411d764104716a41106a2802002200471b200420081b21042001410174210120000d000b2004450d05200421000c070b200241002802f48e404d0d082000450d02200020047441022004742200410020006b72712200410020006b71682203410374220541f48bc0006a28020022002802082204200541ec8bc0006a2205460d0a2004200536020c200541086a20043602000c0b0b41002001417e200277713602e48b400b200020024103742202410372360204200020026a2200200028020441017236020420050f0b41002802e88b402200450d052000410020006b716841027441f48dc0006a280200220128020441787120026b21032001210420012802102200450d14410021090c150b41002103200021050c020b20050d020b4100210541022007411f71742200410020006b722006712200450d022000410020006b716841027441f48dc0006a2802002200450d020b03402000280204417871220420024f200420026b22082003497121010240200028021022040d00200041146a28020021040b2000200520011b21052008200320011b21032004210020040d000b2005450d010b41002802f48e4022002002490d012003200020026b490d010b024002400240024041002802f48e40220320024f0d0041002802f88e40220020024d0d014100200020026b22033602f88e40410041002802808f40220020026a22043602808f402004200341017236020420002002410372360204200041086a0f0b41002802fc8e402100200320026b220441104f0d01410041003602fc8e40410041003602f48e4020002003410372360204200020036a220341046a2102200328020441017221030c020b41002103200241af80046a220441107640002200417f460d1420004110742201450d14410041002802848f4020044180807c7122086a22003602848f40410041002802888f402203200020002003491b3602888f4041002802808f402203450d09418c8fc0002100034020002802002204200028020422056a2001460d0b200028020822000d000c130b0b410020043602f48e404100200020026a22013602fc8e4020012004410172360204200020036a200436020020024103722103200041046a21020b20022003360200200041086a0f0b200510192003410f4b0d022005200320026a2200410372360204200520006a220020002802044101723602040c0c0b41002001417e200377713602e48b400b200041086a210420002002410372360204200020026a22012003410374220320026b2202410172360204200020036a200236020041002802f48e402200450d032000410376220541037441ec8bc0006a210341002802fc8e40210041002802e48b40220841012005411f7174220571450d01200328020821050c020b20052002410372360204200520026a22002003410172360204200020036a2003360200200341ff014b0d052003410376220341037441ec8bc0006a210241002802e48b40220441012003411f7174220371450d07200241086a2104200228020821030c080b410020082005723602e48b40200321050b200341086a20003602002005200036020c2000200336020c200020053602080b410020013602fc8e40410020023602f48e4020040f0b0240024041002802a08f402200450d00200020014d0d010b410020013602a08f400b41002100410020083602908f404100200136028c8f40410041ff1f3602a48f40410041003602988f400340200041f48bc0006a200041ec8bc0006a2203360200200041f88bc0006a2003360200200041086a2200418002470d000b410020013602808f404100200841586a22003602f88e4020012000410172360204200120006a41283602044100418080800136029c8f400c090b200028020c450d010c070b20002003101a0c030b200120034d0d05200420034b0d05200041046a200520086a360200410041002802808f402200410f6a417871220341786a22043602808f40410041002802f88e4020086a2201200041086a20036b6a22033602f88e4020042003410172360204200020016a41283602044100418080800136029c8f400c060b410020042003723602e48b40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200541086a21030c040b410121090b034002400240024002400240024002400240024002400240024002400240024002400240024020090e0b00010204050608090a0703030b200028020441787120026b22012003200120034922011b21032000200420011b21042000220128021022000d0a410121090c110b200141146a28020022000d0a410221090c100b20041019200341104f0d0a410a21090c0f0b2004200320026a2200410372360204200420006a220020002802044101723602040c0d0b20042002410372360204200420026a22022003410172360204200220036a200336020041002802f48e402200450d09410421090c0d0b2000410376220541037441ec8bc0006a210141002802fc8e40210041002802e48b40220841012005411f7174220571450d09410521090c0c0b200128020821050c090b410020082005723602e48b4020012105410621090c0a0b200141086a20003602002005200036020c2000200136020c20002005360208410721090c090b410020023602fc8e40410020033602f48e40410821090c080b200441086a0f0b410021090c060b410021090c050b410321090c040b410721090c030b410921090c020b410621090c010b410821090c000b0b410041002802a08f402200200120002001491b3602a08f40200120086a2104418c8fc000210002400240024002400240034020002802002004460d01200028020822000d000c020b0b200028020c450d010b418c8fc00021000240034002402000280200220420034b0d00200420002802046a220420034b0d020b200028020821000c000b0b410020013602808f404100200841586a22003602f88e4020012000410172360204200120006a41283602044100418080800136029c8f402003200441606a41787141786a22002000200341106a491b2205411b360204410029028c8f40210a200541106a41002902948f403702002005200a370208410020083602908f404100200136028c8f404100200541086a3602948f40410041003602988f402005411c6a21000340200041073602002004200041046a22004b0d000b20052003460d0320052005280204417e713602042003200520036b2200410172360204200520003602000240200041ff014b0d002000410376220441037441ec8bc0006a210041002802e48b40220141012004411f7174220471450d02200028020821040c030b20032000101a0c030b200020013602002000200028020420086a36020420012002410372360204200120026a2100200420016b20026b210241002802808f402004460d0441002802fc8e402004460d05200428020422034103714101470d092003417871220541ff014b0d06200428020c220820042802082207460d072007200836020c200820073602080c080b410020012004723602e48b40200021040b200041086a20033602002004200336020c2003200036020c200320043602080b4100210341002802f88e40220020024d0d004100200020026b22033602f88e40410041002802808f40220020026a22043602808f402004200341017236020420002002410372360204200041086a0f0b20030f0b410020003602808f40410041002802f88e4020026a22023602f88e40200020024101723602040c050b410020003602fc8e40410041002802f48e4020026a22023602f48e4020002002410172360204200020026a20023602000c040b200410190c010b410041002802e48b40417e200341037677713602e48b400b200520026a2102200420056a21040b20042004280204417e7136020420002002410172360204200020026a2002360200024002400240200241ff014b0d002002410376220341037441ec8bc0006a210241002802e48b40220441012003411f7174220371450d01200241086a2104200228020821030c020b20002002101a0c020b410020042003723602e48b40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200141086a0b05001010000b0a0041ec89c000100c000bbf0701057f200041786a22012000417c6a280200220241787122006a21030240024020024101710d002002410371450d012001280200220220006a210002400240024041002802fc8e40200120026b2201460d00200241ff014b0d01200128020c220420012802082205460d022005200436020c200420053602080c030b20032802044103714103470d02410020003602f48e40200341046a22032003280200417e7136020020012000410172360204200120006a20003602000f0b200110190c010b410041002802e48b40417e200241037677713602e48b400b024002400240024002400240024002400240200328020422024102710d0041002802808f402003460d0141002802fc8e402003460d022002417871220420006a2100200441ff014b0d03200328020c220420032802082203460d042003200436020c200420033602080c050b200341046a2002417e7136020020012000410172360204200120006a20003602000c070b410020013602808f40410041002802f88e4020006a22003602f88e40200120004101723602040240200141002802fc8e40470d00410041003602f48e40410041003602fc8e400b410028029c8f40220220004f0d0741002802808f402200450d07024041002802f88e4022044129490d00418c8fc0002101034002402001280200220320004b0d00200320012802046a20004b0d020b200128020822010d000b0b41002802948f402200450d04410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c050b410020013602fc8e40410041002802f48e4020006a22003602f48e4020012000410172360204200120006a20003602000f0b200310190c010b410041002802e48b40417e200241037677713602e48b400b20012000410172360204200120006a2000360200200141002802fc8e40470d02410020003602f48e400f0b41ff1f21010b410020013602a48f40200420024d0d014100417f36029c8f400f0b02400240024002400240200041ff014b0d002000410376220341037441ec8bc0006a210041002802e48b40220241012003411f7174220371450d01200041086a2102200028020821030c020b20012000101a410041002802a48f40417f6a22013602a48f4020010d0441002802948f402200450d02410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c030b410020022003723602e48b40200041086a2102200021030b200220013602002003200136020c2001200036020c200120033602080f0b41ff1f21010b410020013602a48f400b0b6c01027f41012101024002400240024041002802d88b404101470d00410041002802dc8b4041016a22013602dc8b4020014103490d010c020b41004281808080103703d88b400b41002802e08b402202417f4c0d00410020023602e08b4020014102490d010b00000b1017000b0c0042eac3fccee49daadc020b02000b3101017f230041106b22012400200028020810161a2001200029020c3703002001200041146a29020037030820011012000b150002402000450d0020000f0b41c48ac000100c000b040000000b070020001015000bd10201057f200028021821010240024002400240200028020c22022000460d0020002802082203200236020c2002200336020820010d010c020b0240200041144110200041146a220228020022041b6a2802002203450d002002200041106a20041b2104024003402004210502402003220241146a22042802002203450d0020030d010c020b200241106a2104200228021022030d000b0b2005410036020020010d010c020b410021022001450d010b02400240200028021c41027441f48dc0006a22032802002000460d0020014110411420012802102000461b6a200236020020020d010c020b200320023602002002450d020b20022001360218024020002802102203450d0020022003360210200320023602180b200041146a2802002203450d00200241146a2003360200200320023602180b0f0b410041002802e88b40417e2000411c6a28020077713602e88b400bc40201047f41002102024020014108762203450d00411f2102200141ffffff074b0d002001412620036722026b411f7176410171411f20026b4101747221020b2000200236021c20004200370210200241027441f48dc0006a21030240024002400240024041002802e88b40220441012002411f7174220571450d00200328020022042802044178712001470d01200421020c020b410020042005723602e88b4020032000360200200020033602180c030b20014100411920024101766b411f712002411f461b742103034020042003411d764104716a41106a22052802002202450d02200341017421032002210420022802044178712001470d000b0b20022802082203200036020c200220003602082000200236020c20002003360208200041003602180f0b20052000360200200020043602180b2000200036020c200020003602080bc90201067f230041306b220224004127210302400240200028020022004190ce00490d00412721030340200241096a20036a2204417c6a200020004190ce006e220541f0b17f6c6a220641e4006e220741017441d083c0006a2f00003b00002004417e6a20062007419c7f6c6a41017441d083c0006a2f00003b00002003417c6a2103200041ffc1d72f4b21042005210020040d000c020b0b200021050b02400240200541e400480d00200241096a2003417e6a22036a200541ffff037141e4006e2200419c7f6c20056a41ffff037141017441d083c0006a2f00003b00000c010b200521000b02400240200041094a0d00200241096a2003417f6a22036a2205200041306a3a00000c010b200241096a2003417e6a22036a2205200041017441d083c0006a2f00003b00000b200141fc86c00041002005412720036b101c2100200241306a240020000bdd0901057f230041206b2205240020052002360204200520013602002005418080c40036020820042106024020002802002207410171450d002005412b360208200441016a21060b41002108200541003a000f02402007410471450d00200541013a000f02402002450d0041002108200221090340200820012d000041c00171418001466a2108200141016a21012009417f6a22090d000b0b200620026a20086b21060b2000280208210120052005410f6a3602142005200541086a36021020052005360218024002400240024002400240024002400240024002400240024002400240024020014101470d002000410c6a280200220120064d0d0120074108710d02200120066b2109410120002d0030220120014103461b4103712201450d0420014102460d03410021020c050b200541106a2000101e0d0c2000280218200320042000411c6a28020028020c11000021010c0e0b200541106a2000101e0d0b2000280218200320042000411c6a28020028020c11000021010c0d0b200041013a003020004130360204200541106a2000101e0d0a200120066b21094101200041306a2d0000220120014103461b4103712201450d0420014102460d03410021020c050b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c02402000280204220141ff004b0d00200520013a001c410121080c050b0240200141ff0f4b0d0020052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c050b200141ffff034b0d0320052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c040b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c0240200041046a280200220141ff004b0d00200520013a001c410121080c040b200141ff0f4b0d0220052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c030b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c040b0b200541106a2000101e0d02200041186a2209280200200320042000411c6a220028020028020c1100000d02417f21010340200141016a220120024f0d0420092802002005411c6a2008200028020028020c110000450d000c030b0b0240200141ffff034b0d0020052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c010b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c020b0b200041186a2209280200200320042000411c6a220028020028020c1100000d00417f21010340200141016a220120024f0d0220092802002005411c6a2008200028020028020c110000450d000b0b410121010c010b410021010b200541206a240020010b4a02017f017e230041206b2202240020012902002103200241146a2001290208370200200241ec8ac000360204200241fc86c000360200200220003602082002200337020c20021018000be40201057f230041106b220224000240024020002802002802002203418080c400460d002001411c6a2802002104200128021821052002410036020c02400240200341ff004b0d00200220033a000c410121060c010b0240200341ff0f4b0d0020022003413f71418001723a000d20022003410676411f7141c001723a000c410221060c010b0240200341ffff034b0d0020022003413f71418001723a000e20022003410676413f71418001723a000d20022003410c76410f7141e001723a000c410321060c010b2002200341127641f001723a000c20022003413f71418001723a000f20022003410c76413f71418001723a000d20022003410676413f71418001723a000e410421060b4101210320052002410c6a2006200428020c1100000d010b024020002802042d0000450d0020012802182000280208220028020020002802042001411c6a28020028020c11000021030c010b410021030b200241106a240020030b860101017f230041306b220324002003200236020420032001360200200341206a410c6a4101360200200341086a410c6a41023602002003411c6a410236020020034101360224200341dc8ac0003602082003410236020c200341b486c0003602102003200341046a360220200320033602282003200341206a360218200341086a2000101d000b02000b0c0042eac3fccee49daadc020b0f00100541ac8fc00041faf00010040b0bc080010400418080c0000b810901000000000000000000000000000000000000000000000000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f73696e6b2e7273556e646572666c6f77206f662070757368656420706172616d6574657273202f210000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273617373657274696f6e206661696c65643a2038203c3d206275662e6c656e28292f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974656f726465722d312e332e312f7372632f6c69622e72736c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f7730303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839396c6962636f72652f736c6963652f6d6f642e7273696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820736c69636520696e64657820737461727473206174202062757420656e64732061742063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e727300010000000000000020000000000000000300000000000000030000000000000003000000010000000100000020000000000000000300000000000000030000000000000003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732061726974686d65746963206f7065726174696f6e206f766572666c6f772f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273556e61626c6520746f206163636570742076616c756520696e206e6f6e2d70617961626c6520636f6e7374727563746f722063616c6c7372632f6c69622e7273496e76616c6964206d6574686f64207369676e6174757265496e76616c69642061626920696e766f6b6500418489c0000bd002760010001f00000095001000010000009600100001000000a00010004c0000001402000030000000f00010004c0000009b04000009000000f00010004c00000014020000300000005c01100050000000d30700000900000002000000000000000100000003000000bf01100011000000ac01100013000000f502000005000000ac02100006000000b20210002200000098021000140000007108000005000000d402100016000000ea0210000d00000098021000140000007708000005000000f70210002b000000220310001100000063010000150000007c031000200000009c0310001200000004000000000000000100000005000000cb0310004c00000061050000010000006f041000120000004d0410000a000000080000000100000057041000180000004d0410000a000000080000000100000017041000360000004d0410000a00000008000000010000000041d88bc0000bd00300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041ac8fc0000bfa700061736d01000000013f0b60037f7f7f017f60027f7f0060017f006000017f60000060027f7f017f60037f7f7f0060057f7f7f7f7f0060017f017f60017f017e60057f7f7f7f7f017f02740703656e760c73746f726167655f72656164000103656e760576616c7565000203656e760c696e7075745f6c656e677468000303656e760b66657463685f696e707574000203656e7603726574000103656e760d73746f726167655f7772697465000103656e76066d656d6f7279020111ffff03032a29020202050102010204060101070101080404020105060209020202080402020101050a010506020900040501700106060609017f01418080c0000b0708010463616c6c000e090b010041010b05271e1d2c2d0aa35f299b0201047f230041c0006b22012400200141206a41186a22024200370300200141206a41106a22034200370300200141206a41086a2204420037030020014200370320418080c000200141206a1000200141186a2002290300370300200141106a2003290300370300200141086a20042903003703002001200129032037030020024200370300200342003703002004420037030020014200370320411f2102200141206a2103024003402002417f460d012003200120026a2d00003a00002002417f6a2102200341016a21030c000b0b20002001290320370300200041186a200141206a41186a290300370300200041106a200141206a41106a290300370300200041086a200141206a41086a290300370300200141c0006a24000b6001047f230041106b220124000240024010022202450d00200141086a20021011200128020c2103200128020822041003200020043602000c010b2000410136020041002103410021020b2000200236020820002003360204200141106a24000be50101037f230041c0006b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020011001200141206a41186a4200370300200141206a41106a4200370300200141206a41086a420037030020014200370320411f2102200141206a2103024003402002417f460d012003200120026a2d00003a00002002417f6a2102200341016a21030c000b0b20002001290320370300200041186a200141206a41186a290300370300200041106a200141206a41106a290300370300200041086a200141206a41086a290300370300200141c0006a24000b7302027f027e200041186a2100200141186a210241032101024002400340410021032001417f460d01200141034b0d022000290300220420022903002205540d01200041786a2100200241786a21022001417f6a210120042005580d000b410121030b20030f0b41ac89c00020014104102b000bfd0202047f017e230041c0006b22022400200241186a2203200141186a290300370300200241106a200141106a290300370300200241086a200141086a29030037030020022001290300370300200241206a41186a4200370300200241206a41106a4200370300200241206a41086a42003703002002420037032041002101200241206a210441032105024002400340200141034b0d01200541034b0d02200420032903002206423886200642288642808080808080c0ff0083842006421886428080808080e03f8320064208864280808080f01f838484200642088842808080f80f832006421888428080fc07838420064228884280fe03832006423888848484370000200441086a21042005417f6a2105200341786a2103200141016a21010c000b0b20002002290320370000200041186a200241206a41186a290300370000200041106a200241206a41106a290300370000200041086a200241206a41086a290300370000200241c0006a24000f0b41bc89c000417f4104102b000b0b00418080c000200010050b0e0002402001450d00200010180b0b6802017f037e230041306b22012400200029021021022000290208210320002902002104200141146a41003602002001200437031820014201370204200141fc86c0003602102001200141186a36020020012003370320200120023703282001200141206a1029000b2f01017f230041206b22002400200041106a1007200020002802102000280218100f200028020020002802081010000bc20a02057f067e230041b0016b220324000240024002400240024002400240200241034d0d00024002400240200128000022014118742001410874418080fc07717220014108764180fe037120014118767272220141e6f2d2d905460d00200141ee8ce8d678470d04200341c0006a1008200341e0006a41186a22014200370300200341e0006a41106a22024200370300200341e0006a41086a2204420037030020034200370360200341c0006a200341e0006a10090d05200341c0006a1006200341186a412010112003412c6a2205428080808010370200200341346a420037020020034120360220200320032903183702242001200341c0006a41186a2903003703002002200341c0006a41106a2903003703002004200341c0006a41086a29030037030020032003290340370360200341206a410472412010192003280224200528020022066a21054100210102400340200520016a2104200141016a2202411f4b0d01200441003a0000200221010c000b0b2003412c6a200620016a41016a220136020041002102200441003a0000200341106a41004120200328022420011012200341f8006a21042003280214210620032802102107410321054100210102400340200141034b0d01200341086a20022006200720061012200541034b0d03200328020c41074d0d04200141016a2101200328020820042903002208423886200842288642808080808080c0ff0083842008421886428080808080e03f8320084208864280808080f01f838484200842088842808080f80f832008421888428080fc07838420084228884280fe03832008423888848484370000200241086a2102200441786a21042005417f6a21050c000b0b200341e0006a41086a200341206a41086a290300370300200341e0006a41186a2204200341206a41186a280200360200200341e0006a41106a200341206a41106a29030037030020032003290320370360200341e0006a410c6a220228020022012003280260470d0620034180016a41086a220120022802003602002003200329026437038001200341f4006a28020021052003280270210220034180016a20042802002204101920012004200128020022066a36020020062003280280016a20022004102e1a200041086a2001280200360200200020032903800137020020022005100c0c090b200341c0006a1008200341e0006a41186a4200370300200341f0006a4200370300200341e0006a41086a420037030020034200370360200341c0006a200341e0006a10090d06200341e0006a1006200329037821092003290370210a2003290368210802400240024002402003290360220b42017c220c200b5a0d00200842017c220b20085a0d01200a200b200854ad7c2208200a5a0d0320092008200a54ad7c220d20095a0d0b41ae87c000411d41fc8ac000101b000b2009210d2008210b0c010b2009210d0b200a21080c080b2009210d0c070b419c89c00020054104102b000b41bc82c000412041cc89c000101b000b418c8bc000100d000b41a48bc000100d000b41bc8bc000100d000b20034198016a410c6a410136020020034180016a410c6a410236020020034194016a4102360200200320013602ac012003410136029c012003418489c000360280012003410336028401200341b486c000360288012003200341ac016a360298012003200341e0006a3602a001200320034198016a3602900120034180016a101f000b41bc8bc000100d000b2003200b3703482003200c370340200320083703502003200d370358200341e0006a200341c0006a100a200341e0006a100b20004100360208200042013702000b200341b0016a24000b0900200020011004000b3901017f02402001417f4c0d00024002402001450d002001101522020d0100000b410121020b20002001360204200020023602000f0b1016000b39000240024020022001490d0020042002490d012000200220016b3602042000200320016a3602000f0b200120021013000b200220041014000b890101017f230041306b220224002002200136020420022000360200200241206a410c6a4101360200200241086a410c6a41023602002002411c6a410236020020024101360224200241a48ac0003602082002410236020c200241b486c000360210200220023602202002200241046a3602282002200241206a360218200241086a41b48ac0001029000b890101017f230041306b220224002002200136020420022000360200200241206a410c6a4101360200200241086a410c6a41023602002002411c6a410236020020024101360224200241848ac0003602082002410236020c200241b486c000360210200220023602202002200241046a3602282002200241206a360218200241086a41948ac0001029000b801b02097f017e0240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240024002400240200041f4014b0d0041002802e48b40220141102000410b6a4178712000410b491b22024103762203411f712204762200410371450d012000417f7341017120036a2202410374220441f48bc0006a280200220041086a210520002802082203200441ec8bc0006a2204460d022003200436020c200441086a20033602000c030b41002103200041404f0d1c2000410b6a2200417871210241002802e88b402206450d0941002107024020004108762200450d00411f2107200241ffffff074b0d002002412620006722006b411f7176410171411f20006b4101747221070b410020026b2103200741027441f48dc0006a2802002200450d064100210420024100411920074101766b411f712007411f461b7421014100210503400240200028020441787122082002490d00200820026b220820034f0d0020082103200021052008450d060b200041146a28020022082004200820002001411d764104716a41106a2802002200471b200420081b21042001410174210120000d000b2004450d05200421000c070b200241002802f48e404d0d082000450d02200020047441022004742200410020006b72712200410020006b71682203410374220541f48bc0006a28020022002802082204200541ec8bc0006a2205460d0a2004200536020c200541086a20043602000c0b0b41002001417e200277713602e48b400b200020024103742202410372360204200020026a2200200028020441017236020420050f0b41002802e88b402200450d052000410020006b716841027441f48dc0006a280200220128020441787120026b21032001210420012802102200450d14410021090c150b41002103200021050c020b20050d020b4100210541022007411f71742200410020006b722006712200450d022000410020006b716841027441f48dc0006a2802002200450d020b03402000280204417871220420024f200420026b22082003497121010240200028021022040d00200041146a28020021040b2000200520011b21052008200320011b21032004210020040d000b2005450d010b41002802f48e4022002002490d012003200020026b490d010b024002400240024041002802f48e40220320024f0d0041002802f88e40220020024d0d014100200020026b22033602f88e40410041002802808f40220020026a22043602808f402004200341017236020420002002410372360204200041086a0f0b41002802fc8e402100200320026b220441104f0d01410041003602fc8e40410041003602f48e4020002003410372360204200020036a220341046a2102200328020441017221030c020b41002103200241af80046a220441107640002200417f460d1420004110742201450d14410041002802848f4020044180807c7122086a22003602848f40410041002802888f402203200020002003491b3602888f4041002802808f402203450d09418c8fc0002100034020002802002204200028020422056a2001460d0b200028020822000d000c130b0b410020043602f48e404100200020026a22013602fc8e4020012004410172360204200020036a200436020020024103722103200041046a21020b20022003360200200041086a0f0b200510242003410f4b0d022005200320026a2200410372360204200520006a220020002802044101723602040c0c0b41002001417e200377713602e48b400b200041086a210420002002410372360204200020026a22012003410374220320026b2202410172360204200020036a200236020041002802f48e402200450d032000410376220541037441ec8bc0006a210341002802fc8e40210041002802e48b40220841012005411f7174220571450d01200328020821050c020b20052002410372360204200520026a22002003410172360204200020036a2003360200200341ff014b0d052003410376220341037441ec8bc0006a210241002802e48b40220441012003411f7174220371450d07200241086a2104200228020821030c080b410020082005723602e48b40200321050b200341086a20003602002005200036020c2000200336020c200020053602080b410020013602fc8e40410020023602f48e4020040f0b0240024041002802a08f402200450d00200020014d0d010b410020013602a08f400b41002100410020083602908f404100200136028c8f40410041ff1f3602a48f40410041003602988f400340200041f48bc0006a200041ec8bc0006a2203360200200041f88bc0006a2003360200200041086a2200418002470d000b410020013602808f404100200841586a22003602f88e4020012000410172360204200120006a41283602044100418080800136029c8f400c090b200028020c450d010c070b2000200310250c030b200120034d0d05200420034b0d05200041046a200520086a360200410041002802808f402200410f6a417871220341786a22043602808f40410041002802f88e4020086a2201200041086a20036b6a22033602f88e4020042003410172360204200020016a41283602044100418080800136029c8f400c060b410020042003723602e48b40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200541086a21030c040b410121090b034002400240024002400240024002400240024002400240024002400240024002400240024020090e0b00010204050608090a0703030b200028020441787120026b22012003200120034922011b21032000200420011b21042000220128021022000d0a410121090c110b200141146a28020022000d0a410221090c100b20041024200341104f0d0a410a21090c0f0b2004200320026a2200410372360204200420006a220020002802044101723602040c0d0b20042002410372360204200420026a22022003410172360204200220036a200336020041002802f48e402200450d09410421090c0d0b2000410376220541037441ec8bc0006a210141002802fc8e40210041002802e48b40220841012005411f7174220571450d09410521090c0c0b200128020821050c090b410020082005723602e48b4020012105410621090c0a0b200141086a20003602002005200036020c2000200136020c20002005360208410721090c090b410020023602fc8e40410020033602f48e40410821090c080b200441086a0f0b410021090c060b410021090c050b410321090c040b410721090c030b410921090c020b410621090c010b410821090c000b0b410041002802a08f402200200120002001491b3602a08f40200120086a2104418c8fc000210002400240024002400240034020002802002004460d01200028020822000d000c020b0b200028020c450d010b418c8fc00021000240034002402000280200220420034b0d00200420002802046a220420034b0d020b200028020821000c000b0b410020013602808f404100200841586a22003602f88e4020012000410172360204200120006a41283602044100418080800136029c8f402003200441606a41787141786a22002000200341106a491b2205411b360204410029028c8f40210a200541106a41002902948f403702002005200a370208410020083602908f404100200136028c8f404100200541086a3602948f40410041003602988f402005411c6a21000340200041073602002004200041046a22004b0d000b20052003460d0320052005280204417e713602042003200520036b2200410172360204200520003602000240200041ff014b0d002000410376220441037441ec8bc0006a210041002802e48b40220141012004411f7174220471450d02200028020821040c030b2003200010250c030b200020013602002000200028020420086a36020420012002410372360204200120026a2100200420016b20026b210241002802808f402004460d0441002802fc8e402004460d05200428020422034103714101470d092003417871220541ff014b0d06200428020c220820042802082207460d072007200836020c200820073602080c080b410020012004723602e48b40200021040b200041086a20033602002004200336020c2003200036020c200320043602080b4100210341002802f88e40220020024d0d004100200020026b22033602f88e40410041002802808f40220020026a22043602808f402004200341017236020420002002410372360204200041086a0f0b20030f0b410020003602808f40410041002802f88e4020026a22023602f88e40200020024101723602040c050b410020003602fc8e40410041002802f48e4020026a22023602f48e4020002002410172360204200020026a20023602000c040b200410240c010b410041002802e48b40417e200341037677713602e48b400b200520026a2102200420056a21040b20042004280204417e7136020420002002410172360204200020026a2002360200024002400240200241ff014b0d002002410376220341037441ec8bc0006a210241002802e48b40220441012003411f7174220371450d01200241086a2104200228020821030c020b2000200210250c020b410020042003723602e48b40200241086a2104200221030b200420003602002003200036020c2000200236020c200020033602080b200141086a0b05001017000b0a0041ec89c000100d000bbf0701057f200041786a22012000417c6a280200220241787122006a21030240024020024101710d002002410371450d012001280200220220006a210002400240024041002802fc8e40200120026b2201460d00200241ff014b0d01200128020c220420012802082205460d022005200436020c200420053602080c030b20032802044103714103470d02410020003602f48e40200341046a22032003280200417e7136020020012000410172360204200120006a20003602000f0b200110240c010b410041002802e48b40417e200241037677713602e48b400b024002400240024002400240024002400240200328020422024102710d0041002802808f402003460d0141002802fc8e402003460d022002417871220420006a2100200441ff014b0d03200328020c220420032802082203460d042003200436020c200420033602080c050b200341046a2002417e7136020020012000410172360204200120006a20003602000c070b410020013602808f40410041002802f88e4020006a22003602f88e40200120004101723602040240200141002802fc8e40470d00410041003602f48e40410041003602fc8e400b410028029c8f40220220004f0d0741002802808f402200450d07024041002802f88e4022044129490d00418c8fc0002101034002402001280200220320004b0d00200320012802046a20004b0d020b200128020822010d000b0b41002802948f402200450d04410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c050b410020013602fc8e40410041002802f48e4020006a22003602f48e4020012000410172360204200120006a20003602000f0b200310240c010b410041002802e48b40417e200241037677713602e48b400b20012000410172360204200120006a2000360200200141002802fc8e40470d02410020003602f48e400f0b41ff1f21010b410020013602a48f40200420024d0d014100417f36029c8f400f0b02400240024002400240200041ff014b0d002000410376220341037441ec8bc0006a210041002802e48b40220241012003411f7174220371450d01200041086a2102200028020821030c020b200120001025410041002802a48f40417f6a22013602a48f4020010d0441002802948f402200450d02410021010340200141016a2101200028020822000d000b200141ff1f200141ff1f4b1b21010c030b410020022003723602e48b40200041086a2102200021030b200220013602002003200136020c2001200036020c200120033602080f0b41ff1f21010b410020013602a48f400b0b7c01027f024020002802042202200028020822036b20014f0d0002400240200320016a22012003490d0020024101742203200120012003491b22014100480d00024002402002450d0020002802002001101a2202450d010c030b2001101522020d020b00000b1017000b20002002360200200041046a20013602000b0be50501087f4100210202400240024002400240200141bf7f4b0d0041102001410b6a4178712001410b491b21032000417c6a220428020022054178712106024002400240024002402005410371450d00200041786a220720066a2108200620034f0d0141002802808f402008460d0241002802fc8e402008460d03200828020422054102710d042005417871220920066a22062003490d04200620036b2101200941ff014b0d07200828020c220220082802082208460d082008200236020c200220083602080c090b2003418002490d0320062003410472490d03200620036b418180084f0d0320000f0b0240200620036b220141104f0d0020000f0b20042003200541017172410272360200200720036a220220014103723602042008200828020441017236020420022001102620000f0b41002802f88e4020066a220620034d0d0120042003200541017172410272360200200720036a2201200620036b2202410172360204410020023602f88e40410020013602808f4020000f0b41002802f48e4020066a220620034f0d020b200110152203450d00200320002001200428020022024178714104410820024103711b6b2202200220014b1b102e210120001018200121020b20020f0b02400240200620036b220141104f0d0020042005410171200672410272360200200720066a2201200128020441017236020441002101410021020c010b20042003200541017172410272360200200720036a22022001410172360204200720066a2203200136020020032003280204417e713602040b410020023602fc8e40410020013602f48e4020000f0b200810240c010b410041002802e48b40417e200541037677713602e48b400b02402001410f4b0d0020042006200428020041017172410272360200200720066a2201200128020441017236020420000f0b20042003200428020041017172410272360200200720036a22022001410372360204200720066a2203200328020441017236020420022001102620000b07002002101c000b6c01027f41012101024002400240024041002802d88b404101470d00410041002802dc8b4041016a22013602dc8b4020014103490d010c020b41004281808080103703d88b400b41002802e08b402202417f4c0d00410020023602e08b4020014102490d010b00000b1022000b0c0042eac3fccee49daadc020b02000b5001017f230041206b22012400200141106a42d6808080c006370300200141186a412d360200200141dc89c000360204200141fc86c00036020020012000360208200141a080c00036020c20011020000b3101017f230041106b22012400200028020810211a2001200029020c3703002001200041146a2902003703082001101c000b150002402000450d0020000f0b41c48ac000100d000b040000000b070020001020000bd10201057f200028021821010240024002400240200028020c22022000460d0020002802082203200236020c2002200336020820010d010c020b0240200041144110200041146a220228020022041b6a2802002203450d002002200041106a20041b2104024003402004210502402003220241146a22042802002203450d0020030d010c020b200241106a2104200228021022030d000b0b2005410036020020010d010c020b410021022001450d010b02400240200028021c41027441f48dc0006a22032802002000460d0020014110411420012802102000461b6a200236020020020d010c020b200320023602002002450d020b20022001360218024020002802102203450d0020022003360210200320023602180b200041146a2802002203450d00200241146a2003360200200320023602180b0f0b410041002802e88b40417e2000411c6a28020077713602e88b400bc40201047f41002102024020014108762203450d00411f2102200141ffffff074b0d002001412620036722026b411f7176410171411f20026b4101747221020b2000200236021c20004200370210200241027441f48dc0006a21030240024002400240024041002802e88b40220441012002411f7174220571450d00200328020022042802044178712001470d01200421020c020b410020042005723602e88b4020032000360200200020033602180c030b20014100411920024101766b411f712002411f461b742103034020042003411d764104716a41106a22052802002202450d02200341017421032002210420022802044178712001470d000b0b20022802082203200036020c200220003602082000200236020c20002003360208200041003602180f0b20052000360200200020043602180b2000200036020c200020003602080b960501047f200020016a210202400240024002400240024002400240200028020422034101710d002003410371450d012000280200220320016a210102400240024041002802fc8e40200020036b2200460d00200341ff014b0d01200028020c220420002802082205460d022005200436020c200420053602080c030b20022802044103714103470d02410020013602f48e40200241046a22032003280200417e7136020020002001410172360204200220013602000f0b200010240c010b410041002802e48b40417e200341037677713602e48b400b02400240200228020422034102710d0041002802808f402002460d0141002802fc8e402002460d032003417871220420016a2101200441ff014b0d04200228020c220420022802082202460d062002200436020c200420023602080c070b200241046a2003417e7136020020002001410172360204200020016a20013602000c070b410020003602808f40410041002802f88e4020016a22013602f88e4020002001410172360204200041002802fc8e40460d030b0f0b410020003602fc8e40410041002802f48e4020016a22013602f48e4020002001410172360204200020016a20013602000f0b200210240c020b410041003602f48e40410041003602fc8e400f0b410041002802e48b40417e200341037677713602e48b400b20002001410172360204200020016a2001360200200041002802fc8e40470d00410020013602f48e400f0b024002400240200141ff014b0d002001410376220241037441ec8bc0006a210141002802e48b40220341012002411f7174220271450d01200128020821020c020b2000200110250f0b410020032002723602e48b40200121020b200141086a20003602002002200036020c2000200136020c200020023602080bc90201067f230041306b220224004127210302400240200028020022004190ce00490d00412721030340200241096a20036a2204417c6a200020004190ce006e220541f0b17f6c6a220641e4006e220741017441d083c0006a2f00003b00002004417e6a20062007419c7f6c6a41017441d083c0006a2f00003b00002003417c6a2103200041ffc1d72f4b21042005210020040d000c020b0b200021050b02400240200541e400480d00200241096a2003417e6a22036a200541ffff037141e4006e2200419c7f6c20056a41ffff037141017441d083c0006a2f00003b00000c010b200521000b02400240200041094a0d00200241096a2003417f6a22036a2205200041306a3a00000c010b200241096a2003417e6a22036a2205200041017441d083c0006a2f00003b00000b200141fc86c00041002005412720036b10282100200241306a240020000bdd0901057f230041206b2205240020052002360204200520013602002005418080c40036020820042106024020002802002207410171450d002005412b360208200441016a21060b41002108200541003a000f02402007410471450d00200541013a000f02402002450d0041002108200221090340200820012d000041c00171418001466a2108200141016a21012009417f6a22090d000b0b200620026a20086b21060b2000280208210120052005410f6a3602142005200541086a36021020052005360218024002400240024002400240024002400240024002400240024002400240024020014101470d002000410c6a280200220120064d0d0120074108710d02200120066b2109410120002d0030220120014103461b4103712201450d0420014102460d03410021020c050b200541106a2000102a0d0c2000280218200320042000411c6a28020028020c11000021010c0e0b200541106a2000102a0d0b2000280218200320042000411c6a28020028020c11000021010c0d0b200041013a003020004130360204200541106a2000102a0d0a200120066b21094101200041306a2d0000220120014103461b4103712201450d0420014102460d03410021020c050b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c02402000280204220141ff004b0d00200520013a001c410121080c050b0240200141ff0f4b0d0020052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c050b200141ffff034b0d0320052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c040b200941016a4101762102200941017621090c010b20092102410021090b2005410036021c0240200041046a280200220141ff004b0d00200520013a001c410121080c040b200141ff0f4b0d0220052001413f71418001723a001d20052001410676411f7141c001723a001c410221080c030b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c040b0b200541106a2000102a0d02200041186a2209280200200320042000411c6a220028020028020c1100000d02417f21010340200141016a220120024f0d0420092802002005411c6a2008200028020028020c110000450d000c030b0b0240200141ffff034b0d0020052001413f71418001723a001e20052001410676413f71418001723a001d20052001410c76410f7141e001723a001c410321080c010b2005200141127641f001723a001c20052001413f71418001723a001f20052001410c76413f71418001723a001d20052001410676413f71418001723a001e410421080b417f210102400340200141016a220120094f0d01200041186a2802002005411c6a20082000411c6a28020028020c110000450d000c020b0b200041186a2209280200200320042000411c6a220028020028020c1100000d00417f21010340200141016a220120024f0d0220092802002005411c6a2008200028020028020c110000450d000b0b410121010c010b410021010b200541206a240020010b4a02017f017e230041206b2202240020012902002103200241146a2001290208370200200241ec8ac000360204200241fc86c000360200200220003602082002200337020c20021023000be40201057f230041106b220224000240024020002802002802002203418080c400460d002001411c6a2802002104200128021821052002410036020c02400240200341ff004b0d00200220033a000c410121060c010b0240200341ff0f4b0d0020022003413f71418001723a000d20022003410676411f7141c001723a000c410221060c010b0240200341ffff034b0d0020022003413f71418001723a000e20022003410676413f71418001723a000d20022003410c76410f7141e001723a000c410321060c010b2002200341127641f001723a000c20022003413f71418001723a000f20022003410c76413f71418001723a000d20022003410676413f71418001723a000e410421060b4101210320052002410c6a2006200428020c1100000d010b024020002802042d0000450d0020012802182000280208220028020020002802042001411c6a28020028020c11000021030c010b410021030b200241106a240020030b860101017f230041306b220324002003200236020420032001360200200341206a410c6a4101360200200341086a410c6a41023602002003411c6a410236020020034101360224200341dc8ac0003602082003410236020c200341b486c0003602102003200341046a360220200320033602282003200341206a360218200341086a20001029000b02000b0c0042eac3fccee49daadc020b3601017f02402002450d00200021030340200320012d00003a0000200141016a2101200341016a21032002417f6a22020d000b0b20000b0bbd0f0300418080c0000b810901000000000000000000000000000000000000000000000000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f6f7761736d2d6162692d302e312e31342f7372632f6574682f73696e6b2e7273556e646572666c6f77206f662070757368656420706172616d6574657273202f210000000000000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273000000002f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273617373657274696f6e206661696c65643a2038203c3d206275662e6c656e28292f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974656f726465722d312e332e312f7372632f6c69622e72736c6962616c6c6f632f7261775f7665632e72736361706163697479206f766572666c6f7730303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839396c6962636f72652f736c6963652f6d6f642e7273696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820736c69636520696e64657820737461727473206174202062757420656e64732061742063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75656c6962636f72652f6f7074696f6e2e727300010000000000000020000000000000000300000000000000030000000000000003000000010000000100000020000000000000000300000000000000030000000000000003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732061726974686d65746963206f7065726174696f6e206f766572666c6f772f726f6f742f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f75696e742d302e342e312f7372632f75696e742e7273556e61626c6520746f206163636570742076616c756520696e206e6f6e2d70617961626c6520636f6e7374727563746f722063616c6c7372632f6c69622e7273496e76616c6964206d6574686f64207369676e6174757265496e76616c69642061626920696e766f6b6500418489c0000bd002760010001f00000095001000010000009600100001000000a00010004c0000001402000030000000f00010004c0000009b04000009000000f00010004c00000014020000300000005c01100050000000d30700000900000002000000000000000100000003000000bf01100011000000ac01100013000000f502000005000000ac02100006000000b20210002200000098021000140000007108000005000000d402100016000000ea0210000d00000098021000140000007708000005000000f70210002b000000220310001100000063010000150000007c031000200000009c0310001200000004000000000000000100000005000000cb0310004c00000061050000010000006f041000120000004d0410000a000000080000000100000057041000180000004d0410000a000000080000000100000017041000360000004d0410000a00000008000000010000000041d88bc0000bd0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000").unwrap() } @@ -31,6 +32,7 @@ pub fn increment_counter_sighash() -> Vec { hex::decode("5b34b966").unwrap() } +#[allow(dead_code)] pub fn get_counter_sighash() -> Vec { hex::decode("8ada066e").unwrap() } diff --git a/tests/estimate_gas.rs b/tests/estimate_gas.rs index 3d2777a05..58dc2de74 100644 --- a/tests/estimate_gas.rs +++ b/tests/estimate_gas.rs @@ -61,7 +61,7 @@ fn estimate_gas_wasm_scaling() { let data = contracts::bulk_storage::initcode(); // When let estimate_gas = client.estimate_gas(None, data.clone(), &U256::from(0)); - let (tx_hash, addr) = client.create_contract(data, &U256::from(0)); + let (tx_hash, _addr) = client.create_contract(data, &U256::from(0)); // Then let receipt = client.receipt(tx_hash); assert_eq!(receipt.cumulative_gas_used, estimate_gas);