diff --git a/.github/workflows/checks.yaml b/.github/workflows/checks.yaml index f25074c6..ebccd602 100644 --- a/.github/workflows/checks.yaml +++ b/.github/workflows/checks.yaml @@ -19,7 +19,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-23 + toolchain: nightly-2023-08-21 components: rustfmt, clippy - uses: actions/setup-node@v3 @@ -44,7 +44,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-23 + toolchain: nightly-2023-08-21 - name: Build Code run: make all diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 2a4eef9d..4e8ceeba 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -33,7 +33,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Setup Pages uses: actions/configure-pages@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58a05941..2a15775a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -48,7 +48,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Install target run: rustup target add ${{ matrix.arch }} diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 8d785306..973f28b1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -24,7 +24,7 @@ jobs: - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: nightly-2023-07-21 + toolchain: nightly-2023-08-21 - name: Install cargo-nextest run: cargo install cargo-nextest diff --git a/.gitignore b/.gitignore index 106a7b11..ee37a199 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ /target etc/system-contracts/.yarn etc/system-contracts/node_modules +etc/system-contracts/contracts-preprocessed etc/system-contracts/cache-zk etc/system-contracts/artifacts-zk -etc/system-contracts/typechain-types +etc/system-contracts/typechain etc/system-contracts/.yarnrc.yml etc/system-contracts/bootloader/build diff --git a/Cargo.lock b/Cargo.lock index 09ddd0f8..ef5b8cb3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14,12 +14,12 @@ dependencies = [ [[package]] name = "actix-codec" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "617a8268e3537fe1d8c9ead925fca49ef6400927ee7bc26750e90ecee14ce4b8" +checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 1.3.2", - "bytes 1.5.0", + "bitflags 2.4.2", + "bytes", "futures-core", "futures-sink", "memchr", @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "actix-cors" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b340e9cfa5b08690aae90fb61beb44e9b06f44fe3d0f93781aaa58cfba86245e" +checksum = "0346d8c1f762b41b458ed3145eea914966bb9ad20b9be0d6d463b20d45586370" dependencies = [ "actix-utils", "actix-web", @@ -46,19 +46,19 @@ dependencies = [ [[package]] name = "actix-http" -version = "3.4.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92ef85799cba03f76e4f7c10f533e66d87c9a7e7055f3391f09000ad8351bc9" +checksum = "d223b13fd481fc0d1f83bb12659ae774d9e3601814c68a0bc539731698cca743" dependencies = [ "actix-codec", "actix-rt", "actix-service", "actix-utils", - "ahash 0.8.6", - "base64 0.21.5", - "bitflags 2.4.1", + "ahash 0.8.7", + "base64 0.21.7", + "bitflags 2.4.2", "brotli", - "bytes 1.5.0", + "bytes", "bytestring", "derive_more", "encoding_rs", @@ -80,7 +80,7 @@ dependencies = [ "tokio", "tokio-util 0.7.10", "tracing", - "zstd 0.12.4", + "zstd 0.13.0", ] [[package]] @@ -89,15 +89,15 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "actix-router" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799" +checksum = "d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511" dependencies = [ "bytestring", "http", @@ -128,7 +128,7 @@ dependencies = [ "actix-utils", "futures-core", "futures-util", - "mio 0.8.9", + "mio", "socket2 0.5.5", "tokio", "tracing", @@ -157,9 +157,9 @@ dependencies = [ [[package]] name = "actix-web" -version = "4.4.0" +version = "4.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9" +checksum = "43a6556ddebb638c2358714d853257ed226ece6023ef9364f23f0c70737ea984" dependencies = [ "actix-codec", "actix-http", @@ -170,8 +170,8 @@ dependencies = [ "actix-service", "actix-utils", "actix-web-codegen", - "ahash 0.8.6", - "bytes 1.5.0", + "ahash 0.8.7", + "bytes", "bytestring", "cfg-if 1.0.0", "cookie", @@ -202,9 +202,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5" dependencies = [ "actix-router", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -240,18 +240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", + "generic-array", ] [[package]] @@ -261,22 +250,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] -[[package]] -name = "aes-ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7729c3cde54d67063be556aeac75a81330d802f0259500ca40cb52967f975763" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", - "ctr 0.6.0", -] - [[package]] name = "aes-gcm" version = "0.10.3" @@ -284,52 +261,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ "aead", - "aes 0.8.3", - "cipher 0.4.4", - "ctr 0.9.2", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - [[package]] name = "ahash" version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if 1.0.0", - "getrandom 0.2.11", + "getrandom 0.2.12", "once_cell", "version_check", "zerocopy", @@ -359,6 +316,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -380,14 +343,14 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -399,43 +362,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "arr_macro" @@ -454,7 +417,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0609c78bd572f4edc74310dfb63a01f5609d53fa8b4dd7c4d98aef3b3e8d72d1" dependencies = [ "proc-macro-hack", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -496,9 +459,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" +checksum = "a116f46a969224200a0a97f29cfd4c50e7534e4b4826bd23ea2c3c533039c82c" dependencies = [ "brotli", "flate2", @@ -512,11 +475,13 @@ dependencies = [ [[package]] name = "async-lock" -version = "2.8.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener", + "event-listener 4.0.3", + "event-listener-strategy", + "pin-project-lite", ] [[package]] @@ -536,20 +501,20 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -558,20 +523,30 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "pharos", "rustc_version", ] [[package]] name = "atoi" -version = "0.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ "num-traits", ] +[[package]] +name = "atomic-write-file" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +dependencies = [ + "nix", + "rand 0.8.5", +] + [[package]] name = "atty" version = "0.2.14" @@ -580,28 +555,18 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ "hermit-abi 0.1.19", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "auto_impl" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" -dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 1.0.109", -] - -[[package]] -name = "autocfg" -version = "0.1.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ - "autocfg 1.1.0", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -619,7 +584,7 @@ dependencies = [ "async-trait", "axum-core", "bitflags 1.3.2", - "bytes 1.5.0", + "bytes", "futures-util", "http", "http-body", @@ -648,7 +613,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" dependencies = [ "async-trait", - "bytes 1.5.0", + "bytes", "futures-util", "http", "http-body", @@ -658,18 +623,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "backon" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1a6197b2120bb2185a267f6515038558b019e92b832bb0320e96d66268dcf9" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "pin-project", - "tokio", -] - [[package]] name = "backtrace" version = "0.3.69" @@ -705,9 +658,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64ct" @@ -742,7 +695,7 @@ dependencies = [ "byteorder", "cfg-if 1.0.0", "crossbeam 0.7.3", - "futures 0.3.29", + "futures 0.3.30", "hex", "lazy_static", "num_cpus", @@ -765,7 +718,7 @@ dependencies = [ "byteorder", "cfg-if 1.0.0", "crossbeam 0.7.3", - "futures 0.3.29", + "futures 0.3.30", "hex", "lazy_static", "num_cpus", @@ -788,6 +741,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bigdecimal" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" +dependencies = [ + "num-bigint 0.4.4", + "num-integer", + "num-traits", + "serde", +] + [[package]] name = "bincode" version = "1.3.3" @@ -810,12 +775,12 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] @@ -844,9 +809,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +dependencies = [ + "serde", +] [[package]] name = "bitmaps" @@ -887,9 +855,9 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -951,26 +919,14 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.7", + "block-padding", + "generic-array", ] [[package]] @@ -979,26 +935,7 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-modes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" -dependencies = [ - "block-padding 0.2.1", - "cipher 0.2.5", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -1022,14 +959,14 @@ dependencies = [ [[package]] name = "boojum" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#1588de7669b016df3f81f7139a1a4b131840e48b" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" dependencies = [ "arrayvec 0.7.4", "bincode", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "const_format", "convert_case 0.6.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", "crypto-bigint 0.5.5", "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", "derivative", @@ -1050,6 +987,30 @@ dependencies = [ "unroll", ] +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", + "syn_derive", +] + [[package]] name = "brotli" version = "3.4.0" @@ -1094,9 +1055,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" dependencies = [ "memchr", "serde", @@ -1115,10 +1076,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] -name = "byte-tools" -version = "0.3.1" +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] [[package]] name = "bytecount" @@ -1132,16 +1109,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" -[[package]] -name = "bytes" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" -dependencies = [ - "byteorder", - "iovec", -] - [[package]] name = "bytes" version = "1.5.0" @@ -1157,7 +1124,7 @@ version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74d80203ea6b29df88012294f62733de21cfeab47f17b41af3a38bc30a03ee72" dependencies = [ - "bytes 1.5.0", + "bytes", ] [[package]] @@ -1192,9 +1159,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" dependencies = [ "serde", ] @@ -1257,6 +1224,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chacha20" version = "0.9.1" @@ -1264,7 +1237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" dependencies = [ "cfg-if 1.0.0", - "cipher 0.4.4", + "cipher", "cpufeatures", ] @@ -1276,16 +1249,16 @@ checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ "aead", "chacha20", - "cipher 0.4.4", + "cipher", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -1293,16 +1266,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.7", + "windows-targets 0.52.0", ] [[package]] @@ -1319,15 +1283,29 @@ dependencies = [ [[package]] name = "circuit_definitions" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#d2e3670e0c5115b7cc7cc24e6d3dbdd17a214aad" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#de2ecad62ac8c12777e576dca20311ad8ec770d1" dependencies = [ - "crossbeam 0.8.2", + "crossbeam 0.8.4", "derivative", "seq-macro", "serde", "snark_wrapper", "zk_evm 1.4.0", - "zkevm_circuits", + "zkevm_circuits 1.4.0", +] + +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#d4e9215d4fe8f4d311e1c01a9b561e4d04cb426b" +dependencies = [ + "crossbeam 0.8.4", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.1", + "zkevm_circuits 1.4.1", ] [[package]] @@ -1340,9 +1318,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", @@ -1366,9 +1344,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.10" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -1376,9 +1354,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.9" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", @@ -1393,9 +1371,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -1404,15 +1382,6 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "codegen" version = "0.1.0" @@ -1447,8 +1416,8 @@ dependencies = [ "bs58", "coins-core", "digest 0.10.7", - "hmac 0.12.1", - "k256 0.13.2", + "hmac", + "k256 0.13.3", "serde", "sha2 0.10.8", "thiserror", @@ -1462,7 +1431,7 @@ checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ "bitvec 1.0.1", "coins-bip32", - "hmac 0.12.1", + "hmac", "once_cell", "pbkdf2 0.12.2", "rand 0.8.5", @@ -1476,11 +1445,11 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "bech32", "bs58", "digest 0.10.7", - "generic-array 0.14.7", + "generic-array", "hex", "ripemd", "serde", @@ -1498,23 +1467,26 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", "windows-sys 0.48.0", ] [[package]] -name = "combine" -version = "4.6.6" +name = "compile-fmt" +version = "0.1.0" +source = "git+https://github.com/slowli/compile-fmt.git?rev=c6a41c846c9a6f70cdba4b44c9f3922242ffcf12#c6a41c846c9a6f70cdba4b44c9f3922242ffcf12" + +[[package]] +name = "concurrent-queue" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" dependencies = [ - "bytes 1.5.0", - "memchr", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1532,9 +1504,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const_format" @@ -1551,8 +1523,8 @@ version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-xid 0.2.4", ] @@ -1590,9 +1562,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1600,33 +1572,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" dependencies = [ "crc-catalog", ] [[package]] name = "crc-catalog" -version = "1.1.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crc32fast" @@ -1653,16 +1625,15 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-channel 0.5.8", - "crossbeam-deque 0.8.3", - "crossbeam-epoch 0.9.15", - "crossbeam-queue 0.3.8", - "crossbeam-utils 0.8.16", + "crossbeam-channel 0.5.11", + "crossbeam-deque 0.8.5", + "crossbeam-epoch 0.9.18", + "crossbeam-queue 0.3.11", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1677,12 +1648,11 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.8" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1698,13 +1668,12 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.15", - "crossbeam-utils 0.8.16", + "crossbeam-epoch 0.9.18", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1713,26 +1682,22 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 0.1.10", "crossbeam-utils 0.7.2", "lazy_static", "maybe-uninit", - "memoffset 0.5.6", + "memoffset", "scopeguard", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg 1.1.0", - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", - "memoffset 0.9.0", - "scopeguard", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1748,12 +1713,11 @@ dependencies = [ [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", ] [[package]] @@ -1762,19 +1726,16 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.1.0", + "autocfg", "cfg-if 0.1.10", "lazy_static", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crunchy" @@ -1788,7 +1749,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "subtle", "zeroize", @@ -1800,7 +1761,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "subtle", "zeroize", @@ -1812,7 +1773,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "rand_core 0.6.4", "typenum", ] @@ -1823,28 +1784,18 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.7", - "subtle", -] - -[[package]] -name = "crypto-mac" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a" -dependencies = [ - "generic-array 0.14.7", + "generic-array", "subtle", ] [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#1588de7669b016df3f81f7139a1a4b131840e48b" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -1854,37 +1805,58 @@ version = "0.1.0" source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "syn 1.0.109", ] [[package]] name = "ctr" -version = "0.6.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.2.5", + "cipher", ] [[package]] -name = "ctr" -version = "0.9.2" +name = "ctrlc" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b" dependencies = [ - "cipher 0.4.4", + "nix", + "windows-sys 0.52.0", ] [[package]] -name = "ctrlc" -version = "3.4.1" +name = "curl" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e95fbd621905b854affdc67943b043a0fbb6ed7385fd5a25650d19a8a6cfdf" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" dependencies = [ - "nix", + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.4.10", + "winapi", +] + +[[package]] +name = "curl-sys" +version = "0.4.71+curl-8.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7b12a7ab780395666cb576203dc3ed6e01513754939a600b85196ccf5356bc5" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", "windows-sys 0.48.0", ] @@ -1911,9 +1883,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -1934,8 +1906,8 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "strsim 0.10.0", "syn 1.0.109", ] @@ -1947,7 +1919,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ "darling_core", - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -1977,7 +1949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" dependencies = [ "serde", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -2003,9 +1975,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", "serde", @@ -2017,8 +1989,8 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -2029,8 +2001,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case 0.4.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustc_version", "syn 1.0.109", ] @@ -2041,22 +2013,13 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -2071,22 +2034,13 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - [[package]] name = "dirs" version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys", ] [[package]] @@ -2099,17 +2053,6 @@ dependencies = [ "dirs-sys-next", ] -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi 0.3.9", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -2130,14 +2073,14 @@ checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", "redox_users", - "winapi 0.3.9", + "winapi", ] [[package]] -name = "dotenv" -version = "0.15.0" +name = "dotenvy" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dtoa" @@ -2222,7 +2165,7 @@ dependencies = [ "der 0.6.1", "digest 0.10.7", "ff 0.12.1", - "generic-array 0.14.7", + "generic-array", "group 0.12.1", "pkcs8 0.9.0", "rand_core 0.6.4", @@ -2241,7 +2184,7 @@ dependencies = [ "crypto-bigint 0.5.5", "digest 0.10.7", "ff 0.13.0", - "generic-array 0.14.7", + "generic-array", "group 0.13.0", "pkcs8 0.10.2", "rand_core 0.6.4", @@ -2252,9 +2195,9 @@ dependencies = [ [[package]] name = "elsa" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714f766f3556b44e7e4776ad133fcc3445a489517c25c704ace411bb14790194" +checksum = "d98e71ae4df57d214182a2e5cb90230c0192c6ddfcaa05c36453d46a54713e10" dependencies = [ "stable_deref_trait", ] @@ -2283,10 +2226,10 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "hex", - "k256 0.13.2", + "k256 0.13.3", "log", "rand 0.8.5", "rlp", @@ -2295,6 +2238,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", +] + [[package]] name = "env_logger" version = "0.9.3" @@ -2310,9 +2263,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -2321,6 +2274,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + [[package]] name = "envy" version = "0.4.2" @@ -2341,17 +2307,17 @@ name = "era_test_node" version = "0.1.0-alpha.14" dependencies = [ "anyhow", - "bigdecimal", + "bigdecimal 0.2.2", "chrono", - "clap 4.4.10", + "clap 4.4.18", "colored", "ethabi 16.0.0", "ethers", "eyre", - "futures 0.3.29", + "futures 0.3.30", "hex", "httptest", - "indexmap 2.1.0", + "indexmap 2.2.2", "itertools 0.10.5", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-core-client", @@ -2401,20 +2367,31 @@ dependencies = [ "version_check", ] +[[package]] +name = "etcetera" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" +dependencies = [ + "cfg-if 1.0.0", + "home", + "windows-sys 0.48.0", +] + [[package]] name = "eth-keystore" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ - "aes 0.8.3", - "ctr 0.9.2", + "aes", + "ctr", "digest 0.10.7", "hex", - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", "rand 0.8.5", - "scrypt 0.10.0", + "scrypt", "serde", "serde_json", "sha2 0.10.8", @@ -2515,9 +2492,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5344eea9b20effb5efeaad29418215c4d27017639fd1f908260f59cbbd226e" +checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -2531,9 +2508,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c405f24ea3a517899ba7985385c43dc4a7eb1209af3b1e0a1a32d7dcc7f8d09" +checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" dependencies = [ "ethers-core", "once_cell", @@ -2543,9 +2520,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0111ead599d17a7bff6985fd5756f39ca7033edc79a31b23026a8d5d64fa95cd" +checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -2562,9 +2539,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51258120c6b47ea9d9bec0d90f9e8af71c977fbefbef8213c91bfed385fe45eb" +checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" dependencies = [ "Inflector", "const-hex", @@ -2573,49 +2550,49 @@ dependencies = [ "ethers-etherscan", "eyre", "prettyplease", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex", "reqwest", "serde", "serde_json", - "syn 2.0.39", - "toml 0.8.8", + "syn 2.0.48", + "toml 0.8.2", "walkdir", ] [[package]] name = "ethers-contract-derive" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936e7a0f1197cee2b62dc89f63eff3201dbf87c283ff7e18d86d38f83b845483" +checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" dependencies = [ "Inflector", "const-hex", "ethers-contract-abigen", "ethers-core", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde_json", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] name = "ethers-core" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f03e0bdc216eeb9e355b90cf610ef6c5bb8aca631f97b5ae9980ce34ea7878d" +checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" dependencies = [ "arrayvec 0.7.4", - "bytes 1.5.0", + "bytes", "cargo_metadata 0.18.1", "chrono", "const-hex", "elliptic-curve 0.13.8", "ethabi 18.0.0", - "generic-array 0.14.7", - "k256 0.13.2", - "num_enum 0.7.1", + "generic-array", + "k256 0.13.3", + "num_enum 0.7.2", "once_cell", "open-fastrlp", "rand 0.8.5", @@ -2623,7 +2600,7 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "syn 2.0.39", + "syn 2.0.48", "tempfile", "thiserror", "tiny-keccak 2.0.2", @@ -2632,9 +2609,9 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abbac2c890bdbe0f1b8e549a53b00e2c4c1de86bb077c1094d1f38cdf9381a56" +checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" dependencies = [ "chrono", "ethers-core", @@ -2648,9 +2625,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681ece6eb1d10f7cf4f873059a77c04ff1de4f35c63dd7bccde8f438374fcb93" +checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" dependencies = [ "async-trait", "auto_impl", @@ -2675,14 +2652,14 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25d6c0c9455d93d4990c06e049abf9b30daf148cf461ee939c11d88907c60816" +checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" dependencies = [ "async-trait", "auto_impl", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "const-hex", "enr", "ethers-core", @@ -2712,9 +2689,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb1b714e227bbd2d8c53528adb580b203009728b17d0d0e4119353aa9bc5532" +checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" dependencies = [ "async-trait", "coins-bip32", @@ -2731,13 +2708,13 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.11" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64f710586d147864cff66540a6d64518b9ff37d73ef827fee430538265b595f" +checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" dependencies = [ "cfg-if 1.0.0", "const-hex", - "dirs 5.0.1", + "dirs", "dunce", "ethers-core", "glob", @@ -2768,28 +2745,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "eyre" -version = "0.6.9" +name = "event-listener" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f656be11ddf91bd709454d15d5bd896fbaf4cc3314e69349e4d1569f5b46cd" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ - "indenter", - "once_cell", + "concurrent-queue", + "parking", + "pin-project-lite", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "event-listener-strategy" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite", +] [[package]] -name = "fastrand" -version = "1.9.0" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ - "instant", + "indenter", + "once_cell", ] [[package]] @@ -2840,17 +2823,17 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "syn 1.0.109", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382" [[package]] name = "findshlibs" @@ -2861,7 +2844,7 @@ dependencies = [ "cc", "lazy_static", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -2916,6 +2899,17 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -2979,7 +2973,7 @@ dependencies = [ [[package]] name = "franklin-crypto" version = "0.0.5" -source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#a9e29acd73245bd3b670b62b4d481ece06d43803" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#2546c63b91b59bdb0ad342d26f03fb57477550b2" dependencies = [ "arr_macro", "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", @@ -3015,7 +3009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3024,22 +3018,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags 1.3.2", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "funty" version = "1.1.0" @@ -3060,9 +3038,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -3075,9 +3053,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -3085,15 +3063,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -3103,20 +3081,20 @@ dependencies = [ [[package]] name = "futures-intrusive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.11.2", + "parking_lot 0.12.1", ] [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-locks" @@ -3130,26 +3108,26 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" @@ -3163,9 +3141,9 @@ dependencies = [ [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures 0.1.31", "futures-channel", @@ -3189,15 +3167,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -3222,9 +3191,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if 1.0.0", "libc", @@ -3237,7 +3206,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" dependencies = [ - "opaque-debug 0.3.0", + "opaque-debug", "polyval", ] @@ -3260,17 +3229,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" dependencies = [ "aho-corasick", - "bstr 1.8.0", + "bstr 1.9.0", "log", - "regex-automata 0.4.3", + "regex-automata 0.4.5", "regex-syntax 0.8.2", ] [[package]] name = "gloo-net" -version = "0.3.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66b4e3c7d9ed8d315fd6b97c8b1f74a7c6ecbbc2320e65ae7ed38b7068cc620" +checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173" dependencies = [ "futures-channel", "futures-core", @@ -3301,9 +3270,9 @@ dependencies = [ [[package]] name = "gloo-utils" -version = "0.1.7" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037fcb07216cb3a30f7292bd0176b050b7b9a052ba830ef7d5d65f6dc64ba58e" +checksum = "0b5555354113b18c547c1d3a98fbf7fb32a9ff4f6fa112ce823a21641a0ba3aa" dependencies = [ "js-sys", "serde", @@ -3319,7 +3288,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1087f1fbd2dd3f58c17c7574ddd99cd61cbbbc2c4dc81114b8687209b196cb" dependencies = [ "async-trait", - "base64 0.21.5", + "base64 0.21.7", "google-cloud-metadata", "google-cloud-token", "home", @@ -3353,8 +3322,8 @@ checksum = "ac04b29849ebdeb9fb008988cc1c4d1f0c9d121b4c7f1ddeb8061df124580e93" dependencies = [ "async-stream", "async-trait", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "futures-util", "google-cloud-auth", "google-cloud-metadata", @@ -3365,7 +3334,7 @@ dependencies = [ "pkcs8 0.10.2", "regex", "reqwest", - "ring 0.17.6", + "ring 0.17.7", "serde", "serde_json", "sha2 0.10.8", @@ -3392,7 +3361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19775995ee20209163239355bc3ad2f33f83da35d9ef72dea26e5af753552c87" dependencies = [ "dashmap", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "no-std-compat", "nonzero_ext", @@ -3426,17 +3395,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.22" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ - "bytes 1.5.0", + "bytes", "fnv", "futures-core", "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.2", "slab", "tokio", "tokio-util 0.7.10", @@ -3445,9 +3414,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" dependencies = [ "log", "pest", @@ -3459,26 +3428,20 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ "ahash 0.7.7", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.7", ] [[package]] @@ -3486,6 +3449,10 @@ name = "hashbrown" version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.7", + "allocator-api2", +] [[package]] name = "hashers" @@ -3498,11 +3465,11 @@ dependencies = [ [[package]] name = "hashlink" -version = "0.7.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.14.3", ] [[package]] @@ -3521,8 +3488,8 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "headers-core", "http", "httpdate", @@ -3568,9 +3535,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" [[package]] name = "hex" @@ -3580,21 +3547,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.10.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ - "crypto-mac 0.10.1", - "digest 0.9.0", + "hmac", ] [[package]] @@ -3608,11 +3565,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3623,7 +3580,7 @@ checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" dependencies = [ "libc", "match_cfg", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -3632,18 +3589,18 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ - "bytes 1.5.0", + "bytes", "fnv", "itoa", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.5.0", + "bytes", "http", "pin-project-lite", ] @@ -3673,10 +3630,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8b44a11846bda8c9fe9194f9924db7132c34635c7ce020f180f6c5d46d2308f" dependencies = [ "bstr 0.2.17", - "bytes 1.5.0", - "crossbeam-channel 0.5.8", + "bytes", + "crossbeam-channel 0.5.11", "form_urlencoded", - "futures 0.3.29", + "futures 0.3.30", "http", "hyper", "log", @@ -3696,11 +3653,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-channel", "futures-core", "futures-util", @@ -3711,7 +3668,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.10", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -3728,10 +3685,10 @@ dependencies = [ "http", "hyper", "log", - "rustls", - "rustls-native-certs", + "rustls 0.21.10", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", ] [[package]] @@ -3740,7 +3697,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ - "bytes 1.5.0", + "bytes", "hyper", "native-tls", "tokio", @@ -3749,9 +3706,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3861,8 +3818,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -3878,15 +3835,15 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "autocfg 1.1.0", + "autocfg", "hashbrown 0.12.3", ] [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3898,7 +3855,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] @@ -3910,15 +3867,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.9.0" @@ -3927,9 +3875,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "ipnetwork" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] [[package]] name = "iri-string" @@ -3943,13 +3894,13 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3970,11 +3921,20 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" @@ -3987,9 +3947,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -4000,7 +3960,7 @@ version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ "derive_more", - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-pubsub", "log", @@ -4014,7 +3974,7 @@ version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-executor", "futures-util", "log", @@ -4028,7 +3988,7 @@ name = "jsonrpc-core" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "futures-executor", "futures-util", "log", @@ -4042,7 +4002,7 @@ name = "jsonrpc-core-client" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-client-transports", ] @@ -4052,8 +4012,8 @@ version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ "proc-macro-crate 0.1.5", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -4062,7 +4022,7 @@ name = "jsonrpc-http-server" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "hyper", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "jsonrpc-server-utils", @@ -4077,7 +4037,7 @@ name = "jsonrpc-pubsub" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "lazy_static", "log", @@ -4091,8 +4051,8 @@ name = "jsonrpc-server-utils" version = "18.0.0" source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" dependencies = [ - "bytes 1.5.0", - "futures 0.3.29", + "bytes", + "futures 0.3.30", "globset", "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", "lazy_static", @@ -4103,25 +4063,11 @@ dependencies = [ "unicase", ] -[[package]] -name = "jsonrpc-ws-server" -version = "18.0.0" -source = "git+https://github.com/matter-labs/jsonrpc.git?branch=master#12c53e3e20c09c2fb9966a4ef1b0ea63de172540" -dependencies = [ - "futures 0.3.29", - "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", - "jsonrpc-server-utils", - "log", - "parity-ws", - "parking_lot 0.11.2", - "slab", -] - [[package]] name = "jsonrpsee" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5f3783308bddc49d0218307f66a09330c106fbd792c58bac5c8dc294fdd0f98" +checksum = "9579d0ca9fb30da026bac2f0f7d9576ec93489aeb7cd4971dd5b4617d82c79b2" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4131,14 +4077,15 @@ dependencies = [ "jsonrpsee-types", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abc5630e4fa0096f00ec7b44d520701fda4504170cb85e22dca603ae5d7ad0d7" +checksum = "3f9f9ed46590a8d5681975f126e22531698211b926129a40a2db47cbca429220" dependencies = [ "futures-channel", "futures-util", @@ -4146,21 +4093,23 @@ dependencies = [ "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util 0.7.10", "tracing", - "webpki-roots 0.24.0", + "url", + "webpki-roots 0.26.1", ] [[package]] name = "jsonrpsee-core" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa4c4d5fb801dcc316d81f76422db259809037a86b3194ae538dd026b05ed7" +checksum = "776d009e2f591b78c038e0d053a796f94575d66ca4e77dd84bfc5e81419e436c" dependencies = [ "anyhow", "async-lock", @@ -4168,15 +4117,14 @@ dependencies = [ "beef", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", "parking_lot 0.12.1", + "pin-project", "rand 0.8.5", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", "tokio-stream", @@ -4186,9 +4134,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa7165efcbfbc951d180162ff28fe91b657ed81925e37a35e4a396ce12109f96" +checksum = "78b7de9f3219d95985eb77fd03194d7c1b56c19bce1abfcc9d07462574b15572" dependencies = [ "async-trait", "hyper", @@ -4201,34 +4149,39 @@ dependencies = [ "tokio", "tower", "tracing", + "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21dc12b1d4f16a86e8c522823c4fab219c88c03eb7c924ec0501a64bf12e058b" +checksum = "d94b7505034e2737e688e1153bf81e6f93ad296695c43958d6da2e4321f0a990" dependencies = [ "heck 0.4.1", - "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "jsonrpsee-server" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e79d78cfd5abd8394da10753723093c3ff64391602941c9c4b1d80a3414fd53" +checksum = "5cc7c6d1a2c58f6135810284a390d9f823d0f508db74cd914d8237802de80f98" dependencies = [ "futures-util", + "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util 0.7.10", @@ -4238,23 +4191,22 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00aa7cc87bc42e04e26c8ac3e7186142f7fd2949c763d9b6a7e64a69672d8fb2" +checksum = "3266dfb045c9174b24c77c2dfe0084914bb23a6b2597d70c9dc6018392e1cd1b" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-wasm-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe953c2801356f214d3f4051f786b3d11134512a46763ee8c39a9e3fa2cc1c0" +checksum = "30f36d27503d0efc0355c1630b74ecfb367050847bf7241a0ed75fab6dfa96c0" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -4263,14 +4215,15 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c71b2597ec1c958c6d5bc94bb61b44d74eb28e69dc421731ab0035706f13882" +checksum = "073c077471e89c4b511fa88b3df9a0f0abdf4a0a2e6683dd2ab36893af87bb2d" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] @@ -4279,7 +4232,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "pem", "ring 0.16.20", "serde", @@ -4301,9 +4254,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if 1.0.0", "ecdsa 0.16.9", @@ -4315,23 +4268,13 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "lalrpop" version = "0.20.0" @@ -4371,6 +4314,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lazycell" @@ -4386,18 +4332,18 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" dependencies = [ "cfg-if 1.0.0", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] @@ -4412,7 +4358,7 @@ version = "0.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "libc", "redox_syscall 0.4.1", ] @@ -4431,42 +4377,54 @@ dependencies = [ "libz-sys", ] +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] [[package]] name = "linkme" -version = "0.3.17" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ed2ee9464ff9707af8e9ad834cffa4802f072caad90639c583dd3c62e6e608" +checksum = "8b53ad6a33de58864705954edb5ad5d571a010f9e296865ed43dc72a5621b430" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.17" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba125974b109d512fccbc6c0244e7580143e460895dfd6ea7f8bbb692fd94396" +checksum = "04e542a18c94a9b6fcc7adb090fa3ba6b79ee220a16404f325672729f32a66ff" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "local-channel" @@ -4491,7 +4449,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ - "autocfg 1.1.0", + "autocfg", "scopeguard", ] @@ -4518,10 +4476,10 @@ checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" dependencies = [ "beef", "fnv", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "regex-syntax 0.6.29", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] @@ -4535,9 +4493,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" [[package]] name = "mach" @@ -4550,9 +4508,9 @@ dependencies = [ [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -4602,9 +4560,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -4612,16 +4570,7 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" dependencies = [ - "autocfg 1.1.0", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg 1.1.0", + "autocfg", ] [[package]] @@ -4630,18 +4579,18 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.7", "metrics-macros", "portable-atomic", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a4964177ddfdab1e3a2b37aec7cf320e14169abb0ed73999f558136409178d5" +checksum = "1d4fa7ce7c4862db464a37b0b31d89bca874562f034bd7993895572783d02950" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "hyper", "indexmap 1.9.3", "ipnet", @@ -4655,13 +4604,13 @@ dependencies = [ [[package]] name = "metrics-macros" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" +checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -4670,8 +4619,8 @@ version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4de2ed6e491ed114b40b732e4d1659a9d53992ebd87490c44a6ffe23739d973e" dependencies = [ - "crossbeam-epoch 0.9.15", - "crossbeam-utils 0.8.16", + "crossbeam-epoch 0.9.18", + "crossbeam-utils 0.8.19", "hashbrown 0.13.1", "metrics", "num_cpus", @@ -4697,9 +4646,9 @@ version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -4720,12 +4669,12 @@ dependencies = [ [[package]] name = "mini-moka" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" +checksum = "c325dfab65f261f386debee8b0969da215b3fa0037e74c8a1234db7ba986d803" dependencies = [ - "crossbeam-channel 0.5.8", - "crossbeam-utils 0.8.16", + "crossbeam-channel 0.5.11", + "crossbeam-utils 0.8.19", "dashmap", "skeptic", "smallvec", @@ -4741,37 +4690,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] - -[[package]] -name = "mio" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "log", @@ -4779,30 +4709,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "mio-extras" -version = "2.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" -dependencies = [ - "lazycell", - "log", - "mio 0.6.23", - "slab", -] - -[[package]] -name = "miow" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" -dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", -] - [[package]] name = "multimap" version = "0.8.3" @@ -4812,7 +4718,7 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "multivm" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "hex", @@ -4824,6 +4730,10 @@ dependencies = [ "zk_evm 1.3.1", "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.3.3", + "zkevm_test_harness 1.4.0", + "zkevm_test_harness 1.4.1", "zksync_contracts", "zksync_state", "zksync_system_constants", @@ -4857,7 +4767,7 @@ checksum = "b13b648036a2339d06de780866fbdfda0dde886de7b3af2ddeba8b14f4ee34ac" dependencies = [ "cfg-if 0.1.10", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4872,7 +4782,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if 1.0.0", "libc", ] @@ -4912,7 +4822,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ "overload", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4949,7 +4859,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", "serde", @@ -4961,12 +4871,29 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", "serde", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.3.1" @@ -4984,8 +4911,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", + "serde", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.2.5" @@ -5003,8 +4937,8 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -5014,7 +4948,7 @@ version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-traits", ] @@ -5024,7 +4958,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-integer", "num-traits", ] @@ -5045,7 +4979,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-bigint 0.3.3", "num-integer", "num-traits", @@ -5058,10 +4992,11 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ - "autocfg 1.1.0", + "autocfg", "num-bigint 0.4.4", "num-integer", "num-traits", + "serde", ] [[package]] @@ -5070,7 +5005,7 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ - "autocfg 1.1.0", + "autocfg", "libm", ] @@ -5080,7 +5015,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "libc", ] @@ -5095,11 +5030,11 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ - "num_enum_derive 0.7.1", + "num_enum_derive 0.7.2", ] [[package]] @@ -5109,21 +5044,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "num_enum_derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5137,24 +5072,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "opaque-debug" -version = "0.2.3" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -5170,7 +5099,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec 0.7.4", "auto_impl", - "bytes 1.5.0", + "bytes", "ethereum-types 0.14.1", "open-fastrlp-derive", ] @@ -5181,19 +5110,19 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.5.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "bytes", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "openssl" -version = "0.10.60" +version = "0.10.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if 1.0.0", "foreign-types", "libc", @@ -5208,9 +5137,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5221,18 +5150,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.1.6+3.1.4" +version = "300.2.2+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085" +checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.96" +version = "0.9.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", @@ -5264,7 +5193,7 @@ checksum = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e" dependencies = [ "log", "serde", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5320,30 +5249,6 @@ dependencies = [ "serde", ] -[[package]] -name = "parity-crypto" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b92ea9ddac0d6e1db7c49991e7d397d34a9fd814b4c93cda53788e8eef94e35" -dependencies = [ - "aes 0.6.0", - "aes-ctr", - "block-modes", - "digest 0.9.0", - "ethereum-types 0.12.1", - "hmac 0.10.1", - "lazy_static", - "pbkdf2 0.7.5", - "ripemd160", - "rustc-hex", - "scrypt 0.5.0", - "secp256k1 0.20.3", - "sha2 0.9.9", - "subtle", - "tiny-keccak 2.0.2", - "zeroize", -] - [[package]] name = "parity-scale-codec" version = "2.3.1" @@ -5379,8 +5284,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -5390,29 +5295,17 @@ version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro-crate 2.0.2", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] -name = "parity-ws" -version = "0.11.1" +name = "parking" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5983d3929ad50f12c3eb9a6743f19d691866ecd44da74c0a3308c3f8a56df0c6" -dependencies = [ - "byteorder", - "bytes 0.4.12", - "httparse", - "log", - "mio 0.6.23", - "mio-extras", - "rand 0.7.3", - "sha-1 0.8.2", - "slab", - "url", -] +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -5446,7 +5339,7 @@ dependencies = [ "libc", "redox_syscall 0.2.16", "smallvec", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -5462,16 +5355,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "password-hash" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54986aa4bfc9b98c6a5f40184223658d187159d7b3c6af33f2b2aa25ae1db0fa" -dependencies = [ - "base64ct", - "rand_core 0.6.4", -] - [[package]] name = "password-hash" version = "0.4.2" @@ -5495,28 +5378,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" -[[package]] -name = "pbkdf2" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b8c0d71734018084da0c0354193a5edfb81b20d2d57a92c5b154aefc554a4a" -dependencies = [ - "crypto-mac 0.10.1", -] - -[[package]] -name = "pbkdf2" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf916dd32dd26297907890d99dc2740e33f6bd9073965af4ccff2967962f5508" -dependencies = [ - "base64ct", - "crypto-mac 0.10.1", - "hmac 0.10.1", - "password-hash 0.1.4", - "sha2 0.9.9", -] - [[package]] name = "pbkdf2" version = "0.11.0" @@ -5524,8 +5385,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", - "password-hash 0.4.2", + "hmac", + "password-hash", "sha2 0.10.8", ] @@ -5536,7 +5397,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", - "hmac 0.12.1", + "hmac", ] [[package]] @@ -5571,9 +5432,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" dependencies = [ "memchr", "thiserror", @@ -5582,9 +5443,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" dependencies = [ "pest", "pest_generator", @@ -5592,22 +5453,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "pest_meta" -version = "2.7.5" +version = "2.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" dependencies = [ "once_cell", "pest", @@ -5621,7 +5482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.2.2", ] [[package]] @@ -5630,7 +5491,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" dependencies = [ - "futures 0.3.29", + "futures 0.3.30", "rustc_version", ] @@ -5662,9 +5523,9 @@ checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" dependencies = [ "phf_generator", "phf_shared 0.11.2", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5687,22 +5548,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -5717,6 +5578,17 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.8", + "pkcs8 0.10.2", + "spki 0.7.3", +] + [[package]] name = "pkcs8" version = "0.9.0" @@ -5739,15 +5611,15 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "platforms" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" [[package]] name = "poly1305" @@ -5756,7 +5628,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] @@ -5768,15 +5640,15 @@ checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" dependencies = [ "cfg-if 1.0.0", "cpufeatures", - "opaque-debug 0.3.0", + "opaque-debug", "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] name = "powerfmt" @@ -5798,12 +5670,12 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" [[package]] name = "prettyplease" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ - "proc-macro2 1.0.70", - "syn 2.0.39", + "proc-macro2 1.0.78", + "syn 2.0.48", ] [[package]] @@ -5854,11 +5726,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" dependencies = [ - "toml_edit 0.20.7", + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -5868,8 +5741,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", "version_check", ] @@ -5880,8 +5753,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "version_check", ] @@ -5902,9 +5775,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -5927,15 +5800,15 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "prometheus_exporter" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "metrics", @@ -5951,12 +5824,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "lazy_static", "num-traits", "rand 0.8.5", "rand_chacha 0.3.1", - "rand_xorshift 0.3.0", + "rand_xorshift", "regex-syntax 0.8.2", "unarray", ] @@ -5967,7 +5840,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" dependencies = [ - "bytes 1.5.0", + "bytes", "prost-derive", ] @@ -5977,7 +5850,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" dependencies = [ - "bytes 1.5.0", + "bytes", "heck 0.4.1", "itertools 0.11.0", "log", @@ -5988,7 +5861,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.39", + "syn 2.0.48", "tempfile", "which", ] @@ -6001,9 +5874,9 @@ checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" dependencies = [ "anyhow", "itertools 0.11.0", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -6012,7 +5885,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "logos", "miette", "once_cell", @@ -6037,7 +5910,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00bb76c5f6221de491fe2c8f39b106330bbd9762c6511119c07940e10eb9ff11" dependencies = [ - "bytes 1.5.0", + "bytes", "miette", "prost", "prost-reflect", @@ -6058,13 +5931,33 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", +] + [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "memchr", "unicase", ] @@ -6075,14 +5968,14 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" dependencies = [ - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "libc", "mach", "once_cell", "raw-cpuid", "wasi 0.10.2+wasi-snapshot-preview1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6091,14 +5984,14 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" dependencies = [ - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "libc", "mach2", "once_cell", "raw-cpuid", "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6121,11 +6014,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2 1.0.70", + "proc-macro2 1.0.78", ] [[package]] @@ -6150,26 +6043,7 @@ dependencies = [ "libc", "rand_core 0.3.1", "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.8", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg", - "rand_xorshift 0.1.1", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -6182,7 +6056,7 @@ dependencies = [ "libc", "rand_chacha 0.2.2", "rand_core 0.5.1", - "rand_hc 0.2.0", + "rand_hc", ] [[package]] @@ -6196,16 +6070,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.3.1", -] - [[package]] name = "rand_chacha" version = "0.2.2" @@ -6256,16 +6120,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", -] - -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", + "getrandom 0.2.12", ] [[package]] @@ -6277,59 +6132,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.8", - "rand_core 0.4.2", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "rand_xorshift" version = "0.3.0" @@ -6359,9 +6161,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" dependencies = [ "either", "rayon-core", @@ -6369,12 +6171,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-deque 0.8.3", - "crossbeam-utils 0.8.16", + "crossbeam-deque 0.8.5", + "crossbeam-utils 0.8.19", ] [[package]] @@ -6410,20 +6212,20 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "libredox", "thiserror", ] [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", + "regex-automata 0.4.5", "regex-syntax 0.8.2", ] @@ -6438,9 +6240,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -6471,17 +6273,26 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" dependencies = [ - "winapi 0.3.9", + "winapi", +] + +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", ] [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" dependencies = [ - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "encoding_rs", "futures-core", "futures-util", @@ -6500,15 +6311,16 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", - "rustls-pemfile", + "rustls 0.21.10", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-util 0.7.10", "tower-service", "url", @@ -6516,14 +6328,14 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.25.3", + "webpki-roots 0.25.4", "winreg", ] [[package]] name = "rescue_poseidon" version = "0.4.1" -source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#c4a788471710bdb7aa0f59e8756b45ef93cdd2b2" +source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#2e5e8afb152adc326fcf776a71ad3735fa7f3186" dependencies = [ "addchain", "arrayvec 0.7.4", @@ -6569,7 +6381,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ "crypto-bigint 0.4.9", - "hmac 0.12.1", + "hmac", "zeroize", ] @@ -6579,7 +6391,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "hmac 0.12.1", + "hmac", "subtle", ] @@ -6595,17 +6407,17 @@ dependencies = [ "spin 0.5.2", "untrusted 0.7.1", "web-sys", - "winapi 0.3.9", + "winapi", ] [[package]] name = "ring" -version = "0.17.6" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "684d5e6e18f669ccebf64a92236bb7db9a34f07be010e3627368182027180866" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", - "getrandom 0.2.11", + "getrandom 0.2.12", "libc", "spin 0.9.8", "untrusted 0.9.0", @@ -6622,14 +6434,32 @@ dependencies = [ ] [[package]] -name = "ripemd160" -version = "0.9.1" +name = "rkyv" +version = "0.7.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "opaque-debug 0.3.0", + "bitvec 1.0.1", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid 1.7.0", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" +dependencies = [ + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 1.0.109", ] [[package]] @@ -6638,7 +6468,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.5.0", + "bytes", "rlp-derive", "rustc-hex", ] @@ -6649,8 +6479,8 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -6665,18 +6495,60 @@ dependencies = [ ] [[package]] -name = "rustc-demangle" -version = "0.1.23" +name = "route-recognizer" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" [[package]] -name = "rustc-hash" -version = "1.1.0" +name = "rsa" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rust_decimal" +version = "1.34.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "755392e1a2f77afd95580d3f0d0e94ac83eeeb7167552c9b5bca549e61a94d83" +dependencies = [ + "arrayvec 0.7.4", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] name = "rustc-hex" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -6693,29 +6565,43 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.25" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.9" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.6", - "rustls-webpki", + "ring 0.17.7", + "rustls-webpki 0.101.7", "sct", ] +[[package]] +name = "rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +dependencies = [ + "log", + "ring 0.17.7", + "rustls-pki-types", + "rustls-webpki 0.102.2", + "subtle", + "zeroize", +] + [[package]] name = "rustls-native-certs" version = "0.6.3" @@ -6723,7 +6609,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.0.0", + "rustls-pki-types", "schannel", "security-framework", ] @@ -6734,16 +6633,43 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" +dependencies = [ + "base64 0.21.7", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" + [[package]] name = "rustls-webpki" version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +dependencies = [ + "ring 0.17.7", + "rustls-pki-types", "untrusted 0.9.0", ] @@ -6755,18 +6681,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "salsa20" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "399f290ffc409596022fce5ea5d4138184be4784f2b28c62c59f0d8389059a15" -dependencies = [ - "cipher 0.2.5", -] +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -6774,7 +6691,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -6805,18 +6722,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" dependencies = [ "proc-macro-crate 1.3.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6825,31 +6742,15 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da492dab03f925d977776a0b7233d7b934d6dc2b94faead48928e2e9bacedb9" -dependencies = [ - "base64 0.13.1", - "hmac 0.10.1", - "pbkdf2 0.6.0", - "rand 0.7.3", - "rand_core 0.5.1", - "salsa20 0.7.2", - "sha2 0.9.9", - "subtle", -] - [[package]] name = "scrypt" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" dependencies = [ - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", - "salsa20 0.10.2", + "salsa20", "sha2 0.10.8", ] @@ -6859,10 +6760,16 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.6", + "ring 0.17.7", "untrusted 0.9.0", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" @@ -6871,7 +6778,7 @@ checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ "base16ct 0.1.1", "der 0.6.1", - "generic-array 0.14.7", + "generic-array", "pkcs8 0.9.0", "subtle", "zeroize", @@ -6885,38 +6792,19 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct 0.2.0", "der 0.7.8", - "generic-array 0.14.7", + "generic-array", "pkcs8 0.10.2", "subtle", "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.20.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d03ceae636d0fed5bae6a7f4f664354c5f4fcedf6eef053fef17e49f837d0a" -dependencies = [ - "rand 0.6.5", - "secp256k1-sys 0.4.2", -] - [[package]] name = "secp256k1" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ - "secp256k1-sys 0.8.1", -] - -[[package]] -name = "secp256k1-sys" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" -dependencies = [ - "cc", + "secp256k1-sys", ] [[package]] @@ -6953,9 +6841,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" dependencies = [ "serde", ] @@ -7077,7 +6965,7 @@ dependencies = [ "thiserror", "time", "url", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -7088,9 +6976,9 @@ checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] @@ -7107,20 +6995,20 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -7129,9 +7017,9 @@ dependencies = [ [[package]] name = "serde_path_to_error" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4beec8bce849d58d06238cb50db2e1c417cfeafa4c63f692b15c82b7c80f8335" +checksum = "ebd154a240de39fdebcf5775d2675c204d7c13cf39a4c697be6493c8e734337c" dependencies = [ "itoa", "serde", @@ -7139,9 +7027,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -7176,23 +7064,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha-1" version = "0.9.8" @@ -7203,18 +7079,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", + "opaque-debug", ] [[package]] @@ -7238,7 +7103,7 @@ dependencies = [ "cfg-if 1.0.0", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -7271,7 +7136,7 @@ dependencies = [ "block-buffer 0.9.0", "digest 0.9.0", "keccak", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -7304,9 +7169,9 @@ dependencies = [ [[package]] name = "shlex" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" @@ -7337,6 +7202,12 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "simple_asn1" version = "0.6.2" @@ -7382,9 +7253,9 @@ dependencies = [ [[package]] name = "sketches-ddsketch" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a406c1882ed7f29cd5e248c9848a80e7cb6ae0fea82346d2746f2f941c07e1" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" [[package]] name = "slab" @@ -7392,14 +7263,14 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "autocfg 1.1.0", + "autocfg", ] [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" dependencies = [ "serde", ] @@ -7416,9 +7287,9 @@ dependencies = [ [[package]] name = "snow" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ "aes-gcm", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -7437,7 +7308,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", - "winapi 0.3.9", + "winapi", ] [[package]] @@ -7457,13 +7328,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ "base64 0.13.1", - "bytes 1.5.0", - "futures 0.3.29", + "bytes", + "futures 0.3.30", "http", "httparse", "log", "rand 0.8.5", - "sha-1 0.9.8", + "sha-1", ] [[package]] @@ -7491,6 +7362,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -7520,110 +7394,224 @@ checksum = "c85070f382340e8b23a75808e83573ddf65f9ad9143df9573ca37c1ed2ee956a" [[package]] name = "sqlformat" -version = "0.1.8" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" dependencies = [ - "itertools 0.10.5", + "itertools 0.12.1", "nom", "unicode_categories", ] [[package]] name = "sqlx" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" +checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" dependencies = [ "sqlx-core", "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] name = "sqlx-core" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" +checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.7.7", + "ahash 0.8.7", "atoi", - "base64 0.13.1", - "bigdecimal", - "bitflags 1.3.2", + "bigdecimal 0.3.1", "byteorder", - "bytes 1.5.0", + "bytes", "chrono", "crc", - "crossbeam-queue 0.3.8", - "dirs 4.0.0", + "crossbeam-queue 0.3.11", + "dotenvy", "either", - "event-listener", + "event-listener 2.5.3", "futures-channel", "futures-core", "futures-intrusive", + "futures-io", "futures-util", "hashlink", "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", + "indexmap 2.2.2", "ipnetwork", - "itoa", - "libc", "log", - "md-5", "memchr", - "num-bigint 0.3.3", + "native-tls", "once_cell", "paste", "percent-encoding", - "rand 0.8.5", + "rust_decimal", "serde", "serde_json", - "sha-1 0.10.1", "sha2 0.10.8", "smallvec", "sqlformat", - "sqlx-rt", - "stringprep", "thiserror", + "tokio", "tokio-stream", + "tracing", "url", - "whoami", ] [[package]] name = "sqlx-macros" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" +checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" dependencies = [ - "dotenv", + "proc-macro2 1.0.78", + "quote 1.0.35", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" +dependencies = [ + "atomic-write-file", + "dotenvy", "either", "heck 0.4.1", "hex", "once_cell", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "serde", "serde_json", "sha2 0.10.8", "sqlx-core", - "sqlx-rt", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn 1.0.109", + "tempfile", + "tokio", "url", ] [[package]] -name = "sqlx-rt" -version = "0.5.13" +name = "sqlx-mysql" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4" dependencies = [ - "native-tls", + "atoi", + "base64 0.21.7", + "bigdecimal 0.3.1", + "bitflags 2.4.2", + "byteorder", + "bytes", + "chrono", + "crc", + "digest 0.10.7", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac", + "itoa", + "log", + "md-5", + "memchr", "once_cell", - "tokio", - "tokio-native-tls", + "percent-encoding", + "rand 0.8.5", + "rsa", + "rust_decimal", + "serde", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +dependencies = [ + "atoi", + "base64 0.21.7", + "bigdecimal 0.3.1", + "bitflags 2.4.2", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac", + "home", + "ipnetwork", + "itoa", + "log", + "md-5", + "memchr", + "num-bigint 0.4.4", + "once_cell", + "rand 0.8.5", + "rust_decimal", + "serde", + "serde_json", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", ] [[package]] @@ -7693,8 +7681,8 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "syn 1.0.109", ] @@ -7723,8 +7711,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", "syn 1.0.109", ] @@ -7736,25 +7724,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "rustversion", - "syn 2.0.39", + "syn 2.0.48", ] [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "svm-rs" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20689c7d03b6461b502d0b95d6c24874c7d24dea2688af80486a130a06af3b07" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" dependencies = [ - "dirs 5.0.1", + "dirs", "fs2", "hex", "once_cell", @@ -7785,22 +7773,34 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.39" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", + "proc-macro2 1.0.78", + "quote 1.0.35", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", +] + [[package]] name = "sync_vm" version = "1.3.3" @@ -7875,15 +7875,14 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if 1.0.0", - "fastrand 2.0.1", - "redox_syscall 0.4.1", + "fastrand", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7894,27 +7893,37 @@ checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" dependencies = [ "dirs-next", "rustversion", - "winapi 0.3.9", + "winapi", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] name = "test-log" -version = "0.2.13" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +dependencies = [ + "env_logger 0.10.2", + "test-log-macros", +] + +[[package]] +name = "test-log-macros" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66edd6b6cd810743c0c71e1d085e92b01ce6a72782032e3f794c8284fe4bcdd" +checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -7928,22 +7937,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -7967,13 +7976,14 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", "libc", + "num-conv", "num_threads", "powerfmt", "serde", @@ -7989,10 +7999,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -8031,14 +8042,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", - "bytes 1.5.0", + "bytes", "libc", - "mio 0.8.9", + "mio", "num_cpus", "parking_lot 0.12.1", "pin-project-lite", @@ -8054,9 +8065,9 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -8075,7 +8086,18 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.10", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.2", + "rustls-pki-types", "tokio", ] @@ -8098,11 +8120,11 @@ checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.21.10", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tungstenite", - "webpki-roots 0.25.3", + "webpki-roots 0.25.4", ] [[package]] @@ -8111,7 +8133,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-sink", "log", @@ -8125,7 +8147,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "bytes 1.5.0", + "bytes", "futures-core", "futures-io", "futures-sink", @@ -8145,65 +8167,43 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.8" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.21.0", + "toml_edit 0.20.2", ] [[package]] name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" -dependencies = [ - "combine", - "indexmap 1.9.3", - "itertools 0.10.5", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" dependencies = [ - "indexmap 2.1.0", - "toml_datetime", - "winnow", + "serde", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.2", "toml_datetime", "winnow", ] [[package]] name = "toml_edit" -version = "0.21.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", @@ -8238,9 +8238,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ "async-compression", - "base64 0.21.5", - "bitflags 2.4.1", - "bytes 1.5.0", + "base64 0.21.7", + "bitflags 2.4.2", + "bytes", "futures-core", "futures-util", "http", @@ -8258,7 +8258,7 @@ dependencies = [ "tower-layer", "tower-service", "tracing", - "uuid 1.6.1", + "uuid 1.7.0", ] [[package]] @@ -8291,9 +8291,9 @@ version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -8367,9 +8367,9 @@ checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" @@ -8378,13 +8378,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", - "bytes 1.5.0", + "bytes", "data-encoding", "http", "httparse", "log", "rand 0.8.5", - "rustls", + "rustls 0.21.10", "sha1", "thiserror", "url", @@ -8441,9 +8441,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -8506,7 +8506,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" dependencies = [ - "quote 1.0.33", + "quote 1.0.35", "syn 1.0.109", ] @@ -8528,7 +8528,7 @@ version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", "log", "native-tls", "once_cell", @@ -8571,17 +8571,17 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "serde", ] [[package]] name = "uuid" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.12", "serde", ] @@ -8612,8 +8612,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vise" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ + "compile-fmt", "elsa", "linkme", "once_cell", @@ -8624,7 +8625,7 @@ dependencies = [ [[package]] name = "vise-exporter" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ "hyper", "metrics-exporter-prometheus", @@ -8637,17 +8638,17 @@ dependencies = [ [[package]] name = "vise-macros" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=dd05139b76ab0843443ab3ff730174942c825dae#dd05139b76ab0843443ab3ff730174942c825dae" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] name = "vlog" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "chrono", "sentry", @@ -8656,6 +8657,22 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "vm_utils" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ + "anyhow", + "multivm", + "tokio", + "tracing", + "zksync_contracts", + "zksync_dal", + "zksync_state", + "zksync_types", + "zksync_utils", +] + [[package]] name = "walkdir" version = "2.4.0" @@ -8695,9 +8712,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -8705,24 +8722,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -8732,38 +8749,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ - "quote 1.0.33", + "quote 1.0.35", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "wasm-streams" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" dependencies = [ "futures-util", "js-sys", @@ -8774,9 +8791,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", @@ -8789,12 +8806,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" dependencies = [ "arrayvec 0.7.4", - "base64 0.21.5", - "bytes 1.5.0", + "base64 0.21.7", + "bytes", "derive_more", "ethabi 18.0.0", "ethereum-types 0.14.1", - "futures 0.3.29", + "futures 0.3.30", "futures-timer", "headers", "hex", @@ -8806,7 +8823,7 @@ dependencies = [ "pin-project", "reqwest", "rlp", - "secp256k1 0.27.0", + "secp256k1", "serde", "serde_json", "tiny-keccak 2.0.2", @@ -8815,18 +8832,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.24.0" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" -dependencies = [ - "rustls-webpki", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.25.3" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" @@ -8845,16 +8862,6 @@ name = "whoami" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" [[package]] name = "winapi" @@ -8866,12 +8873,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -8884,7 +8885,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -8895,11 +8896,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -9036,9 +9037,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.19" +version = "0.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" dependencies = [ "memchr", ] @@ -9053,16 +9054,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "ws2_32-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -9070,7 +9061,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" dependencies = [ "async_io_stream", - "futures 0.3.29", + "futures 0.3.30", "js-sys", "log", "pharos", @@ -9105,22 +9096,22 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zerocopy" -version = "0.7.27" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43de342578a3a14a9314a2dab1942cbfcbe5686e1f91acdc513058063eafe18" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.27" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1012d89e3acb79fad7a799ce96866cfb8098b74638465ea1b1533d35900ca90" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -9138,9 +9129,9 @@ version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.70", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.78", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] @@ -9149,14 +9140,14 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" dependencies = [ - "aes 0.8.3", + "aes", "byteorder", "bzip2", "constant_time_eq", "crc32fast", - "crossbeam-utils 0.8.16", + "crossbeam-utils 0.8.19", "flate2", - "hmac 0.12.1", + "hmac", "pbkdf2 0.11.0", "sha1", "time", @@ -9191,7 +9182,7 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] @@ -9206,7 +9197,7 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] @@ -9221,21 +9212,49 @@ dependencies = [ "serde", "serde_json", "static_assertions", - "zk_evm_abstractions", + "zk_evm_abstractions 0.1.0", "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zk_evm" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.1#6250dbf64b2d14ced87a127735da559f27a432d5" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 1.4.1", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zk_evm_abstractions" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#15a2af404902d5f10352e3d1fac693cc395fcff9" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#32dd320953841aa78579d9da08abbc70bcaed175" dependencies = [ "anyhow", + "num_enum 0.6.1", "serde", "static_assertions", "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zk_evm_abstractions" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git?branch=v1.4.1#0aac08c3b097ee8147e748475117ac46bddcdcef" +dependencies = [ + "anyhow", + "num_enum 0.6.1", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm-assembly" version = "1.3.2" @@ -9255,6 +9274,25 @@ dependencies = [ "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1#50282016d01bd2fd147021dd558209778db2268b" +dependencies = [ + "env_logger 0.9.3", + "hex", + "lazy_static", + "log", + "nom", + "num-bigint 0.4.4", + "num-traits", + "sha3 0.10.8", + "smallvec", + "structopt", + "thiserror", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm_circuits" version = "1.4.0" @@ -9276,6 +9314,27 @@ dependencies = [ "zkevm_opcode_defs 1.3.2", ] +[[package]] +name = "zkevm_circuits" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=v1.4.1#873fe0fcf0bb8df6be0ae1938ce8469d6bf63ebd" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.4.1", +] + [[package]] name = "zkevm_opcode_defs" version = "1.3.1" @@ -9292,7 +9351,7 @@ name = "zkevm_opcode_defs" version = "1.3.2" source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#dffacadeccdfdbff4bc124d44c595c4a6eae5013" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", "ethereum-types 0.14.1", "k256 0.11.6", @@ -9301,6 +9360,20 @@ dependencies = [ "sha3 0.10.6", ] +[[package]] +name = "zkevm_opcode_defs" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.4.1#ba8228ff0582d21f64d6a319d50d0aec48e9e7b6" +dependencies = [ + "bitflags 2.4.2", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.14.1", + "k256 0.13.3", + "lazy_static", + "sha2 0.10.8", + "sha3 0.10.8", +] + [[package]] name = "zkevm_test_harness" version = "1.3.3" @@ -9309,9 +9382,9 @@ dependencies = [ "bincode", "circuit_testing", "codegen 0.2.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", "derivative", - "env_logger 0.10.1", + "env_logger 0.11.1", "hex", "num-bigint 0.4.4", "num-integer", @@ -9325,30 +9398,59 @@ dependencies = [ "test-log", "tracing", "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", - "zkevm-assembly", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", ] [[package]] name = "zkevm_test_harness" version = "1.4.0" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#d2e3670e0c5115b7cc7cc24e6d3dbdd17a214aad" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#de2ecad62ac8c12777e576dca20311ad8ec770d1" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "codegen 0.2.0", + "crossbeam 0.8.4", + "derivative", + "env_logger 0.11.1", + "hex", + "rand 0.4.6", + "rayon", + "serde", + "serde_json", + "smallvec", + "structopt", + "test-log", + "tracing", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#d4e9215d4fe8f4d311e1c01a9b561e4d04cb426b" dependencies = [ "bincode", - "circuit_definitions", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", "codegen 0.2.0", - "crossbeam 0.8.2", + "crossbeam 0.8.4", + "curl", "derivative", - "env_logger 0.10.1", + "env_logger 0.11.1", "hex", + "lazy_static", "rand 0.4.6", "rayon", + "reqwest", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", "serde", "serde_json", "smallvec", + "snark_wrapper", "structopt", "test-log", "tracing", - "zkevm-assembly", + "walkdir", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1)", ] [[package]] @@ -9358,8 +9460,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bc9b106393359ac013c2527db318ced4ca838d26ef03488233af557ebe5da8" dependencies = [ "async-trait", - "clap 4.4.10", - "env_logger 0.10.1", + "clap 4.4.18", + "env_logger 0.10.2", "ethers", "ethers-contract", "hex", @@ -9375,7 +9477,7 @@ dependencies = [ [[package]] name = "zksync_basic_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "serde", "serde_json", @@ -9385,13 +9487,11 @@ dependencies = [ [[package]] name = "zksync_circuit_breaker" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", - "backon", - "convert_case 0.6.0", - "futures 0.3.29", + "futures 0.3.30", "hex", "metrics", "serde_json", @@ -9401,16 +9501,19 @@ dependencies = [ "zksync_config", "zksync_contracts", "zksync_dal", - "zksync_eth_client", "zksync_types", ] [[package]] name = "zksync_commitment_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ + "multivm", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.1", "zkevm_test_harness 1.4.0", + "zkevm_test_harness 1.4.1", "zksync_types", "zksync_utils", ] @@ -9418,7 +9521,7 @@ dependencies = [ [[package]] name = "zksync_concurrency" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "once_cell", @@ -9436,9 +9539,10 @@ dependencies = [ [[package]] name = "zksync_config" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", + "rand 0.8.5", "serde", "zksync_basic_types", ] @@ -9446,7 +9550,7 @@ dependencies = [ [[package]] name = "zksync_consensus_bft" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9467,7 +9571,7 @@ dependencies = [ [[package]] name = "zksync_consensus_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "blst", @@ -9485,10 +9589,9 @@ dependencies = [ [[package]] name = "zksync_consensus_executor" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", - "prost", "rand 0.8.5", "tracing", "vise", @@ -9501,13 +9604,12 @@ dependencies = [ "zksync_consensus_sync_blocks", "zksync_consensus_utils", "zksync_protobuf", - "zksync_protobuf_build", ] [[package]] name = "zksync_consensus_network" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9523,6 +9625,7 @@ dependencies = [ "zksync_concurrency", "zksync_consensus_crypto", "zksync_consensus_roles", + "zksync_consensus_storage", "zksync_consensus_utils", "zksync_protobuf", "zksync_protobuf_build", @@ -9531,7 +9634,7 @@ dependencies = [ [[package]] name = "zksync_consensus_roles" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "bit-vec", @@ -9551,7 +9654,7 @@ dependencies = [ [[package]] name = "zksync_consensus_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "async-trait", @@ -9559,6 +9662,7 @@ dependencies = [ "rand 0.8.5", "thiserror", "tracing", + "vise", "zksync_concurrency", "zksync_consensus_roles", "zksync_protobuf", @@ -9568,7 +9672,7 @@ dependencies = [ [[package]] name = "zksync_consensus_sync_blocks" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "thiserror", @@ -9583,7 +9687,7 @@ dependencies = [ [[package]] name = "zksync_consensus_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "thiserror", "zksync_concurrency", @@ -9592,7 +9696,7 @@ dependencies = [ [[package]] name = "zksync_contracts" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "envy", "ethabi 18.0.0", @@ -9606,7 +9710,7 @@ dependencies = [ [[package]] name = "zksync_core" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "actix-cors", "actix-rt", @@ -9614,20 +9718,14 @@ dependencies = [ "anyhow", "async-trait", "axum", - "bigdecimal", + "bigdecimal 0.3.1", "bitflags 1.3.2", "chrono", "ctrlc", - "futures 0.3.29", + "futures 0.3.30", "governor", "hex", "itertools 0.10.5", - "jsonrpc-core 18.0.0 (git+https://github.com/matter-labs/jsonrpc.git?branch=master)", - "jsonrpc-core-client", - "jsonrpc-derive", - "jsonrpc-http-server", - "jsonrpc-pubsub", - "jsonrpc-ws-server", "lru", "metrics", "multivm", @@ -9646,42 +9744,45 @@ dependencies = [ "tracing", "vise", "vlog", + "vm_utils", "zksync_circuit_breaker", "zksync_commitment_utils", "zksync_concurrency", "zksync_config", "zksync_consensus_bft", + "zksync_consensus_crypto", "zksync_consensus_executor", "zksync_consensus_roles", "zksync_consensus_storage", + "zksync_consensus_utils", "zksync_contracts", "zksync_dal", + "zksync_env_config", "zksync_eth_client", "zksync_eth_signer", "zksync_health_check", + "zksync_l1_contract_interface", "zksync_mempool", "zksync_merkle_tree", "zksync_mini_merkle_tree", "zksync_object_store", "zksync_protobuf", "zksync_protobuf_build", - "zksync_prover_utils", + "zksync_prover_interface", "zksync_queued_job_processor", "zksync_state", "zksync_storage", "zksync_system_constants", "zksync_types", "zksync_utils", - "zksync_verification_key_generator_and_server", "zksync_web3_decl", ] [[package]] name = "zksync_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "base64 0.13.1", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "hex", "once_cell", @@ -9694,14 +9795,15 @@ dependencies = [ [[package]] name = "zksync_dal" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", - "bigdecimal", + "bigdecimal 0.3.1", "bincode", + "chrono", "hex", "itertools 0.10.5", - "num 0.3.1", + "num 0.4.1", "once_cell", "prost", "rand 0.8.5", @@ -9726,17 +9828,26 @@ dependencies = [ ] [[package]] -name = "zksync_eth_client" +name = "zksync_env_config" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", + "envy", + "serde", + "zksync_basic_types", + "zksync_config", +] + +[[package]] +name = "zksync_eth_client" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ "async-trait", - "hex", "jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde", "thiserror", - "tokio", "tracing", "vise", "zksync_config", @@ -9748,15 +9859,14 @@ dependencies = [ [[package]] name = "zksync_eth_signer" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "async-trait", "hex", "jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-crypto", "reqwest", "rlp", - "secp256k1 0.27.0", + "secp256k1", "serde", "serde_derive", "serde_json", @@ -9767,20 +9877,34 @@ dependencies = [ [[package]] name = "zksync_health_check" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "async-trait", - "futures 0.3.29", + "futures 0.3.30", "serde", "serde_json", "tokio", "tracing", ] +[[package]] +name = "zksync_l1_contract_interface" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" +dependencies = [ + "codegen 0.1.0", + "sha2 0.10.8", + "sha3 0.10.8", + "zkevm_test_harness 1.3.3", + "zkevm_test_harness 1.4.1", + "zksync_prover_interface", + "zksync_types", +] + [[package]] name = "zksync_mempool" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "tracing", "zksync_types", @@ -9789,7 +9913,7 @@ dependencies = [ [[package]] name = "zksync_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "leb128", "once_cell", @@ -9798,6 +9922,7 @@ dependencies = [ "tracing", "vise", "zksync_crypto", + "zksync_prover_interface", "zksync_storage", "zksync_types", "zksync_utils", @@ -9806,7 +9931,7 @@ dependencies = [ [[package]] name = "zksync_mini_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "once_cell", "zksync_basic_types", @@ -9816,7 +9941,7 @@ dependencies = [ [[package]] name = "zksync_object_store" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", @@ -9825,18 +9950,20 @@ dependencies = [ "google-cloud-auth", "google-cloud-storage", "http", + "prost", "serde_json", "tokio", "tracing", "vise", "zksync_config", + "zksync_protobuf", "zksync_types", ] [[package]] name = "zksync_protobuf" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "bit-vec", @@ -9854,43 +9981,37 @@ dependencies = [ [[package]] name = "zksync_protobuf_build" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-consensus.git?rev=49b1a98f80d0e9f74fdceadece4283e745c71599#49b1a98f80d0e9f74fdceadece4283e745c71599" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=5b3d383d7a65b0fbe2a771fecf4313f5083be9ae#5b3d383d7a65b0fbe2a771fecf4313f5083be9ae" dependencies = [ "anyhow", "heck 0.4.1", "prettyplease", - "proc-macro2 1.0.70", + "proc-macro2 1.0.78", "prost-build", "prost-reflect", "protox", - "quote 1.0.33", - "syn 2.0.39", + "quote 1.0.35", + "syn 2.0.48", ] [[package]] -name = "zksync_prover_utils" +name = "zksync_prover_interface" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "anyhow", - "async-trait", - "ctrlc", - "futures 0.3.29", - "regex", - "reqwest", - "tokio", - "toml_edit 0.14.4", - "tracing", - "zksync_config", + "chrono", + "serde", + "serde_with", + "strum 0.24.1", + "zkevm_test_harness 1.3.3", "zksync_object_store", "zksync_types", - "zksync_utils", ] [[package]] name = "zksync_queued_job_processor" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "async-trait", @@ -9903,7 +10024,7 @@ dependencies = [ [[package]] name = "zksync_state" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "itertools 0.10.5", @@ -9920,7 +10041,7 @@ dependencies = [ [[package]] name = "zksync_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "num_cpus", "once_cell", @@ -9932,47 +10053,35 @@ dependencies = [ [[package]] name = "zksync_system_constants" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "anyhow", - "bigdecimal", - "hex", - "num 0.3.1", "once_cell", - "serde", - "serde_json", - "url", "zksync_basic_types", - "zksync_contracts", "zksync_utils", ] [[package]] name = "zksync_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "chrono", - "codegen 0.1.0", - "ethereum-types 0.12.1", "hex", - "num 0.3.1", + "num 0.4.1", "num_enum 0.6.1", "once_cell", - "parity-crypto", + "prost", "rlp", + "secp256k1", "serde", "serde_json", "serde_with", "strum 0.24.1", "thiserror", - "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", - "zk_evm 1.4.0", - "zkevm_test_harness 1.3.3", "zksync_basic_types", - "zksync_consensus_roles", + "zksync_config", "zksync_contracts", "zksync_mini_merkle_tree", "zksync_protobuf", @@ -9984,15 +10093,15 @@ dependencies = [ [[package]] name = "zksync_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ "anyhow", - "bigdecimal", - "futures 0.3.29", + "bigdecimal 0.3.1", + "futures 0.3.30", "hex", "itertools 0.10.5", "metrics", - "num 0.3.1", + "num 0.4.1", "reqwest", "serde", "thiserror", @@ -10003,32 +10112,12 @@ dependencies = [ "zksync_basic_types", ] -[[package]] -name = "zksync_verification_key_generator_and_server" -version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" -dependencies = [ - "anyhow", - "bincode", - "circuit_testing", - "ff_ce", - "hex", - "itertools 0.10.5", - "once_cell", - "serde_json", - "structopt", - "tracing", - "vlog", - "zksync_prover_utils", - "zksync_types", -] - [[package]] name = "zksync_web3_decl" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?rev=3c669e7b0caf6515ad865f4cba5ea6fb36c33811#3c669e7b0caf6515ad865f4cba5ea6fb36c33811" +source = "git+https://github.com/matter-labs/zksync-era.git?rev=d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854#d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" dependencies = [ - "bigdecimal", + "bigdecimal 0.3.1", "chrono", "itertools 0.10.5", "jsonrpsee", @@ -10048,15 +10137,6 @@ dependencies = [ "zstd-safe 5.0.2+zstd.1.5.2", ] -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - [[package]] name = "zstd" version = "0.13.0" @@ -10076,16 +10156,6 @@ dependencies = [ "zstd-sys", ] -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", -] - [[package]] name = "zstd-safe" version = "7.0.0" diff --git a/Cargo.toml b/Cargo.toml index 48203b0c..f1957063 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,14 +11,14 @@ categories = ["cryptography"] publish = false # We don't want to publish our binaries. [dependencies] -zksync_basic_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_core = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -multivm = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } -zksync_web3_decl = { git = "https://github.com/matter-labs/zksync-era.git", rev = "3c669e7b0caf6515ad865f4cba5ea6fb36c33811" } +zksync_basic_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_core = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +multivm = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } +zksync_web3_decl = { git = "https://github.com/matter-labs/zksync-era.git", rev = "d1e47744c773fa38aa22aaaa3dbb9dbffe7e9854" } sha3 = "0.10.6" @@ -43,7 +43,7 @@ colored = "2.0" lazy_static = "1.4" eyre = "0.6" serde_json = "1.0.67" -bigdecimal = { version = "0.2.0" } +bigdecimal = { version = "0.2.2", features = ["serde"] } hex = "0.4" ethabi = "16.0.0" itertools = "0.10.5" diff --git a/e2e-tests/test/zks-apis.test.ts b/e2e-tests/test/zks-apis.test.ts index a27e04dd..80984965 100644 --- a/e2e-tests/test/zks-apis.test.ts +++ b/e2e-tests/test/zks-apis.test.ts @@ -31,13 +31,13 @@ describe("zks_estimateFee", function () { const response: Fee = await provider.send("zks_estimateFee", [transaction]); // Assert - expect(ethers.BigNumber.from(response.gas_limit)).to.eql(ethers.BigNumber.from("621166"), "Unexpected gas_limit"); + expect(ethers.BigNumber.from(response.gas_limit)).to.eql(ethers.BigNumber.from("1447745"), "Unexpected gas_limit"); expect(ethers.BigNumber.from(response.gas_per_pubdata_limit)).to.eql( - ethers.BigNumber.from("4080"), + ethers.BigNumber.from("18750"), "Unexpected gas_per_pubdata_limit" ); expect(ethers.BigNumber.from(response.max_fee_per_gas)).to.eql( - ethers.BigNumber.from("250000000"), + ethers.BigNumber.from("100000000"), "Unexpected max_fee_per_gas" ); expect(ethers.BigNumber.from(response.max_priority_fee_per_gas)).to.eql( diff --git a/etc/system-contracts/SystemConfig.json b/etc/system-contracts/SystemConfig.json index 827e11b5..73d75b2b 100644 --- a/etc/system-contracts/SystemConfig.json +++ b/etc/system-contracts/SystemConfig.json @@ -1,17 +1,25 @@ { - "GUARANTEED_PUBDATA_BYTES": 4000, - "MAX_PUBDATA_PER_BATCH": 110000, - "MAX_TRANSACTIONS_IN_BATCH": 1024, - "BATCH_OVERHEAD_L2_GAS": 1200000, + "GUARANTEED_PUBDATA_BYTES": 2500, + "MAX_TRANSACTIONS_IN_BATCH": 10000, + "REQUIRED_L2_GAS_PRICE_PER_PUBDATA": 800, + "L1_GAS_PER_PUBDATA_BYTE": 17, + "PRIORITY_TX_MAX_PUBDATA": 99000, "BATCH_OVERHEAD_L1_GAS": 1000000, - "L2_TX_INTRINSIC_GAS": 14070, - "L2_TX_INTRINSIC_PUBDATA": 0, "L1_TX_INTRINSIC_L2_GAS": 167157, "L1_TX_INTRINSIC_PUBDATA": 88, + "L1_TX_MIN_L2_GAS_BASE": 173484, + "L1_TX_DELTA_544_ENCODING_BYTES": 1656, + "L1_TX_DELTA_FACTORY_DEPS_L2_GAS": 2473, + "L1_TX_DELTA_FACTORY_DEPS_PUBDATA": 64, + "L2_TX_INTRINSIC_GAS": 14070, + "L2_TX_INTRINSIC_PUBDATA": 0, + "MAX_NEW_FACTORY_DEPS": 32, "MAX_GAS_PER_TRANSACTION": 80000000, - "BOOTLOADER_MEMORY_FOR_TXS": 8740224, - "REFUND_GAS": 7343, "KECCAK_ROUND_COST_GAS": 40, "SHA256_ROUND_COST_GAS": 7, - "ECRECOVER_COST_GAS": 1112 + "ECRECOVER_COST_GAS": 7000, + "PRIORITY_TX_MINIMAL_GAS_PRICE": 250000000, + "PRIORITY_TX_MAX_GAS_PER_BATCH": 80000000, + "PRIORITY_TX_PUBDATA_PER_BATCH": 120000, + "PRIORITY_TX_BATCH_OVERHEAD_L1_GAS": 1000000 } diff --git a/etc/system-contracts/VERSION.md b/etc/system-contracts/VERSION.md index 675b64d7..6f016b01 100644 --- a/etc/system-contracts/VERSION.md +++ b/etc/system-contracts/VERSION.md @@ -1,6 +1,6 @@ -This directory was copied from https://github.com/matter-labs/era-system-contracts. +This directory was copied from https://github.com/matter-labs/era-contracts/tree/2dfbc6bac84ecada93cab4a0dea113bc2aceba1c. -The current commit: `a00ab9a11643f3a918ed95cdf8a04edff5499d92`. +The current repository commit: `2dfbc6bac84ecada93cab4a0dea113bc2aceba1c`. The following directories/files were copied: - [bootloader](bootloader) @@ -8,15 +8,15 @@ The following directories/files were copied: - [scripts](scripts) - [hardhat.config.ts](hardhat.config.ts) - [package.json](package.json) -- [SystemConfig.json](SystemConfig.json) -- [yarn.lock](yarn.lock) +- [SystemConfig.json](SystemConfig.json) **NOTE: was copied from the repository root.** The next changes were introduced: - [bootloader.yul](bootloader/bootloader.yul) - Debug data, marked as `DEBUG SUPPORT` blocks. - Impersonating preprocessing mode, blocks `` and at some places added `` condition. -- [process.ts](scripts/process.ts) +- [preprocess-bootloader.ts](scripts/preprocess-bootloader.ts) - Impersonating preprocessing mode, "For impersonating" blocks. + - System config path, "TEST NODE CHANGE" block. - [DefaultAccount.sol](contracts/DefaultAccount.sol) - Return transaction data (empty), marked as `FOUNDRY SUPPORT` blocks. - [DefaultAccountNoSecurity.sol](contracts/DefaultAccountNoSecurity.sol) diff --git a/etc/system-contracts/bootloader/bootloader.yul b/etc/system-contracts/bootloader/bootloader.yul index dd115490..a950b205 100644 --- a/etc/system-contracts/bootloader/bootloader.yul +++ b/etc/system-contracts/bootloader/bootloader.yul @@ -9,11 +9,11 @@ object "Bootloader" { // Function Declarations //////////////////////////////////////////////////////////////////////////// - // While we definitely cannot control the gas price on L1, + // While we definitely cannot control the pubdata price on L1, // we need to check the operator does not provide any absurd numbers there - function MAX_ALLOWED_L1_GAS_PRICE() -> ret { - // 100k gwei - ret := 100000000000000 + function MAX_ALLOWED_FAIR_PUBDATA_PRICE() -> ret { + // 1M gwei + ret := 1000000000000000 } function MAX_ALLOWED_FAIR_L2_GAS_PRICE() -> ret { @@ -23,9 +23,10 @@ object "Bootloader" { /// @dev This method ensures that the prices provided by the operator /// are not absurdly high - function validateOperatorProvidedPrices(l1GasPrice, fairL2GasPrice) { - if gt(l1GasPrice, MAX_ALLOWED_L1_GAS_PRICE()) { - assertionError("L1 gas price too high") + function validateOperatorProvidedPrices(fairL2GasPrice, pubdataPrice) { + // The limit is the same for pubdata price and L1 gas price + if gt(pubdataPrice, MAX_ALLOWED_FAIR_PUBDATA_PRICE()) { + assertionError("Fair pubdata price too high") } if gt(fairL2GasPrice, MAX_ALLOWED_FAIR_L2_GAS_PRICE()) { @@ -33,21 +34,44 @@ object "Bootloader" { } } - /// @dev Returns the baseFee for this batch based on the - /// L1 gas price and the fair L2 gas price. - function getBaseFee(l1GasPrice, fairL2GasPrice) -> baseFee, gasPricePerPubdata { - // By default, we want to provide the fair L2 gas price. - // That it means that the operator controls - // what the value of the baseFee will be. In the future, - // a better system, aided by EIP1559 should be added. + /// @dev The overhead for a transaction slot in L2 gas. + /// It is roughly equal to 80kk/MAX_TRANSACTIONS_IN_BATCH, i.e. how many gas would an L1->L2 transaction + /// need to pay to compensate for the batch being closed. + /// @dev It is expected of the operator to set the "fair L2 gas price" appropriately to ensure that it is + /// compensated enough in case the batch might be prematurely sealed because of the transaction slots being filled up. + function TX_SLOT_OVERHEAD_GAS() -> ret { + ret := 10000 + } - let pubdataBytePriceETH := safeMul(l1GasPrice, L1_GAS_PER_PUBDATA_BYTE(), "aoa") + /// @dev The overhead for each byte of the bootloader memory that the encoding of the transaction. + /// It is roughly equal to 80kk/BOOTLOADER_MEMORY_FOR_TXS, i.e. how many gas would an L1->L2 transaction + /// need to pay to compensate for the batch being closed. + /// @dev It is expected of the operator to set the "fair L2 gas price" appropriately to ensure that it is + /// compensated enough in case the batch might be prematurely sealed because of the memory being filled up. + function MEMORY_OVERHEAD_GAS() -> ret { + ret := 10 + } + /// @dev Returns the base fee and gas per pubdata based on the fair pubdata price and L2 gas price provided by the operator + /// @param pubdataPrice The price of a single byte of pubdata in Wei + /// @param fairL2GasPrice The price of an L2 gas in Wei + /// @return baseFee and gasPerPubdata The base fee and the gas per pubdata to be used by L2 transactions in this batch. + function getFeeParams( + fairPubdataPrice, + fairL2GasPrice, + ) -> baseFee, gasPerPubdata { baseFee := max( fairL2GasPrice, - ceilDiv(pubdataBytePriceETH, MAX_L2_GAS_PER_PUBDATA()) + ceilDiv(fairPubdataPrice, MAX_L2_GAS_PER_PUBDATA()) ) - gasPricePerPubdata := ceilDiv(pubdataBytePriceETH, baseFee) + + gasPerPubdata := gasPerPubdataFromBaseFee(baseFee, fairPubdataPrice) + } + + /// @dev Calculates the gas per pubdata based on the pubdata price provided by the operator + /// as well the the fixed baseFee. + function gasPerPubdataFromBaseFee(baseFee, pubdataPrice) -> ret { + ret := ceilDiv(pubdataPrice, baseFee) } /// @dev It should be always possible to submit a transaction @@ -62,14 +86,6 @@ object "Bootloader" { ret := div(MAX_GAS_PER_TRANSACTION(), GUARANTEED_PUBDATA_PER_TX()) } - /// @dev The computational overhead for a batch. - /// It includes the combined price for 1 instance of all the circuits - /// (since they might be partially filled), the price for running - /// the common parts of the bootloader as well as general maintainance of the system. - function BATCH_OVERHEAD_L2_GAS() -> ret { - ret := {{BATCH_OVERHEAD_L2_GAS}} - } - /// @dev The overhead for the interaction with L1. /// It should cover proof verification as well as other minor /// overheads for committing/executing a transaction in a batch. @@ -90,12 +106,6 @@ object "Bootloader" { ret := 17 } - /// @dev The size of the bootloader memory that is to spent by the transaction's - /// encodings. - function BOOTLOADER_MEMORY_FOR_TXS() -> ret { - ret := {{BOOTLOADER_MEMORY_FOR_TXS}} - } - /// @dev Whether the batch is allowed to accept transactions with /// gasPerPubdataByteLimit = 0. On mainnet, this is forbidden for safety reasons. function FORBID_ZERO_GAS_PER_PUBDATA() -> ret { @@ -108,7 +118,7 @@ object "Bootloader" { } /// @dev The slot from which the scratch space starts. - /// Scatch space is used for various temporary values + /// Scratch space is used for various temporary values function SCRATCH_SPACE_BEGIN_SLOT() -> ret { ret := 8 } @@ -343,7 +353,7 @@ object "Bootloader" { /// @dev Slots needed to store L1 Messenger pubdata. /// @dev Note that are many more these than the maximal pubdata in batch, since - /// it needs to also accomodate uncompressed state diffs that are required for the state diff + /// it needs to also accommodate uncompressed state diffs that are required for the state diff /// compression verification. function OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS() -> ret { ret := {{OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS}} @@ -389,12 +399,12 @@ object "Bootloader" { ret := add(TX_DESCRIPTION_BEGIN_BYTE(), mul(MAX_TRANSACTIONS_IN_BATCH(), TX_DESCRIPTION_SIZE())) } - /// @dev The memory page consists of 2^19 VM words. + /// @dev The memory page consists of 24000000 / 32 VM words. /// Each execution result is a single boolean, but /// for the sake of simplicity we will spend 32 bytes on each /// of those for now. function MAX_MEM_SIZE() -> ret { - ret := 0x1000000 // 2^24 bytes + ret := 24000000 } function L1_TX_INTRINSIC_L2_GAS() -> ret { @@ -456,7 +466,7 @@ object "Bootloader" { // The slot right before the vm hooks is the last slot that // can be used for transaction's descriptions /// DEBUG SUPPORT: use DEBUG_BEGIN_BYTE (as we reserve some bytes at the end of memory). - ret := sub(VM_HOOK_PARAMS_OFFSET(), 32) + ret := sub(DEBUG_BEGIN_BYTE(), 32) } /// @dev The formal address of the bootloader @@ -464,10 +474,6 @@ object "Bootloader" { ret := 0x0000000000000000000000000000000000008001 } - function MAX_SYSTEM_CONTRACT_ADDR() -> ret { - ret := 0x000000000000000000000000000000000000ffff - } - function ACCOUNT_CODE_STORAGE_ADDR() -> ret { ret := 0x0000000000000000000000000000000000008002 } @@ -488,6 +494,10 @@ object "Bootloader" { ret := 0x0000000000000000000000000000000000008007 } + function L1_MESSENGER_ADDR() -> ret { + ret := 0x0000000000000000000000000000000000008008 + } + function MSG_VALUE_SIMULATOR_ADDR() -> ret { ret := 0x0000000000000000000000000000000000008009 } @@ -508,8 +518,12 @@ object "Bootloader" { ret := 0x000000000000000000000000000000000000800e } - function L1_MESSENGER_ADDR() -> ret { - ret := 0x0000000000000000000000000000000000008008 + function KECCAK256_ADDR() -> ret { + ret := 0x0000000000000000000000000000000000008010 + } + + function MAX_SYSTEM_CONTRACT_ADDR() -> ret { + ret := 0x000000000000000000000000000000000000ffff } /// @dev The minimal allowed distance in bytes between the pointer to the compressed data @@ -654,17 +668,21 @@ object "Bootloader" { } } - /// @dev Checks whether the code hash of the system context contract is correct and updates it if needed. - /// @dev The L1 contracts expect all the system logs to be present in the first boojum upgrade batch already. - /// However, the old system context did not send the same system logs. Usually we upgrade system context - /// via an upgrade transaction, but in this case the transaction won't be even processed, because of failure to create an L2 block. - function upgradeSystemContextIfNeeded() { - let expectedCodeHash := {{SYSTEM_CONTEXT_EXPECTED_CODE_HASH}} + /// @dev The function that is temporarily needed to upgrade the Keccak256 precompile. This function and `ContractDeployer:forceDeployKeccak256` + /// are to be removed once the upgrade is complete. + /// @dev Checks whether the code hash of the Keccak256 precompile contract is correct and updates it if needed. + /// @dev When we upgrade to the new version of the Keccak256 precompile contract, the keccak precompile will not work correctly + /// and so the upgrade it should be done before any `keccak` calls. + function upgradeKeccakIfNeeded() { + let expectedCodeHash := {{KECCAK256_EXPECTED_CODE_HASH}} - let actualCodeHash := extcodehash(SYSTEM_CONTEXT_ADDR()) + let actualCodeHash := getRawCodeHash(KECCAK256_ADDR(), true) if iszero(eq(expectedCodeHash, actualCodeHash)) { - // Preparing the calldata to upgrade the SystemContext contract - {{UPGRADE_SYSTEM_CONTEXT_CALLDATA}} + // The `mimicCallOnlyResult` requires that the first word of the data + // contains its length. Here is 36 bytes, i.e. 4 byte selector + 32 byte hash. + mstore(0, 36) + mstore(32, {{PADDED_FORCE_DEPLOY_KECCAK256_SELECTOR}}) + mstore(36, expectedCodeHash) // We'll use a mimicCall to simulate the correct sender. let success := mimicCallOnlyResult( @@ -679,9 +697,46 @@ object "Bootloader" { ) if iszero(success) { - assertionError("system context upgrade fail") + assertionError("keccak256 upgrade fail") + } + } + } + + /// @notice Returns "raw" code hash of the address. "Raw" means that it returns exactly the value + /// that is stored in the AccountCodeStorage system contract for that address, without applying any + /// additional transformations, which the standard `extcodehash` does for EVM-compatibility + /// @param addr The address of the account to get the code hash of. + /// @param assertSuccess Whether to revert the bootloader if the call to the AccountCodeStorage fails. If `false`, only + /// `nearCallPanic` will be issued in case of failure, which is helpful for cases, when the reason for failer is user providing not + /// enough gas. + function getRawCodeHash(addr, assertSuccess) -> ret { + mstore(0, {{RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR}}) + mstore(4, addr) + let success := staticcall( + gas(), + ACCOUNT_CODE_STORAGE_ADDR(), + 0, + 36, + 0, + 32 + ) + + // In case the call to the account code storage fails, + // it most likely means that the caller did not provide enough gas for + // the call. + // In case the caller is certain that the amount of gas provided is enough, i.e. + // (`assertSuccess` = true), then we should panic. + if iszero(success) { + if assertSuccess { + // The call must've succeeded, but it didn't. So we revert the bootloader. + assertionError("getRawCodeHash failed") } + + // Most likely not enough gas provided, revert the current frame. + nearCallPanic() } + + ret := mload(0) } /// @dev Calculates the canonical hash of the L1->L2 transaction that will be @@ -976,9 +1031,6 @@ object "Bootloader" { let payToOperator := safeMul(gasPrice, safeSub(gasLimit, refundGas, "lpah"), "mnk") - // Note, that for now, the L1->L2 transactions are free, i.e. the gasPrice - // for such transactions is always zero, so the `refundGas` is not used anywhere - // except for notifications for the operator for API purposes. notifyAboutRefund(refundGas) // Paying the fee to the operator @@ -1124,7 +1176,13 @@ object "Bootloader" { // Firsly, we publish all the bytecodes needed. This is needed to be done separately, since // bytecodes usually form the bulk of the L2 gas prices. - let gasLimitForTx, reservedGas := getGasLimitForTx(innerTxDataOffset, transactionIndex, gasPerPubdata, L2_TX_INTRINSIC_GAS(), L2_TX_INTRINSIC_PUBDATA()) + let gasLimitForTx, reservedGas := getGasLimitForTx( + innerTxDataOffset, + transactionIndex, + gasPerPubdata, + L2_TX_INTRINSIC_GAS(), + L2_TX_INTRINSIC_PUBDATA() + ) /// @@ -1266,7 +1324,6 @@ object "Bootloader" { let operatorOverheadForTransaction := getVerifiedOperatorOverheadForTx( transactionIndex, totalGasLimit, - gasPerPubdata, txEncodingLen ) gasLimitForTx := safeSub(totalGasLimit, operatorOverheadForTransaction, "qr") @@ -1779,20 +1836,14 @@ object "Bootloader" { function getVerifiedOperatorOverheadForTx( transactionIndex, txTotalGasLimit, - gasPerPubdataByte, txEncodeLen ) -> ret { let operatorOverheadForTransaction := getOperatorOverheadForTx(transactionIndex) if gt(operatorOverheadForTransaction, txTotalGasLimit) { assertionError("Overhead higher than gasLimit") } - let txGasLimit := min(safeSub(txTotalGasLimit, operatorOverheadForTransaction, "www"), MAX_GAS_PER_TRANSACTION()) - let requiredOverhead := getTransactionUpfrontOverhead( - txGasLimit, - gasPerPubdataByte, - txEncodeLen - ) + let requiredOverhead := getTransactionUpfrontOverhead(txEncodeLen) /// /// DEBUG SUPPORT START /// @@ -2009,95 +2060,34 @@ object "Bootloader" { } } - /// Returns the batch overhead to be paid, assuming a certain value of gasPerPubdata - function getBatchOverheadGas(gasPerPubdata) -> ret { - let computationOverhead := BATCH_OVERHEAD_L2_GAS() - let l1GasOverhead := BATCH_OVERHEAD_L1_GAS() - let l1GasPerPubdata := L1_GAS_PER_PUBDATA_BYTE() - - // Since the user specifies the amount of gas he is willing to pay for a *byte of pubdata*, - // we need to convert the number of L1 gas needed to process the batch into the equivalent number of - // pubdata to pay for. - // The difference between ceil and floor division here is negligible, - // so we prefer doing the cheaper operation for the end user - let pubdataEquivalentForL1Gas := safeDiv(l1GasOverhead, l1GasPerPubdata, "dd") - - ret := safeAdd( - computationOverhead, - safeMul(gasPerPubdata, pubdataEquivalentForL1Gas, "aa"), - "ab" - ) - } - /// @dev This method returns the overhead that should be paid upfront by a transaction. /// The goal of this overhead is to cover the possibility that this transaction may use up a certain /// limited resource per batch: a single-instance circuit, etc. /// The transaction needs to be able to pay the same % of the costs for publishing & proving the batch /// as the % of the batch's limited resources that it can consume. - /// @param txGasLimit The gasLimit for the transaction (note, that this limit should not include the overhead). - /// @param gasPerPubdataByte The price for pubdata byte in gas. /// @param txEncodeLen The length of the ABI-encoding of the transaction - /// @dev The % following 3 resources is taken into account when calculating the % of the batch's overhead to pay. - /// 1. The % of the maximal gas per transaction. It is assumed that `MAX_GAS_PER_TRANSACTION` gas is enough to consume all - /// the single-instance circuits. Meaning that the transaction should pay at least txGasLimit/MAX_GAS_PER_TRANSACTION part - /// of the overhead. - /// 2. Overhead for taking up the bootloader memory. The bootloader memory has a cap on its length, mainly enforced to keep the RAM requirements + /// @dev The % following 2 resources is taken into account when calculating the % of the batch's overhead to pay. + /// 1. Overhead for taking up the bootloader memory. The bootloader memory has a cap on its length, mainly enforced to keep the RAM requirements /// for the node smaller. That is, the user needs to pay a share proportional to the length of the ABI encoding of the transaction. - /// 3. Overhead for taking up a slot for the transaction. Since each batch has the limited number of transactions in it, the user must pay + /// 2. Overhead for taking up a slot for the transaction. Since each batch has the limited number of transactions in it, the user must pay /// at least 1/MAX_TRANSACTIONS_IN_BATCH part of the overhead. function getTransactionUpfrontOverhead( - txGasLimit, - gasPerPubdataByte, txEncodeLen ) -> ret { - ret := 0 - let totalBatchOverhead := getBatchOverheadGas(gasPerPubdataByte) - debugLog("totalBatchOverhead", totalBatchOverhead) - - let overheadForCircuits := ceilDiv( - safeMul(totalBatchOverhead, txGasLimit, "ac"), - MAX_GAS_PER_TRANSACTION() - ) - ret := max(ret, overheadForCircuits) - debugLog("overheadForCircuits", overheadForCircuits) - - - let overheadForLength := ceilDiv( - safeMul(txEncodeLen, totalBatchOverhead, "ad"), - BOOTLOADER_MEMORY_FOR_TXS() - ) - ret := max(ret, overheadForLength) - debugLog("overheadForLength", overheadForLength) - - - let overheadForSlot := ceilDiv( - totalBatchOverhead, - MAX_TRANSACTIONS_IN_BATCH() + ret := max( + safeMul(txEncodeLen, MEMORY_OVERHEAD_GAS(), "iot"), + TX_SLOT_OVERHEAD_GAS() ) - ret := max(ret, overheadForSlot) - debugLog("overheadForSlot", overheadForSlot) - /// /// DEBUG SUPPORT START /// - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 13)), totalBatchOverhead) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 14)), overheadForCircuits) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 15)), overheadForLength) - mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 16)), overheadForSlot) + mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 13)), safeMul(txEncodeLen, MEMORY_OVERHEAD_GAS(), "iot")) + mstore(add(DEBUG_BEGIN_BYTE(), mul(32, 14)), TX_SLOT_OVERHEAD_GAS()) /// /// DEBUG SUPPORT END /// - - // In the proved batch we ensure that the gasPerPubdataByte is not zero - // to avoid the potential edge case of division by zero. In Yul, division by - // zero does not panic, but returns zero. - - if and(iszero(gasPerPubdataByte), FORBID_ZERO_GAS_PER_PUBDATA()) { - assertionError("zero gasPerPubdataByte") - } - } /// @dev A method where all panics in the nearCalls get to. @@ -2187,26 +2177,11 @@ object "Bootloader" { /// @dev Checks whether an address is an EOA (i.e. has not code deployed on it) /// @param addr The address to check function isEOA(addr) -> ret { - mstore(0, {{RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR}}) - mstore(4, addr) - let success := call( - gas(), - ACCOUNT_CODE_STORAGE_ADDR(), - 0, - 0, - 36, - 0, - 32 - ) + ret := 0 - if iszero(success) { - // The call to the account code storage should always succeed - nearCallPanic() + if gt(addr, MAX_SYSTEM_CONTRACT_ADDR()) { + ret := iszero(getRawCodeHash(addr, false)) } - - let rawCodeHash := mload(0) - - ret := iszero(rawCodeHash) } /// @dev Calls the `payForTransaction` method of an account @@ -2911,7 +2886,7 @@ object "Bootloader" { ) } default { - // For L2 transactions, we use near call panic, it will triger the validation + // For L2 transactions, we use near call panic, it will trigger the validation // step of the transaction to fail, returning a consistent error message. nearCallPanic() } @@ -3513,19 +3488,12 @@ object "Bootloader" { /// Debug utilities /// - /// @notice A method used to prevent optimization of x by the compiler - /// @dev This method is only used for logging purposes - function nonOptimized(x) -> ret { - // value() is always 0 in bootloader context. - ret := add(mul(callvalue(),x),x) - } - /// @dev This method accepts the message and some 1-word data associated with it /// It triggers a VM hook that allows the server to observe the behavior of the system. function debugLog(msg, data) { - storeVmHookParam(0, nonOptimized(msg)) - storeVmHookParam(1, nonOptimized(data)) - setHook(nonOptimized(VM_HOOK_DEBUG_LOG())) + storeVmHookParam(0, msg) + storeVmHookParam(1, data) + setHook(VM_HOOK_DEBUG_LOG()) } /// @dev Triggers a hook that displays the returndata on the server side. @@ -3539,15 +3507,15 @@ object "Bootloader" { /// refunded to the user. This is to be used by the operator to derive the correct /// `gasUsed` in the API. function notifyAboutRefund(refund) { - storeVmHookParam(0, nonOptimized(refund)) + storeVmHookParam(0, refund) setHook(VM_NOTIFY_OPERATOR_ABOUT_FINAL_REFUND()) debugLog("refund(gas)", refund) } function notifyExecutionResult(success) { let ptr := returnDataPtr() - storeVmHookParam(0, nonOptimized(success)) - storeVmHookParam(1, nonOptimized(ptr)) + storeVmHookParam(0, success) + storeVmHookParam(1, ptr) setHook(VM_HOOK_EXECUTION_RESULT()) debugLog("execution result: success", success) @@ -3565,7 +3533,7 @@ object "Bootloader" { /// Since the slot after the transaction is not touched, /// this slot can be used in the in-circuit VM out of box. function askOperatorForRefund(gasLeft) { - storeVmHookParam(0, nonOptimized(gasLeft)) + storeVmHookParam(0, gasLeft) setHook(VM_HOOK_ASK_OPERATOR_FOR_REFUND()) } @@ -3833,14 +3801,14 @@ object "Bootloader" { // Need to prevent the compiler from optimizing out similar operations, // which may have different meaning for the offline debugging - function unoptimized(val) -> ret { + function $llvm_NoInline_llvm$_unoptimized(val) -> ret { ret := add(val, callvalue()) } /// @notice Triggers a VM hook. /// The server will recognize it and output corresponding logs. function setHook(hook) { - mstore(VM_HOOK_PTR(), unoptimized(hook)) + mstore(VM_HOOK_PTR(), $llvm_NoInline_llvm$_unoptimized(hook)) } /// @notice Sets a value to a param of the vm hook. @@ -3851,7 +3819,7 @@ object "Bootloader" { /// paramId smaller than the VM_HOOK_PARAMS() function storeVmHookParam(paramId, value) { let offset := add(VM_HOOK_PARAMS_OFFSET(), mul(32, paramId)) - mstore(offset, unoptimized(value)) + mstore(offset, $llvm_NoInline_llvm$_unoptimized(value)) } /// @dev Log key used by Executor.sol for processing. See Constants.sol::SystemLogKey enum @@ -3890,12 +3858,15 @@ object "Bootloader" { /// of the VM and the state of the operator. let NEW_BATCH_NUMBER := mload(96) - /// @notice The gas price on L1 for ETH. In the future, a trustless value will be enforced. + /// @notice The minimal price per pubdata byte in ETH that the operator agrees on. + /// In the future, a trustless value will be enforced. /// For now, this value is trusted to be fairly provided by the operator. - let L1_GAS_PRICE := mload(128) + /// It is expected of the operator to already include the L1 batch overhead costs into the value. + let FAIR_PUBDATA_PRICE := mload(128) /// @notice The minimal gas price that the operator agrees upon. /// In the future, it will have an EIP1559-like lower bound. + /// It is expected of the operator to already include the L1 batch overhead costs into the value. let FAIR_L2_GAS_PRICE := mload(160) /// @notice The expected base fee by the operator. @@ -3903,21 +3874,27 @@ object "Bootloader" { /// the operator still provides it to make sure that its data is in sync. let EXPECTED_BASE_FEE := mload(192) - validateOperatorProvidedPrices(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) + // When the 1.4.1 VM launches, the old Keccak precompile will stop working. + // Thus, the first thing we need to do before any transaction starts is to upgrade + // keccak precompile to the new version. + upgradeKeccakIfNeeded() + + validateOperatorProvidedPrices(FAIR_L2_GAS_PRICE, FAIR_PUBDATA_PRICE) + - let baseFee := 0 - // This implementation of the bootloader relies on the correct version of the SystemContext - // and it can not be upgraded via a standard upgrade transaction, but needs to ensure - // correctness itself before any transaction is executed. - upgradeSystemContextIfNeeded() + let baseFee := 0 + + baseFee, GAS_PRICE_PER_PUBDATA := getFeeParams( + FAIR_PUBDATA_PRICE, + FAIR_L2_GAS_PRICE + ) // Only for the proved batch we enforce that the baseFee proposed // by the operator is equal to the expected one. For the playground batch, we allow // the operator to provide any baseFee the operator wants. - baseFee, GAS_PRICE_PER_PUBDATA := getBaseFee(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) if iszero(eq(baseFee, EXPECTED_BASE_FEE)) { debugLog("baseFee", baseFee) debugLog("EXPECTED_BASE_FEE", EXPECTED_BASE_FEE) @@ -3930,20 +3907,18 @@ object "Bootloader" { - baseFee, GAS_PRICE_PER_PUBDATA := getBaseFee(L1_GAS_PRICE, FAIR_L2_GAS_PRICE) - let SHOULD_SET_NEW_BATCH := mload(224) - upgradeSystemContextIfNeeded() - - switch SHOULD_SET_NEW_BATCH - case 0 { + switch SHOULD_SET_NEW_BATCH + case 0 { unsafeOverrideBatch(NEW_BATCH_TIMESTAMP, NEW_BATCH_NUMBER, EXPECTED_BASE_FEE) } default { setNewBatch(PREV_BATCH_HASH, NEW_BATCH_TIMESTAMP, NEW_BATCH_NUMBER, EXPECTED_BASE_FEE) } + GAS_PRICE_PER_PUBDATA := gasPerPubdataFromBaseFee(EXPECTED_BASE_FEE, FAIR_PUBDATA_PRICE) + } @@ -3957,7 +3932,7 @@ object "Bootloader" { let txPtr := TX_DESCRIPTION_BEGIN_BYTE() - // At the COMPRESSED_BYTECODES_BEGIN_BYTE() the pointer to the newest bytecode to be published + // At the COMPRESSED_BYTECODES_BEGIN_BYTE() the pointer to the newest bytecode to be published // is stored. mstore(COMPRESSED_BYTECODES_BEGIN_BYTE(), add(COMPRESSED_BYTECODES_BEGIN_BYTE(), 32)) @@ -3966,10 +3941,10 @@ object "Bootloader" { mstore(add(PRIORITY_TXS_L1_DATA_BEGIN_BYTE(), 32), 0) // Iterating through transaction descriptions - let transactionIndex := 0 - for { + let transactionIndex := 0 + for { let resultPtr := RESULT_START_PTR() - } lt(txPtr, TXS_IN_BATCH_LAST_PTR()) { + } lt(txPtr, TXS_IN_BATCH_LAST_PTR()) { txPtr := add(txPtr, TX_DESCRIPTION_SIZE()) resultPtr := add(resultPtr, 32) transactionIndex := add(transactionIndex, 1) @@ -3978,12 +3953,12 @@ object "Bootloader" { debugLog("txPtr", txPtr) debugLog("execute", execute) - + if iszero(execute) { // We expect that all transactions that are executed // are continuous in the array. break - } + } let txDataOffset := mload(add(txPtr, 32)) @@ -4007,7 +3982,7 @@ object "Bootloader" { } validateTypedTxStructure(add(txDataOffset, 32)) - + { debugLog("ethCall", 0) @@ -4036,7 +4011,7 @@ object "Bootloader" { // Increment tx index within the system. considerNewTx() } - + // The bootloader doesn't have to pay anything setPricePerPubdataByte(0) @@ -4045,7 +4020,7 @@ object "Bootloader" { setTxOrigin(0) setGasPrice(0) - // Transfering all the ETH received in the block to the operator + // Transferring all the ETH received in the block to the operator directETHTransfer( selfbalance(), OPERATOR_ADDRESS @@ -4054,11 +4029,11 @@ object "Bootloader" { // Hook that notifies that the operator should provide final information for the batch setHook(VM_HOOK_FINAL_L2_STATE_INFO()) - // Each batch typically ends with a special block which contains no transactions. + // Each batch typically ends with a special block which contains no transactions. // So we need to have this method to reflect it in the system contracts too. // // The reason is that as of now our node requires that each storage write (event, etc) belongs to a particular - // L2 block. In case a batch is sealed by timeout (i.e. the resources of the batch have not been exhaused, but we need + // L2 block. In case a batch is sealed by timeout (i.e. the resources of the batch have not been exhausted, but we need // to seal it to assure timely finality), we need to process sending funds to the operator *after* the last // non-empty L2 block has been already sealed. We can not override old L2 blocks, so we need to create a new empty "fictive" block for it. // diff --git a/etc/system-contracts/bootloader/test_infra/Cargo.lock b/etc/system-contracts/bootloader/test_infra/Cargo.lock index c3d586f0..a6ba2440 100644 --- a/etc/system-contracts/bootloader/test_infra/Cargo.lock +++ b/etc/system-contracts/bootloader/test_infra/Cargo.lock @@ -73,35 +73,43 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if 1.0.0", + "getrandom 0.2.11", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "1.0.5" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -182,24 +190,34 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "async-trait" -version = "0.1.73" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "atoi" -version = "0.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" dependencies = [ "num-traits", ] +[[package]] +name = "atomic-write-file" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436" +dependencies = [ + "nix", + "rand 0.8.5", +] + [[package]] name = "atty" version = "0.2.14" @@ -247,6 +265,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + [[package]] name = "base64" version = "0.13.1" @@ -255,9 +279,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.3" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -265,14 +289,43 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" + +[[package]] +name = "bellman_ce" +version = "0.3.2" +source = "git+https://github.com/matter-labs/bellman?branch=dev#5520aa2274afe73d281373c92b007a2ecdebfbea" +dependencies = [ + "arrayvec 0.7.4", + "bit-vec", + "blake2s_const 0.6.0 (git+https://github.com/matter-labs/bellman?branch=dev)", + "blake2s_simd", + "byteorder", + "cfg-if 1.0.0", + "crossbeam 0.7.3", + "futures", + "hex", + "lazy_static", + "num_cpus", + "pairing_ce 0.28.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.6", + "serde", + "smallvec", + "tiny-keccak 1.5.0", +] + [[package]] name = "bellman_ce" version = "0.3.2" -source = "git+https://github.com/matter-labs/bellman?branch=dev#bbac0559fdc440b2331eca1c347a30559a3dd969" +source = "git+https://github.com/matter-labs/bellman?branch=snark-wrapper#e01e5fa08a97a113e76ec8a69d06fe6cc2c82d17" dependencies = [ "arrayvec 0.7.4", "bit-vec", - "blake2s_const", + "blake2s_const 0.6.0 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", "blake2s_simd", "byteorder", "cfg-if 1.0.0", @@ -281,7 +334,7 @@ dependencies = [ "hex", "lazy_static", "num_cpus", - "pairing_ce", + "pairing_ce 0.28.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6", "serde", "smallvec", @@ -290,11 +343,11 @@ dependencies = [ [[package]] name = "bigdecimal" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1e50562e37200edf7c6c43e54a08e64a5553bfb59d9c297d5572512aa517256" +checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" dependencies = [ - "num-bigint 0.3.3", + "num-bigint 0.4.4", "num-integer", "num-traits", "serde", @@ -322,12 +375,12 @@ dependencies = [ "lazycell", "peeking_take_while", "prettyplease", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "regex", "rustc-hash", "shlex", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -347,9 +400,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -395,6 +451,14 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "blake2" +version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e#1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e" +dependencies = [ + "digest 0.10.7", +] + [[package]] name = "blake2-rfc_bellman_edition" version = "0.0.1" @@ -409,7 +473,17 @@ dependencies = [ [[package]] name = "blake2s_const" version = "0.6.0" -source = "git+https://github.com/matter-labs/bellman?branch=dev#bbac0559fdc440b2331eca1c347a30559a3dd969" +source = "git+https://github.com/matter-labs/bellman?branch=dev#5520aa2274afe73d281373c92b007a2ecdebfbea" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq", +] + +[[package]] +name = "blake2s_const" +version = "0.6.0" +source = "git+https://github.com/matter-labs/bellman?branch=snark-wrapper#e01e5fa08a97a113e76ec8a69d06fe6cc2c82d17" dependencies = [ "arrayref", "arrayvec 0.5.2", @@ -462,11 +536,78 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "blst" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94087b935a822949d3291a9989ad2b2051ea141eda0fd4e478a75f6aa3e604b" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "boojum" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "const_format", + "convert_case", + "crossbeam 0.8.2", + "crypto-bigint 0.5.5", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "ethereum-types 0.14.1", + "firestorm", + "itertools 0.10.5", + "lazy_static", + "num-modular", + "num_cpus", + "packed_simd", + "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git)", + "rand 0.8.5", + "rayon", + "serde", + "sha2 0.10.8", + "sha3 0.10.6", + "smallvec", + "unroll", +] + +[[package]] +name = "borsh" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", + "syn_derive", +] + [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -474,17 +615,39 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[package]] +name = "bytecheck" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6372023ac861f6e6dc89c8344a8f398fb42aaba2b5dbc649ca0c0e9dbcb627" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7ec4c6f261935ad534c0c22dbef2201b45918860eb1c574b972bd213a76af61" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "bytecount" -version = "0.6.3" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c" +checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" @@ -514,9 +677,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" +checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" dependencies = [ "serde", ] @@ -565,11 +728,17 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", @@ -577,7 +746,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -589,12 +758,40 @@ dependencies = [ "generic-array", ] +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#fb47657ae3b6ff6e4bb5199964d3d37212978200" +dependencies = [ + "crossbeam 0.8.2", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.0", + "zkevm_circuits 1.4.0", +] + +[[package]] +name = "circuit_definitions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#6db7c01717d157945f0f2939119dbd8a170de6bc" +dependencies = [ + "crossbeam 0.8.2", + "derivative", + "seq-macro", + "serde", + "snark_wrapper", + "zk_evm 1.4.1", + "zkevm_circuits 1.4.1", +] + [[package]] name = "circuit_testing" version = "0.1.0" source = "git+https://github.com/matter-labs/era-circuit_testing.git?branch=main#164c0adac85be39ee44bd9456b2b91cdede5af80" dependencies = [ - "bellman_ce", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=dev)", ] [[package]] @@ -635,14 +832,14 @@ dependencies = [ [[package]] name = "codegen" version = "0.1.0" -source = "git+https://github.com/matter-labs/solidity_plonk_verifier.git?branch=dev#07954802c13fb087efb5874c2ce521f843d614fd" +source = "git+https://github.com/matter-labs/solidity_plonk_verifier.git?branch=dev#82f96b7156551087f1c9bfe4f0ea68845b6debfc" dependencies = [ "ethereum-types 0.14.1", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "handlebars", "hex", "paste", - "rescue_poseidon", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon)", "serde", "serde_derive", "serde_json", @@ -659,21 +856,45 @@ dependencies = [ [[package]] name = "colored" -version = "2.0.4" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" dependencies = [ - "is-terminal", "lazy_static", - "windows-sys", + "windows-sys 0.48.0", ] +[[package]] +name = "compile-fmt" +version = "0.1.0" +source = "git+https://github.com/slowli/compile-fmt.git?rev=c6a41c846c9a6f70cdba4b44c9f3922242ffcf12#c6a41c846c9a6f70cdba4b44c9f3922242ffcf12" + [[package]] name = "const-oid" version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +[[package]] +name = "const_format" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "unicode-xid 0.2.4", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -688,9 +909,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -698,33 +919,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] [[package]] name = "crc" -version = "2.1.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" dependencies = [ "crc-catalog", ] [[package]] name = "crc-catalog" -version = "1.1.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] name = "crossbeam" @@ -883,6 +1104,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -916,10 +1149,21 @@ dependencies = [ [[package]] name = "cs_derive" version = "0.1.0" -source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#e819d15b107a06a746299f98bbd9802e26eeb348" +source = "git+https://github.com/matter-labs/era-boojum.git?branch=main#93b5e0f0dbff0a9b606d9025e207c8405c141bd9" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + +[[package]] +name = "cs_derive" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "proc-macro-error", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "syn 1.0.109", @@ -934,6 +1178,64 @@ dependencies = [ "cipher", ] +[[package]] +name = "curl" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "509bd11746c7ac09ebd19f0b17782eae80aadee26237658a6b4808afb5c11a22" +dependencies = [ + "curl-sys", + "libc", + "openssl-probe", + "openssl-sys", + "schannel", + "socket2 0.4.10", + "winapi", +] + +[[package]] +name = "curl-sys" +version = "0.4.70+curl-8.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0333d8849afe78a4c8102a429a446bfdd055832af071945520e835ae2d841e" +dependencies = [ + "cc", + "libc", + "libz-sys", + "openssl-sys", + "pkg-config", + "vcpkg", + "windows-sys 0.48.0", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "darling" version = "0.13.4" @@ -952,7 +1254,7 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" dependencies = [ "fnv", "ident_case", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "strsim 0.10.0", "syn 1.0.109", @@ -976,10 +1278,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if 1.0.0", - "hashbrown 0.14.0", + "hashbrown 0.14.3", "lock_api", "once_cell", - "parking_lot_core 0.9.8", + "parking_lot_core", ] [[package]] @@ -1002,11 +1304,25 @@ dependencies = [ "zeroize", ] +[[package]] +name = "der" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", +] [[package]] name = "derivative" @@ -1014,7 +1330,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -1026,7 +1342,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "rustc_version", "syn 1.0.109", @@ -1048,35 +1364,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", + "const-oid", "crypto-common", "subtle", ] [[package]] -name = "dirs" -version = "4.0.0" +name = "dotenvy" +version = "0.15.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" +checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" [[package]] name = "dtoa" @@ -1090,15 +1387,54 @@ version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" dependencies = [ - "der", - "elliptic-curve", - "rfc6979", - "signature", + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", ] [[package]] -name = "either" -version = "1.9.0" +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der 0.7.8", + "digest 0.10.7", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", + "signature 2.2.0", + "spki 0.7.3", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8 0.10.2", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "subtle", + "zeroize", +] + +[[package]] +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" dependencies = [ @@ -1111,16 +1447,35 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" dependencies = [ - "base16ct", - "crypto-bigint", - "der", + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.7", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.5", "digest 0.10.7", - "ff", + "ff 0.13.0", "generic-array", - "group", - "pkcs8", + "group 0.13.0", + "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "subtle", "zeroize", ] @@ -1156,6 +1511,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "envy" version = "0.4.2" @@ -1173,32 +1541,32 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.3" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "error-chain" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" dependencies = [ - "cc", - "libc", + "version_check", ] [[package]] -name = "error-chain" -version = "0.12.4" +name = "etcetera" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" dependencies = [ - "version_check", + "cfg-if 1.0.0", + "home", + "windows-sys 0.48.0", ] [[package]] @@ -1213,7 +1581,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sha3 0.10.6", + "sha3 0.10.8", "thiserror", "uint", ] @@ -1268,7 +1636,7 @@ dependencies = [ "fixed-hash 0.8.0", "impl-rlp", "impl-serde 0.4.0", - "primitive-types 0.12.1", + "primitive-types 0.12.2", "uint", ] @@ -1280,9 +1648,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -1294,6 +1662,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "ff_ce" version = "0.14.3" @@ -1316,12 +1694,18 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "syn 1.0.109", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "findshlibs" version = "0.10.2" @@ -1340,6 +1724,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" +[[package]] +name = "firestorm" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c5f6c2c942da57e2aaaa84b8a521489486f14e75e7fa91dab70aba913975f98" + [[package]] name = "fixed-hash" version = "0.7.0" @@ -1364,6 +1754,23 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "futures-core", + "futures-sink", + "spin 0.9.8", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1387,9 +1794,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1397,19 +1804,51 @@ dependencies = [ [[package]] name = "franklin-crypto" version = "0.0.5" -source = "git+https://github.com/matter-labs/franklin-crypto?branch=dev#5922873d25ecec827cd60420ca8cd84a188bb965" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=dev#5695d07c7bc604c2c39a27712ffac171d39ee1ed" +dependencies = [ + "arr_macro", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=dev)", + "bit-vec", + "blake2 0.9.2", + "blake2-rfc_bellman_edition", + "blake2s_simd", + "byteorder", + "digest 0.9.0", + "hex", + "indexmap 1.9.3", + "itertools 0.10.5", + "lazy_static", + "num-bigint 0.4.4", + "num-derive 0.2.5", + "num-integer", + "num-traits", + "rand 0.4.6", + "serde", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", + "splitmut", + "tiny-keccak 1.5.0", +] + +[[package]] +name = "franklin-crypto" +version = "0.0.5" +source = "git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper#2546c63b91b59bdb0ad342d26f03fb57477550b2" dependencies = [ "arr_macro", - "bellman_ce", + "bellman_ce 0.3.2 (git+https://github.com/matter-labs/bellman?branch=snark-wrapper)", "bit-vec", "blake2 0.9.2", "blake2-rfc_bellman_edition", "blake2s_simd", + "boojum", "byteorder", + "derivative", "digest 0.9.0", "hex", "indexmap 1.9.3", - "itertools", + "itertools 0.10.5", "lazy_static", "num-bigint 0.4.4", "num-derive 0.2.5", @@ -1444,9 +1883,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ "futures-channel", "futures-core", @@ -1459,9 +1898,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", "futures-sink", @@ -1469,15 +1908,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -1487,43 +1926,43 @@ dependencies = [ [[package]] name = "futures-intrusive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a604f7a68fbf8103337523b1fadc8ade7361ee3f112f7c680ad179651616aed5" +checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" dependencies = [ "futures-core", "lock_api", - "parking_lot 0.11.2", + "parking_lot", ] [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-timer" @@ -1533,9 +1972,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-channel", "futures-core", @@ -1557,6 +1996,7 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] @@ -1572,9 +2012,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1583,9 +2023,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "glob" @@ -1599,16 +2039,27 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" dependencies = [ - "ff", + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] [[package]] name = "h2" -version = "0.3.21" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" dependencies = [ "bytes", "fnv", @@ -1616,7 +2067,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -1625,9 +2076,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.4.0" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39b3bc2a8f715298032cf5087e58573809374b08160aa7d750582bdb82d2683" +checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" dependencies = [ "log", "pest", @@ -1637,34 +2088,32 @@ dependencies = [ "thiserror", ] -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.6", -] - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.7", +] [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.6", + "allocator-api2", +] [[package]] name = "hashlink" -version = "0.7.0" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.11.2", + "hashbrown 0.14.3", ] [[package]] @@ -1673,7 +2122,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "bytes", "headers-core", "http", @@ -1720,9 +2169,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -1758,6 +2207,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "hostname" version = "0.3.1" @@ -1771,9 +2229,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", @@ -1782,9 +2240,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1826,7 +2284,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "socket2 0.4.10", "tokio", "tower-service", "tracing", @@ -1835,9 +2293,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", "http", @@ -1862,16 +2320,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -1899,6 +2357,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "impl-codec" version = "0.5.1" @@ -1914,7 +2382,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" dependencies = [ - "parity-scale-codec 3.6.5", + "parity-scale-codec 3.6.9", ] [[package]] @@ -1950,7 +2418,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -1967,34 +2435,28 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.0", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", + "hashbrown 0.14.3", ] [[package]] name = "ipnet" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "ipnetwork" -version = "0.17.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" +dependencies = [ + "serde", +] [[package]] name = "is-terminal" @@ -2002,9 +2464,9 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2016,26 +2478,44 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -2062,9 +2542,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" dependencies = [ "cfg-if 1.0.0", - "ecdsa", - "elliptic-curve", - "sha2 0.10.6", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.8", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "once_cell", + "sha2 0.10.8", + "signature 2.2.0", ] [[package]] @@ -2081,6 +2575,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lazycell" @@ -2090,9 +2587,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libloading" @@ -2104,6 +2601,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "librocksdb-sys" version = "0.11.0+8.1.1" @@ -2118,6 +2621,17 @@ dependencies = [ "libz-sys", ] +[[package]] +name = "libsqlite3-sys" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "libz-sys" version = "1.1.12" @@ -2125,41 +2639,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] [[package]] name = "linkme" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f948366ad5bb46b5514ba7a7a80643726eef08b06632592699676748c8bc33b" +checksum = "b1e6b0bb9ca88d3c5ae88240beb9683821f903b824ee8381ef9ab4e8522fbfa9" dependencies = [ "linkme-impl", ] [[package]] name = "linkme-impl" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc28438cad73dcc90ff3466fc329a9252b1b8ba668eb0d5668ba97088cf4eef0" +checksum = "b3b3f61e557a617ec6ba36c79431e1f3b5e100d67cfbdb61ed6ef384298af016" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ "autocfg 1.1.0", "scopeguard", @@ -2171,6 +2686,38 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +[[package]] +name = "logos" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" +dependencies = [ + "beef", + "fnv", + "proc-macro2 1.0.70", + "quote 1.0.33", + "regex-syntax 0.6.29", + "syn 2.0.40", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", +] + [[package]] name = "match_cfg" version = "0.1.0" @@ -2194,18 +2741,19 @@ checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ + "cfg-if 1.0.0", "digest 0.10.7", ] [[package]] name = "memchr" -version = "2.6.3" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2231,7 +2779,7 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" dependencies = [ - "ahash 0.8.3", + "ahash 0.8.6", "metrics-macros", "portable-atomic", ] @@ -2242,22 +2790,45 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddece26afd34c31585c74a4db0630c376df271c285d682d1e55012197830b6df" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] -name = "mime" -version = "0.3.17" +name = "miette" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "59bb584eaeeab6bd0226ccf3509a69d7936d148cf3d036ad350abe35e8c6856e" +dependencies = [ + "miette-derive", + "once_cell", + "thiserror", + "unicode-width", +] [[package]] -name = "mini-moka" -version = "0.10.2" +name = "miette-derive" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" +checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mini-moka" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e0b72e7c9042467008b10279fc732326bd605459ae03bda88825909dd19b56" dependencies = [ "crossbeam-channel 0.5.8", "crossbeam-utils 0.8.16", @@ -2285,13 +2856,44 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "multivm" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", + "hex", + "itertools 0.10.5", + "once_cell", + "thiserror", + "tracing", + "vise", + "zk_evm 1.3.1", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.4.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "zkevm_test_harness 1.4.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", + "zksync_contracts", + "zksync_state", + "zksync_system_constants", + "zksync_types", + "zksync_utils", ] [[package]] @@ -2312,6 +2914,17 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if 1.0.0", + "libc", +] + [[package]] name = "nodrop" version = "0.1.14" @@ -2375,7 +2988,6 @@ dependencies = [ "autocfg 1.1.0", "num-integer", "num-traits", - "serde", ] [[package]] @@ -2390,6 +3002,23 @@ dependencies = [ "serde", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand 0.8.5", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.3.1" @@ -2397,7 +3026,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ "num-traits", - "serde", ] [[package]] @@ -2407,6 +3035,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", + "serde", ] [[package]] @@ -2426,7 +3055,7 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -2452,6 +3081,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" +dependencies = [ + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.3.2" @@ -2462,7 +3101,6 @@ dependencies = [ "num-bigint 0.3.3", "num-integer", "num-traits", - "serde", ] [[package]] @@ -2475,15 +3113,17 @@ dependencies = [ "num-bigint 0.4.4", "num-integer", "num-traits", + "serde", ] [[package]] name = "num-traits" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg 1.1.0", + "libm", ] [[package]] @@ -2492,7 +3132,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi 0.3.3", "libc", ] @@ -2511,10 +3151,10 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 1.3.1", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2528,9 +3168,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -2540,11 +3180,11 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.57" +version = "0.10.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "cfg-if 1.0.0", "foreign-types", "libc", @@ -2559,9 +3199,9 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2572,9 +3212,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.93" +version = "0.9.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" dependencies = [ "cc", "libc", @@ -2582,6 +3222,15 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "os_info" version = "3.7.0" @@ -2599,6 +3248,16 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "packed_simd" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f9f08af0c877571712e2e3e686ad79efad9657dbf0f7c3c8ba943ff6c38932d" +dependencies = [ + "cfg-if 1.0.0", + "num-traits", +] + [[package]] name = "pairing_ce" version = "0.28.5" @@ -2612,6 +3271,30 @@ dependencies = [ "serde", ] +[[package]] +name = "pairing_ce" +version = "0.28.5" +source = "git+https://github.com/matter-labs/pairing.git?rev=f55393fd366596eac792d78525d26e9c4d6ed1ca#f55393fd366596eac792d78525d26e9c4d6ed1ca" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "ff_ce", + "rand 0.4.6", + "serde", +] + +[[package]] +name = "pairing_ce" +version = "0.28.5" +source = "git+https://github.com/matter-labs/pairing.git#f55393fd366596eac792d78525d26e9c4d6ed1ca" +dependencies = [ + "byteorder", + "cfg-if 1.0.0", + "ff_ce", + "rand 0.4.6", + "serde", +] + [[package]] name = "parity-crypto" version = "0.9.0" @@ -2652,15 +3335,15 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" dependencies = [ "arrayvec 0.7.4", "bitvec 1.0.1", "byte-slice-cast", "impl-trait-for-tuples", - "parity-scale-codec-derive 3.6.5", + "parity-scale-codec-derive 3.6.9", "serde", ] @@ -2670,35 +3353,24 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 1.3.1", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.5" +version = "3.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.66", + "proc-macro-crate 2.0.1", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -2706,34 +3378,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.8", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.9.8" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.3.5", + "redox_syscall", "smallvec", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2780,17 +3438,26 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" dependencies = [ "memchr", "thiserror", @@ -2799,9 +3466,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bee7be22ce7918f641a33f08e3f43388c7656772244e2bbb2477f44cc9021a" +checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" dependencies = [ "pest", "pest_generator", @@ -2809,26 +3476,36 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1511785c5e98d79a05e8a6bc34b4ac2168a0e3e92161862030ad84daa223141" +checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" dependencies = [ "pest", "pest_meta", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "pest_meta" -version = "2.7.3" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42f0394d3123e33353ca5e1e89092e533d2cc490389f2bd6131c43c634ebc5f" +checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" dependencies = [ "once_cell", "pest", - "sha2 0.10.6", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", ] [[package]] @@ -2846,9 +3523,9 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -2863,14 +3540,35 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der 0.7.8", + "pkcs8 0.10.2", + "spki 0.7.3", +] + [[package]] name = "pkcs8" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" dependencies = [ - "der", - "spki", + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.8", + "spki 0.7.3", ] [[package]] @@ -2879,11 +3577,23 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portable-atomic" -version = "1.4.3" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "powerfmt" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -2897,8 +3607,8 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ - "proc-macro2 1.0.66", - "syn 2.0.31", + "proc-macro2 1.0.70", + "syn 2.0.40", ] [[package]] @@ -2916,9 +3626,9 @@ dependencies = [ [[package]] name = "primitive-types" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash 0.8.0", "impl-codec 0.6.0", @@ -2934,7 +3644,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit 0.20.2", ] [[package]] @@ -2944,7 +3664,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", "version_check", @@ -2956,7 +3676,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "version_check", ] @@ -2973,14 +3693,14 @@ version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" dependencies = [ - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2993,7 +3713,7 @@ checksum = "3c99afa9a01501019ac3a14d71d9f94050346f55ca471ce90c799a15c58f61e2" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot", "prometheus-client-derive-encode", ] @@ -3003,9 +3723,126 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.11.0", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.40", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "prost-reflect" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057237efdb71cf4b3f9396302a3d6599a92fa94063ba537b66130980ea9909f3" +dependencies = [ + "base64 0.21.5", + "logos", + "miette", + "once_cell", + "prost", + "prost-types", + "serde", + "serde-value", +] + +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + +[[package]] +name = "protox" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00bb76c5f6221de491fe2c8f39b106330bbd9762c6511119c07940e10eb9ff11" +dependencies = [ + "bytes", + "miette", + "prost", + "prost-reflect", + "prost-types", + "protox-parse", + "thiserror", +] + +[[package]] +name = "protox-parse" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4581f441c58863525a3e6bec7b8de98188cf75239a56c725a3e7288450a33f" +dependencies = [ + "logos", + "miette", + "prost-types", + "thiserror", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 1.0.109", ] [[package]] @@ -3019,6 +3856,15 @@ dependencies = [ "unicase", ] +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quote" version = "0.6.13" @@ -3034,7 +3880,7 @@ version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", ] [[package]] @@ -3163,7 +4009,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.2.11", ] [[package]] @@ -3239,9 +4085,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -3249,14 +4095,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel 0.5.8", "crossbeam-deque 0.8.3", "crossbeam-utils 0.8.16", - "num_cpus", ] [[package]] @@ -3270,43 +4114,23 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.10", - "redox_syscall 0.2.16", - "thiserror", -] - [[package]] name = "regex" -version = "1.9.5" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.8", - "regex-syntax 0.7.5", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", ] [[package]] @@ -3320,13 +4144,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.8" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", ] [[package]] @@ -3337,17 +4161,26 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rend" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" +checksum = "a2571463863a6bd50c32f94402933f03457a3fbaf697a707c5be741e459f08fd" +dependencies = [ + "bytecheck", +] [[package]] name = "reqwest" -version = "0.11.20" +version = "0.11.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" +checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "bytes", "encoding_rs", "futures-core", @@ -3371,6 +4204,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls", @@ -3386,13 +4220,35 @@ dependencies = [ [[package]] name = "rescue_poseidon" version = "0.4.1" -source = "git+https://github.com/matter-labs/rescue-poseidon#f611a3353e48cf42153e44d89ed90da9bc5934e8" +source = "git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2#2e5e8afb152adc326fcf776a71ad3735fa7f3186" +dependencies = [ + "addchain", + "arrayvec 0.7.4", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder", + "derivative", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=snark_wrapper)", + "log", + "num-bigint 0.3.3", + "num-integer", + "num-iter", + "num-traits", + "rand 0.4.6", + "serde", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "rescue_poseidon" +version = "0.4.1" +source = "git+https://github.com/matter-labs/rescue-poseidon#d059b5042df5ed80e151f05751410b524a54d16c" dependencies = [ "addchain", "arrayvec 0.7.4", - "blake2 0.10.6", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "num-bigint 0.3.3", "num-integer", "num-iter", @@ -3409,24 +4265,33 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" dependencies = [ - "crypto-bigint", + "crypto-bigint 0.4.9", "hmac 0.12.1", "zeroize", ] +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle", +] + [[package]] name = "ring" -version = "0.16.20" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", + "getrandom 0.2.11", "libc", - "once_cell", - "spin", + "spin 0.9.8", "untrusted", - "web-sys", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -3440,6 +4305,35 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "rkyv" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527a97cdfef66f65998b5f3b637c26f5a5ec09cc52a3f9932313ac645f4190f5" +dependencies = [ + "bitvec 1.0.1", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5c462a1328c8e67e4d6dbad1eb0355dd43e8ab432c6e227a43657f16ade5033" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "rlp" version = "0.5.2" @@ -3460,6 +4354,42 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rsa" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" +dependencies = [ + "const-oid", + "digest 0.10.7", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "signature 2.2.0", + "spki 0.7.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rust_decimal" +version = "1.33.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06676aec5ccb8fc1da723cc8c0f9a46549f21ebb8753d3915c6c41db1e7f1dc4" +dependencies = [ + "arrayvec 0.7.4", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -3489,22 +4419,22 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.11" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "bitflags 2.4.0", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.21.7" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring", @@ -3514,18 +4444,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", ] [[package]] name = "rustls-webpki" -version = "0.101.4" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", "untrusted", @@ -3539,9 +4469,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "salsa20" @@ -3567,7 +4497,7 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3594,24 +4524,44 @@ dependencies = [ [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", "untrusted", ] +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "sec1" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ - "base16ct", - "der", + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "pkcs8 0.9.0", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.8", "generic-array", - "pkcs8", + "pkcs8 0.10.2", "subtle", "zeroize", ] @@ -3678,18 +4628,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" dependencies = [ "serde", ] [[package]] name = "sentry" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e95efd0cefa32028cdb9766c96de71d96671072f9fb494dc9fb84c0ef93e52b" +checksum = "6ce4b57f1b521f674df7a1d200be8ff5d74e3712020ee25b553146657b5377d5" dependencies = [ "httpdate", "native-tls", @@ -3706,9 +4656,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac2bac6f310c4c4c4bb094d1541d32ae497f8c5c23405e85492cefdfe0971a9" +checksum = "58cc8d4e04a73de8f718dc703943666d03f25d3e9e4d0fb271ca0b8c76dfa00e" dependencies = [ "backtrace", "once_cell", @@ -3718,9 +4668,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3e17295cecdbacf66c5bd38d6e1147e09e1e9d824d2d5341f76638eda02a3a" +checksum = "6436c1bad22cdeb02179ea8ef116ffc217797c028927def303bc593d9320c0d1" dependencies = [ "hostname", "libc", @@ -3732,9 +4682,9 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8339474f587f36cb110fa1ed1b64229eea6d47b0b886375579297b7e47aeb055" +checksum = "901f761681f97db3db836ef9e094acdd8756c40215326c194201941947164ef1" dependencies = [ "once_cell", "rand 0.8.5", @@ -3745,9 +4695,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c11e7d2b809b06497a18a2e60f513206462ae2db27081dfb7be9ade1f329cc8" +checksum = "afdb263e73d22f39946f6022ed455b7561b22ff5553aca9be3c6a047fa39c328" dependencies = [ "findshlibs", "once_cell", @@ -3756,9 +4706,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b69f506da75bd664029eafb05f8934297d2990192896d17325f066bd665b7" +checksum = "74fbf1c163f8b6a9d05912e1b272afa27c652e8b47ea60cb9a57ad5e481eea99" dependencies = [ "sentry-backtrace", "sentry-core", @@ -3766,9 +4716,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89feead9bdd116f8035e89567651340fc382db29240b6c55ef412078b08d1aa3" +checksum = "82eabcab0a047040befd44599a1da73d3adb228ff53b5ed9795ae04535577704" dependencies = [ "sentry-backtrace", "sentry-core", @@ -3778,13 +4728,13 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.31.6" +version = "0.31.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99dc599bd6646884fc403d593cdcb9816dd67c50cff3271c01ff123617908dcd" +checksum = "da956cca56e0101998c8688bc65ce1a96f00673a0e58e663664023d4c7911e82" dependencies = [ "debugid", - "getrandom 0.2.10", "hex", + "rand 0.8.5", "serde", "serde_json", "thiserror", @@ -3793,31 +4743,47 @@ dependencies = [ "uuid", ] +[[package]] +name = "seq-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4" + [[package]] name = "serde" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3854,27 +4820,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ "darling", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.7", -] - [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -3897,8 +4852,18 @@ dependencies = [ [[package]] name = "sha2" version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=1731ced4a116d61ba9dc6ee6d0f38fb8102e357a#1731ced4a116d61ba9dc6ee6d0f38fb8102e357a" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if 1.0.0", "cpufeatures", @@ -3920,8 +4885,17 @@ dependencies = [ [[package]] name = "sha3" version = "0.10.6" +source = "git+https://github.com/RustCrypto/hashes.git?rev=7a187e934c1f6c68e4b4e5cf37541b7a0d64d303#7a187e934c1f6c68e4b4e5cf37541b7a0d64d303" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.7", "keccak", @@ -3929,9 +4903,9 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] @@ -3961,6 +4935,22 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simdutf8" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" + [[package]] name = "skeptic" version = "0.13.7" @@ -3987,15 +4977,28 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +dependencies = [ + "serde", +] + +[[package]] +name = "snark_wrapper" +version = "0.1.0" +source = "git+https://github.com/matter-labs/snark-wrapper.git?branch=main#42661a9ff9d00853441589679c101f71e3785f55" +dependencies = [ + "derivative", + "rand 0.4.6", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", +] [[package]] name = "socket2" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", "winapi", @@ -4003,12 +5006,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -4017,6 +5020,15 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.6.0" @@ -4024,7 +5036,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" dependencies = [ "base64ct", - "der", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der 0.7.8", ] [[package]] @@ -4035,117 +5057,231 @@ checksum = "c85070f382340e8b23a75808e83573ddf65f9ad9143df9573ca37c1ed2ee956a" [[package]] name = "sqlformat" -version = "0.1.8" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +checksum = "ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c" dependencies = [ - "itertools", + "itertools 0.12.0", "nom", "unicode_categories", ] [[package]] name = "sqlx" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" +checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" dependencies = [ "sqlx-core", "sqlx-macros", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", ] [[package]] name = "sqlx-core" -version = "0.5.13" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" +checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" dependencies = [ - "ahash 0.7.6", + "ahash 0.8.6", "atoi", - "base64 0.13.1", "bigdecimal", - "bitflags 1.3.2", "byteorder", "bytes", "chrono", "crc", "crossbeam-queue 0.3.8", - "dirs", + "dotenvy", "either", "event-listener", "futures-channel", "futures-core", "futures-intrusive", + "futures-io", "futures-util", "hashlink", "hex", - "hkdf", - "hmac 0.12.1", - "indexmap 1.9.3", + "indexmap 2.1.0", "ipnetwork", - "itoa", - "libc", "log", - "md-5", "memchr", - "num-bigint 0.3.3", + "native-tls", "once_cell", "paste", "percent-encoding", - "rand 0.8.5", + "rust_decimal", "serde", "serde_json", - "sha-1", - "sha2 0.10.6", + "sha2 0.10.8", "smallvec", "sqlformat", - "sqlx-rt", - "stringprep", "thiserror", + "tokio", "tokio-stream", + "tracing", "url", - "whoami", ] [[package]] name = "sqlx-macros" -version = "0.5.13" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "sqlx-core", + "sqlx-macros-core", + "syn 1.0.109", +] + +[[package]] +name = "sqlx-macros-core" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" +checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" dependencies = [ - "dotenv", + "atomic-write-file", + "dotenvy", "either", "heck 0.4.1", "hex", "once_cell", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.8", "sqlx-core", - "sqlx-rt", + "sqlx-mysql", + "sqlx-postgres", + "sqlx-sqlite", "syn 1.0.109", + "tempfile", + "tokio", "url", ] [[package]] -name = "sqlx-rt" -version = "0.5.13" +name = "sqlx-mysql" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +checksum = "e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4" dependencies = [ - "native-tls", + "atoi", + "base64 0.21.5", + "bigdecimal", + "bitflags 2.4.1", + "byteorder", + "bytes", + "chrono", + "crc", + "digest 0.10.7", + "dotenvy", + "either", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "generic-array", + "hex", + "hkdf", + "hmac 0.12.1", + "itoa", + "log", + "md-5", + "memchr", "once_cell", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + "percent-encoding", + "rand 0.8.5", + "rsa", + "rust_decimal", + "serde", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-postgres" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +dependencies = [ + "atoi", + "base64 0.21.5", + "bigdecimal", + "bitflags 2.4.1", + "byteorder", + "chrono", + "crc", + "dotenvy", + "etcetera", + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "hex", + "hkdf", + "hmac 0.12.1", + "home", + "ipnetwork", + "itoa", + "log", + "md-5", + "memchr", + "num-bigint 0.4.4", + "once_cell", + "rand 0.8.5", + "rust_decimal", + "serde", + "serde_json", + "sha1", + "sha2 0.10.8", + "smallvec", + "sqlx-core", + "stringprep", + "thiserror", + "tracing", + "whoami", +] + +[[package]] +name = "sqlx-sqlite" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490" +dependencies = [ + "atoi", + "chrono", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "libsqlite3-sys", + "log", + "percent-encoding", + "serde", + "sqlx-core", + "tracing", + "url", + "urlencoding", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_assertions" @@ -4195,7 +5331,7 @@ checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck 0.3.3", "proc-macro-error", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "syn 1.0.109", ] @@ -4216,7 +5352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "rustversion", "syn 1.0.109", @@ -4236,7 +5372,7 @@ checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ "proc-macro2 0.4.30", "quote 0.6.13", - "unicode-xid", + "unicode-xid 0.1.0", ] [[package]] @@ -4245,46 +5381,76 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.31" +version = "2.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" +checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "sync_vm" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#e819d15b107a06a746299f98bbd9802e26eeb348" +source = "git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3#ed8ab8984cae05d00d9d62196753c8d40df47c7d" dependencies = [ "arrayvec 0.7.4", - "cs_derive", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-sync_vm.git?branch=v1.3.3)", "derivative", - "franklin-crypto", + "franklin-crypto 0.0.5 (git+https://github.com/matter-labs/franklin-crypto?branch=dev)", "hex", - "itertools", + "itertools 0.10.5", "num-bigint 0.4.4", "num-derive 0.3.3", "num-integer", "num-traits", "once_cell", "rand 0.4.6", - "rescue_poseidon", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon)", "serde", - "sha2 0.10.6", - "sha3 0.10.6", "smallvec", - "zk_evm", - "zkevm_opcode_defs", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -4301,35 +5467,45 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.8.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if 1.0.0", "fastrand", - "redox_syscall 0.3.5", + "redox_syscall", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "termcolor" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" dependencies = [ "winapi-util", ] [[package]] name = "test-log" -version = "0.2.12" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +dependencies = [ + "env_logger 0.10.1", + "test-log-macros", +] + +[[package]] +name = "test-log-macros" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9601d162c1d77e62c1ea0bc8116cd1caf143ce3af947536c3c9052a1677fe0c" +checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 1.0.109", + "syn 2.0.40", ] [[package]] @@ -4338,13 +5514,13 @@ version = "0.1.0" dependencies = [ "colored", "hex", + "multivm", "once_cell", "serde", "serde_json", "tracing", "tracing-subscriber", "vlog", - "vm", "zksync_contracts", "zksync_state", "zksync_types", @@ -4362,22 +5538,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -4390,14 +5566,24 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" -version = "0.3.28" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -4405,15 +5591,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4453,32 +5639,32 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.32.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ "backtrace", "bytes", "libc", "mio", "num_cpus", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] @@ -4514,9 +5700,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -4538,7 +5724,18 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", "toml_datetime", "winnow", ] @@ -4551,11 +5748,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if 1.0.0", "log", "pin-project-lite", "tracing-attributes", @@ -4564,20 +5760,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -4585,12 +5781,12 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] @@ -4606,9 +5802,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "matchers", "nu-ansi-term", @@ -4628,21 +5824,21 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee8098afad3fb0c54a9007aab6804558410503ad676d4633f9c2559a00ac0f" +checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -4682,15 +5878,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -4709,9 +5905,9 @@ checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -4719,25 +5915,41 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unicode_categories" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote 1.0.33", + "syn 1.0.109", +] + [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.7.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b11c96ac7ee530603dcdf68ed1557050f374ce55a5a07193ebf8cbc9f8927e9" +checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ - "base64 0.21.3", + "base64 0.21.5", "log", "native-tls", "once_cell", @@ -4746,23 +5958,28 @@ dependencies = [ [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", - "idna", + "idna 0.5.0", "percent-encoding", "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "uuid" -version = "1.4.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" dependencies = [ - "getrandom 0.2.10", "serde", ] @@ -4793,8 +6010,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "vise" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=9d097ab747b037b6e62504df1db5b975425b6bdd#9d097ab747b037b6e62504df1db5b975425b6bdd" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ + "compile-fmt", "elsa", "linkme", "once_cell", @@ -4805,17 +6023,17 @@ dependencies = [ [[package]] name = "vise-macros" version = "0.1.0" -source = "git+https://github.com/matter-labs/vise.git?rev=9d097ab747b037b6e62504df1db5b975425b6bdd#9d097ab747b037b6e62504df1db5b975425b6bdd" +source = "git+https://github.com/matter-labs/vise.git?rev=1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1#1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", ] [[package]] name = "vlog" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "chrono", "sentry", @@ -4824,26 +6042,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "vm" -version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" -dependencies = [ - "anyhow", - "hex", - "itertools", - "once_cell", - "thiserror", - "tracing", - "vise", - "zk_evm", - "zksync_config", - "zksync_contracts", - "zksync_state", - "zksync_types", - "zksync_utils", -] - [[package]] name = "walkdir" version = "2.4.0" @@ -4877,9 +6075,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4887,24 +6085,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.37" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" +checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4914,9 +6112,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote 1.0.33", "wasm-bindgen-macro-support", @@ -4924,28 +6122,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ - "proc-macro2 1.0.66", + "proc-macro2 1.0.70", "quote 1.0.33", - "syn 2.0.31", + "syn 2.0.40", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", @@ -4958,7 +6156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5388522c899d1e1c96a4c307e3797e0f697ba7c77dd8e0e625ecba9dd0342937" dependencies = [ "arrayvec 0.7.4", - "base64 0.21.3", + "base64 0.21.5", "bytes", "derive_more", "ethabi", @@ -4967,11 +6165,11 @@ dependencies = [ "futures-timer", "headers", "hex", - "idna", + "idna 0.4.0", "jsonrpc-core", "log", "once_cell", - "parking_lot 0.12.1", + "parking_lot", "pin-project", "reqwest", "rlp", @@ -4984,19 +6182,27 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.2" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] [[package]] name = "whoami" version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] [[package]] name = "winapi" @@ -5016,9 +6222,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -5030,12 +6236,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -5044,7 +6250,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -5053,13 +6268,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -5068,47 +6298,89 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" dependencies = [ "memchr", ] @@ -5120,7 +6392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ "cfg-if 1.0.0", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -5139,81 +6411,276 @@ dependencies = [ ] [[package]] -name = "zeroize" -version = "1.6.0" +name = "zerocopy" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" +dependencies = [ + "zerocopy-derive", +] [[package]] -name = "zk_evm" -version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3#fe8215a7047d24430ad470cf15a19bedb4d6ba0b" +name = "zerocopy-derive" +version = "0.7.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" dependencies = [ - "anyhow", - "lazy_static", - "num 0.4.1", - "serde", - "serde_json", - "static_assertions", - "zk_evm_abstractions", - "zkevm_opcode_defs", + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", ] [[package]] -name = "zk_evm_abstractions" -version = "0.1.0" -source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#7502a661d7d38906d849dcd3e7a15e5848af6581" +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" dependencies = [ - "anyhow", - "serde", - "static_assertions", - "zkevm_opcode_defs", + "zeroize_derive", ] [[package]] -name = "zkevm-assembly" -version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2#3c61d450cbe6548068be8f313ed02f1bd229a865" +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.70", + "quote 1.0.33", + "syn 2.0.40", +] + +[[package]] +name = "zk_evm" +version = "1.3.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.1-rc2#0a7c775932db4839ff6b7fb0db9bdb3583ab54c0" +dependencies = [ + "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", + "k256 0.11.6", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "sha2 0.10.6", + "sha3 0.10.6", + "static_assertions", + "zkevm_opcode_defs 1.3.1", +] + +[[package]] +name = "zk_evm" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2#fbee20f5bac7d6ca3e22ae69b2077c510a07de4e" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.3.3" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3#fbee20f5bac7d6ca3e22ae69b2077c510a07de4e" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.0#dd76fc5badf2c05278a21b38015a7798fe2fe358" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 0.1.0", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.4.1#6250dbf64b2d14ced87a127735da559f27a432d5" +dependencies = [ + "anyhow", + "lazy_static", + "num 0.4.1", + "serde", + "serde_json", + "static_assertions", + "zk_evm_abstractions 1.4.1", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zk_evm_abstractions" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git#32dd320953841aa78579d9da08abbc70bcaed175" +dependencies = [ + "anyhow", + "num_enum", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zk_evm_abstractions" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zk_evm_abstractions.git?branch=v1.4.1#e3102e53fd2193bde9ecb5eba91efd7b8fb11ba9" dependencies = [ - "env_logger", + "anyhow", + "num_enum", + "serde", + "static_assertions", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2#3c61d450cbe6548068be8f313ed02f1bd229a865" +dependencies = [ + "env_logger 0.9.3", "hex", "lazy_static", "log", "nom", "num-bigint 0.4.4", "num-traits", - "sha3 0.10.6", + "sha3 0.10.8", + "smallvec", + "structopt", + "thiserror", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zkevm-assembly" +version = "1.3.2" +source = "git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1#50282016d01bd2fd147021dd558209778db2268b" +dependencies = [ + "env_logger 0.9.3", + "hex", + "lazy_static", + "log", + "nom", + "num-bigint 0.4.4", + "num-traits", + "sha3 0.10.8", "smallvec", "structopt", "thiserror", - "zkevm_opcode_defs", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm_circuits" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=main#fb3e2574b5c890342518fc930c145443f039a105" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.3.2", +] + +[[package]] +name = "zkevm_circuits" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_circuits.git?branch=v1.4.1#5076a9a8cd775c8f7a84507a02af1e2350e3679d" +dependencies = [ + "arrayvec 0.7.4", + "bincode", + "boojum", + "cs_derive 0.1.0 (git+https://github.com/matter-labs/era-boojum.git?branch=main)", + "derivative", + "hex", + "itertools 0.10.5", + "rand 0.4.6", + "rand 0.8.5", + "seq-macro", + "serde", + "serde_json", + "smallvec", + "zkevm_opcode_defs 1.4.1", +] + +[[package]] +name = "zkevm_opcode_defs" +version = "1.3.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.1#00d4ad2292bd55374a0fa10fe11686d7a109d8a0" +dependencies = [ + "bitflags 1.3.2", + "ethereum-types 0.14.1", + "lazy_static", + "sha2 0.10.8", ] [[package]] name = "zkevm_opcode_defs" version = "1.3.2" -source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#c7ab62f4c60b27dfc690c3ab3efb5fff1ded1a25" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.3.2#dffacadeccdfdbff4bc124d44c595c4a6eae5013" dependencies = [ - "bitflags 2.4.0", - "blake2 0.10.6", + "bitflags 2.4.1", + "blake2 0.10.6 (git+https://github.com/RustCrypto/hashes.git?rev=1f727ce37ff40fa0cce84eb8543a45bdd3ca4a4e)", "ethereum-types 0.14.1", - "k256", + "k256 0.11.6", "lazy_static", "sha2 0.10.6", "sha3 0.10.6", ] +[[package]] +name = "zkevm_opcode_defs" +version = "1.4.1" +source = "git+https://github.com/matter-labs/era-zkevm_opcode_defs.git?branch=v1.4.1#ba8228ff0582d21f64d6a319d50d0aec48e9e7b6" +dependencies = [ + "bitflags 2.4.1", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ethereum-types 0.14.1", + "k256 0.13.3", + "lazy_static", + "sha2 0.10.8", + "sha3 0.10.8", +] + [[package]] name = "zkevm_test_harness" version = "1.3.3" -source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.3.3#5fe3b73dba7c98e724358428ae10723c4758dfb5" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.3.3#d52b56d6ba8196c8a3c74c4933654469e6f27a5a" dependencies = [ "bincode", "circuit_testing", "codegen 0.2.0", "crossbeam 0.8.2", "derivative", - "env_logger", + "env_logger 0.10.1", "hex", "num-bigint 0.4.4", "num-integer", @@ -5226,14 +6693,66 @@ dependencies = [ "sync_vm", "test-log", "tracing", - "zk_evm", - "zkevm-assembly", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?branch=v1.3.3)", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0#fb47657ae3b6ff6e4bb5199964d3d37212978200" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.0)", + "codegen 0.2.0", + "crossbeam 0.8.2", + "derivative", + "env_logger 0.10.1", + "hex", + "rand 0.4.6", + "rayon", + "serde", + "serde_json", + "smallvec", + "structopt", + "test-log", + "tracing", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.3.2)", +] + +[[package]] +name = "zkevm_test_harness" +version = "1.4.0" +source = "git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1#6db7c01717d157945f0f2939119dbd8a170de6bc" +dependencies = [ + "bincode", + "circuit_definitions 0.1.0 (git+https://github.com/matter-labs/era-zkevm_test_harness.git?branch=v1.4.1)", + "codegen 0.2.0", + "crossbeam 0.8.2", + "curl", + "derivative", + "env_logger 0.10.1", + "hex", + "lazy_static", + "rand 0.4.6", + "rayon", + "reqwest", + "rescue_poseidon 0.4.1 (git+https://github.com/matter-labs/rescue-poseidon.git?branch=poseidon2)", + "serde", + "serde_json", + "smallvec", + "snark_wrapper", + "structopt", + "test-log", + "tracing", + "walkdir", + "zkevm-assembly 1.3.2 (git+https://github.com/matter-labs/era-zkEVM-assembly.git?branch=v1.4.1)", ] [[package]] name = "zksync_basic_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "serde", "serde_json", @@ -5241,28 +6760,101 @@ dependencies = [ ] [[package]] -name = "zksync_config" +name = "zksync_concurrency" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" dependencies = [ "anyhow", - "bigdecimal", - "envy", - "hex", - "num 0.3.1", "once_cell", + "pin-project", + "rand 0.8.5", + "sha3 0.10.8", + "thiserror", + "time", + "tokio", + "tracing", + "tracing-subscriber", + "vise", +] + +[[package]] +name = "zksync_config" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", "serde", - "serde_json", - "url", "zksync_basic_types", - "zksync_contracts", - "zksync_utils", +] + +[[package]] +name = "zksync_consensus_crypto" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "blst", + "ed25519-dalek", + "ff_ce", + "hex", + "pairing_ce 0.28.5 (git+https://github.com/matter-labs/pairing.git?rev=f55393fd366596eac792d78525d26e9c4d6ed1ca)", + "rand 0.4.6", + "rand 0.8.5", + "sha3 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "zksync_consensus_roles" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "bit-vec", + "hex", + "prost", + "rand 0.8.5", + "serde", + "thiserror", + "tracing", + "zksync_concurrency", + "zksync_consensus_crypto", + "zksync_consensus_utils", + "zksync_protobuf", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_consensus_storage" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "async-trait", + "prost", + "rand 0.8.5", + "thiserror", + "tracing", + "zksync_concurrency", + "zksync_consensus_roles", + "zksync_protobuf", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_consensus_utils" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "thiserror", + "zksync_concurrency", ] [[package]] name = "zksync_contracts" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "envy", "ethabi", @@ -5276,10 +6868,10 @@ dependencies = [ [[package]] name = "zksync_crypto" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "base64 0.13.1", - "blake2 0.10.6", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "hex", "once_cell", "serde", @@ -5291,15 +6883,17 @@ dependencies = [ [[package]] name = "zksync_dal" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", "bigdecimal", "bincode", "hex", - "itertools", - "num 0.3.1", + "itertools 0.10.5", + "num 0.4.1", "once_cell", + "prost", + "rand 0.8.5", "serde", "serde_json", "sqlx", @@ -5307,10 +6901,15 @@ dependencies = [ "thiserror", "tokio", "tracing", + "url", "vise", - "zksync_config", + "zksync_consensus_roles", + "zksync_consensus_storage", "zksync_contracts", "zksync_health_check", + "zksync_protobuf", + "zksync_protobuf_build", + "zksync_system_constants", "zksync_types", "zksync_utils", ] @@ -5318,7 +6917,7 @@ dependencies = [ [[package]] name = "zksync_health_check" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "async-trait", "futures", @@ -5331,20 +6930,54 @@ dependencies = [ [[package]] name = "zksync_mini_merkle_tree" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "once_cell", "zksync_basic_types", "zksync_crypto", ] +[[package]] +name = "zksync_protobuf" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "bit-vec", + "once_cell", + "prost", + "prost-reflect", + "quick-protobuf", + "rand 0.8.5", + "serde", + "serde_json", + "zksync_concurrency", + "zksync_protobuf_build", +] + +[[package]] +name = "zksync_protobuf_build" +version = "0.1.0" +source = "git+https://github.com/matter-labs/era-consensus.git?rev=84cdd9e45fd84bc1fac0b394c899ae33aef91afa#84cdd9e45fd84bc1fac0b394c899ae33aef91afa" +dependencies = [ + "anyhow", + "heck 0.4.1", + "prettyplease", + "proc-macro2 1.0.70", + "prost-build", + "prost-reflect", + "protox", + "quote 1.0.33", + "syn 2.0.40", +] + [[package]] name = "zksync_state" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", - "metrics", + "itertools 0.10.5", "mini-moka", "tokio", "tracing", @@ -5358,7 +6991,7 @@ dependencies = [ [[package]] name = "zksync_storage" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "num_cpus", "once_cell", @@ -5367,52 +7000,79 @@ dependencies = [ "vise", ] +[[package]] +name = "zksync_system_constants" +version = "0.1.0" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" +dependencies = [ + "anyhow", + "bigdecimal", + "hex", + "num 0.3.1", + "once_cell", + "serde", + "serde_json", + "url", + "zksync_basic_types", + "zksync_contracts", + "zksync_utils", +] + [[package]] name = "zksync_types" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ - "blake2 0.10.6", + "anyhow", + "blake2 0.10.6 (registry+https://github.com/rust-lang/crates.io-index)", "chrono", "codegen 0.1.0", "ethereum-types 0.12.1", - "num 0.3.1", + "hex", + "num 0.4.1", "num_enum", "once_cell", "parity-crypto", + "prost", "rlp", "serde", "serde_json", "serde_with", "strum", "thiserror", - "zk_evm", - "zkevm_test_harness", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", + "zk_evm 1.4.0", + "zk_evm 1.4.1", + "zkevm_test_harness 1.3.3", "zksync_basic_types", "zksync_config", + "zksync_consensus_roles", "zksync_contracts", "zksync_mini_merkle_tree", + "zksync_protobuf", + "zksync_protobuf_build", + "zksync_system_constants", "zksync_utils", ] [[package]] name = "zksync_utils" version = "0.1.0" -source = "git+https://github.com/matter-labs/zksync-era.git?branch=boojum-integration#d2ca29bf20b4ec2d9ec9e327b4ba6b281d9793de" +source = "git+https://github.com/matter-labs/zksync-era.git?branch=sb-short-term-fee-model-1-4-1#f938464fb8a9e2b03685a8ca957ed950deecef52" dependencies = [ "anyhow", "bigdecimal", "futures", "hex", - "itertools", + "itertools 0.10.5", "metrics", - "num 0.3.1", + "num 0.4.1", "reqwest", "serde", "thiserror", "tokio", "tracing", "vlog", - "zk_evm", + "zk_evm 1.3.3 (git+https://github.com/matter-labs/era-zk_evm.git?tag=v1.3.3-rc2)", "zksync_basic_types", ] diff --git a/etc/system-contracts/bootloader/test_infra/Cargo.toml b/etc/system-contracts/bootloader/test_infra/Cargo.toml index e78bcf65..8b69090c 100644 --- a/etc/system-contracts/bootloader/test_infra/Cargo.toml +++ b/etc/system-contracts/bootloader/test_infra/Cargo.toml @@ -7,12 +7,12 @@ edition = "2021" [dependencies] -vm = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } -vlog = { git = "https://github.com/matter-labs/zksync-era.git", branch = "boojum-integration" } +multivm = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_types = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_contracts = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_utils = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +zksync_state = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } +vlog = { git = "https://github.com/matter-labs/zksync-era.git", branch = "sb-short-term-fee-model-1-4-1" } colored = "2.0" hex = "0.4" diff --git a/etc/system-contracts/bootloader/test_infra/rust-toolchain b/etc/system-contracts/bootloader/test_infra/rust-toolchain new file mode 100644 index 00000000..9a87fb21 --- /dev/null +++ b/etc/system-contracts/bootloader/test_infra/rust-toolchain @@ -0,0 +1 @@ +nightly-2023-08-21 diff --git a/etc/system-contracts/bootloader/test_infra/src/hook.rs b/etc/system-contracts/bootloader/test_infra/src/hook.rs index 1cb23ddf..e346ecf0 100644 --- a/etc/system-contracts/bootloader/test_infra/src/hook.rs +++ b/etc/system-contracts/bootloader/test_infra/src/hook.rs @@ -1,16 +1,15 @@ -use vm::{ +use multivm::vm_latest::{ constants::{BOOTLOADER_HEAP_PAGE, VM_HOOK_PARAMS_START_POSITION}, HistoryMode, SimpleMemory, }; -use zksync_types::{ - zkevm_test_harness::zk_evm::{ - aux_structures::MemoryPage, - tracing::{BeforeExecutionData, VmLocalStateData}, - zkevm_opcode_defs::{FatPointer, Opcode, UMAOpcode}, - }, - U256, +use multivm::zk_evm_1_4_1::{ + aux_structures::MemoryPage, + tracing::{BeforeExecutionData, VmLocalStateData}, + zkevm_opcode_defs::{FatPointer, Opcode, UMAOpcode}, }; + +use zksync_types::U256; use zksync_utils::u256_to_h256; #[derive(Clone, Debug)] diff --git a/etc/system-contracts/bootloader/test_infra/src/main.rs b/etc/system-contracts/bootloader/test_infra/src/main.rs index c91a8198..0c08a0da 100644 --- a/etc/system-contracts/bootloader/test_infra/src/main.rs +++ b/etc/system-contracts/bootloader/test_infra/src/main.rs @@ -1,15 +1,18 @@ use crate::{test_count_tracer::TestCountTracer, tracer::BootloaderTestTracer}; use colored::Colorize; +use multivm::interface::{ + L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, VmExecutionMode, VmInterface, +}; +use multivm::vm_latest::{HistoryDisabled, ToTracerPointer, Vm}; use once_cell::sync::OnceCell; +use zksync_types::fee_model::BatchFeeInput; use std::process; + +use multivm::interface::{ExecutionResult, Halt}; use std::{env, sync::Arc}; use tracing_subscriber::fmt; use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; -use vm::{ - HistoryDisabled, L1BatchEnv, L2BlockEnv, SystemEnv, TxExecutionMode, Vm, VmExecutionMode, - VmTracer, -}; use zksync_contracts::{ read_zbin_bytecode, BaseSystemContracts, ContractLanguage, SystemContractCode, SystemContractsRepo, @@ -18,7 +21,7 @@ use zksync_state::{ InMemoryStorage, StoragePtr, StorageView, IN_MEMORY_STORAGE_DEFAULT_NETWORK_ID, }; use zksync_types::system_contracts::get_system_smart_contracts_from_dir; -use zksync_types::{block::legacy_miniblock_hash, Address, L1BatchNumber, MiniblockNumber, U256}; +use zksync_types::{block::MiniblockHasher, Address, L1BatchNumber, MiniblockNumber, U256}; use zksync_types::{L2ChainId, Transaction}; use zksync_utils::bytecode::hash_bytecode; use zksync_utils::{bytes_to_be_words, u256_to_h256}; @@ -31,7 +34,7 @@ mod tracer; fn execute_internal_bootloader_test() { let test_location = env::current_dir() .unwrap() - .join("../build/artifacts/bootloader_test.yul/bootloader_test.yul.zbin"); + .join("../build/artifacts/bootloader_test.yul.zbin"); println!("Current dir is {:?}", test_location); let bytecode = read_zbin_bytecode(test_location.as_path()); let hash = hash_bytecode(&bytecode); @@ -70,15 +73,14 @@ fn execute_internal_bootloader_test() { previous_batch_hash: None, number: L1BatchNumber::from(1), timestamp: 14, - l1_gas_price: 250_000_000, - fair_l2_gas_price: 250_000_000, + fee_input: BatchFeeInput::sensible_l1_pegged_default(), fee_account: Address::default(), enforced_base_fee: None, first_l2_block: L2BlockEnv { number: 1, timestamp: 15, - prev_block_hash: legacy_miniblock_hash(MiniblockNumber(0)), + prev_block_hash: MiniblockHasher::legacy_hash(MiniblockNumber(0)), max_virtual_blocks_to_create: 1, }, }; @@ -91,22 +93,17 @@ fn execute_internal_bootloader_test() { hash_bytecode, get_system_smart_contracts_from_dir(env::current_dir().unwrap().join("../../")), )) - .into_rc_ptr(); + .to_rc_ptr(); - let mut vm = Vm::new( - l1_batch_env.clone(), - system_env.clone(), - storage.clone(), - HistoryDisabled, - ); + let mut vm: Vm<_, HistoryDisabled> = + Vm::new(l1_batch_env.clone(), system_env.clone(), storage.clone()); let test_count = Arc::new(OnceCell::default()); - let custom_tracers = vec![Box::new(TestCountTracer::new(test_count.clone())) - as Box, HistoryDisabled>>]; + let custom_tracers = TestCountTracer::new(test_count.clone()).into_tracer_pointer(); // We're using a TestCountTracer (and passing 0 as fee account) - this should cause the bootloader // test framework to report number of tests via VM hook. - vm.inspect(custom_tracers, VmExecutionMode::Bootloader); + vm.inspect(custom_tracers.into(), VmExecutionMode::Bootloader); test_count.get().unwrap().clone() }; @@ -124,40 +121,82 @@ fn execute_internal_bootloader_test() { hash_bytecode, get_system_smart_contracts_from_dir(env::current_dir().unwrap().join("../../")), )) - .into_rc_ptr(); + .to_rc_ptr(); // We are passing id of the test in location (0) where we normally put the operator. // This is then picked up by the testing framework. l1_batch_env.fee_account = zksync_types::H160::from(u256_to_h256(U256::from(test_id))); - let mut vm = Vm::new( - l1_batch_env.clone(), - system_env.clone(), - storage.clone(), - HistoryDisabled, - ); + let mut vm: Vm<_, HistoryDisabled> = + Vm::new(l1_batch_env.clone(), system_env.clone(), storage.clone()); let test_result = Arc::new(OnceCell::default()); + let requested_assert = Arc::new(OnceCell::default()); + let test_name = Arc::new(OnceCell::default()); - let custom_tracers = vec![Box::new(BootloaderTestTracer::new(test_result.clone())) - as Box, HistoryDisabled>>]; + let custom_tracers = BootloaderTestTracer::new( + test_result.clone(), + requested_assert.clone(), + test_name.clone(), + ) + .into_tracer_pointer(); // Let's insert transactions into slots. They are not executed, but the tests can run functions against them. let json_str = include_str!("test_transactions/0.json"); let tx: Transaction = serde_json::from_str(json_str).unwrap(); vm.push_transaction(tx); - vm.inspect(custom_tracers, VmExecutionMode::Bootloader); + let result = vm.inspect(custom_tracers.into(), VmExecutionMode::Bootloader); + let mut test_result = Arc::into_inner(test_result).unwrap().into_inner(); + let requested_assert = Arc::into_inner(requested_assert).unwrap().into_inner(); + let test_name = Arc::into_inner(test_name) + .unwrap() + .into_inner() + .unwrap_or_default(); + + if test_result.is_none() { + test_result = Some(if let Some(requested_assert) = requested_assert { + match &result.result { + ExecutionResult::Success { .. } => Err(format!( + "Should have failed with {}, but run succesfully.", + requested_assert + )), + ExecutionResult::Revert { output } => Err(format!( + "Should have failed with {}, but run reverted with {}.", + requested_assert, + output.to_user_friendly_string() + )), + ExecutionResult::Halt { reason } => { + if let Halt::UnexpectedVMBehavior(reason) = reason { + let reason = reason.strip_prefix("Assertion error: ").unwrap(); + if reason == requested_assert { + Ok(()) + } else { + Err(format!( + "Should have failed with `{}`, but failed with different assert `{}`", + requested_assert, reason + )) + } + } else { + Err(format!( + "Should have failed with `{}`, but halted with`{}`", + requested_assert, reason + )) + } + } + } + } else { + match &result.result { + ExecutionResult::Success { .. } => Ok(()), + ExecutionResult::Revert { output } => Err(output.to_user_friendly_string()), + ExecutionResult::Halt { reason } => Err(reason.to_string()), + } + }); + } - let test_result = test_result.get().unwrap(); - match &test_result.result { - Ok(_) => println!("{} {}", "[PASS]".green(), test_result.test_name), + match &test_result.unwrap() { + Ok(_) => println!("{} {}", "[PASS]".green(), test_name), Err(error_info) => { tests_failed += 1; - println!( - "{} {} {}", - "[FAIL]".red(), - test_result.test_name, - error_info - ) + println!("{} {} {}", "[FAIL]".red(), test_name, error_info) } } } diff --git a/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs b/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs index 7e5adc5a..bb3f9ef8 100644 --- a/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs +++ b/etc/system-contracts/bootloader/test_infra/src/test_count_tracer.rs @@ -1,12 +1,10 @@ use std::sync::Arc; +use multivm::interface::dyn_tracers::vm_1_4_1::DynTracer; +use multivm::vm_latest::{HistoryMode, SimpleMemory, VmTracer}; +use multivm::zk_evm_1_4_1::tracing::{BeforeExecutionData, VmLocalStateData}; use once_cell::sync::OnceCell; -use vm::{ - DynTracer, ExecutionEndTracer, ExecutionProcessing, HistoryMode, SimpleMemory, - VmExecutionResultAndLogs, VmTracer, -}; use zksync_state::{StoragePtr, WriteStorage}; -use zksync_types::zkevm_test_harness::zk_evm::tracing::{BeforeExecutionData, VmLocalStateData}; use crate::hook::TestVmHook; @@ -25,7 +23,7 @@ impl TestCountTracer { } } -impl DynTracer for TestCountTracer { +impl DynTracer> for TestCountTracer { fn before_execution( &mut self, state: VmLocalStateData<'_>, @@ -41,10 +39,4 @@ impl DynTracer for TestCountTracer { } } -impl ExecutionEndTracer for TestCountTracer {} - -impl ExecutionProcessing for TestCountTracer {} - -impl VmTracer for TestCountTracer { - fn save_results(&mut self, _result: &mut VmExecutionResultAndLogs) {} -} +impl VmTracer for TestCountTracer {} diff --git a/etc/system-contracts/bootloader/test_infra/src/tracer.rs b/etc/system-contracts/bootloader/test_infra/src/tracer.rs index 942389f2..e0e0022d 100644 --- a/etc/system-contracts/bootloader/test_infra/src/tracer.rs +++ b/etc/system-contracts/bootloader/test_infra/src/tracer.rs @@ -1,45 +1,45 @@ use std::sync::Arc; use colored::Colorize; - use once_cell::sync::OnceCell; -use vm::{ - DynTracer, ExecutionEndTracer, ExecutionProcessing, Halt, HistoryMode, SimpleMemory, - TracerExecutionStatus, TracerExecutionStopReason, VmExecutionResultAndLogs, VmTracer, + +use multivm::interface::{ + dyn_tracers::vm_1_4_1::DynTracer, + tracer::{TracerExecutionStatus, TracerExecutionStopReason}, }; +use multivm::vm_latest::{BootloaderState, HistoryMode, SimpleMemory, VmTracer, ZkSyncVmState}; +use multivm::zk_evm_1_4_1::tracing::{BeforeExecutionData, VmLocalStateData}; + use zksync_state::{StoragePtr, WriteStorage}; -use zksync_types::zkevm_test_harness::zk_evm::tracing::{BeforeExecutionData, VmLocalStateData}; use crate::hook::TestVmHook; -#[derive(Debug)] -pub struct TestResult { - pub test_name: String, - pub result: Result<(), String>, -} - /// Bootloader test tracer that is executing while the bootloader tests are running. /// It can check the assers, return information about the running tests (and amount of tests) etc. pub struct BootloaderTestTracer { /// Set if the currently running test has failed. - test_result: Arc>, + test_result: Arc>>, /// Set, if the currently running test should fail with a given assert. - requested_assert: Option, + requested_assert: Arc>, - test_name: Option, + test_name: Arc>, } impl BootloaderTestTracer { - pub fn new(test_result: Arc>) -> Self { + pub fn new( + test_result: Arc>>, + requested_assert: Arc>, + test_name: Arc>, + ) -> Self { BootloaderTestTracer { test_result, - requested_assert: None, - test_name: None, + requested_assert, + test_name, } } } -impl DynTracer for BootloaderTestTracer { +impl DynTracer> for BootloaderTestTracer { fn before_execution( &mut self, state: VmLocalStateData<'_>, @@ -55,84 +55,30 @@ impl DynTracer for BootloaderTestTracer { if let TestVmHook::AssertEqFailed(a, b, msg) = &hook { let result = format!("Assert failed: {} is not equal to {}: {}", a, b, msg); - self.test_result - .set(TestResult { - test_name: self.test_name.clone().unwrap_or("".to_owned()), - result: Err(result.clone()), - }) - .unwrap(); + self.test_result.set(Err(result.clone())).unwrap(); } if let TestVmHook::RequestedAssert(requested_assert) = &hook { - self.requested_assert = Some(requested_assert.clone()) + let _ = self.requested_assert.set(requested_assert.clone()); } if let TestVmHook::TestStart(test_name) = &hook { - self.test_name = Some(test_name.clone()); + self.test_name + .set(test_name.clone()) + .expect("Test already started"); } } } -impl ExecutionEndTracer for BootloaderTestTracer { - fn should_stop_execution(&self) -> TracerExecutionStatus { - if let Some(TestResult { - test_name: _, - result: Err(_), - }) = self.test_result.get() - { - return TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish); - } - return TracerExecutionStatus::Continue; - } -} - -impl ExecutionProcessing for BootloaderTestTracer {} - impl VmTracer for BootloaderTestTracer { - fn save_results(&mut self, result: &mut VmExecutionResultAndLogs) { - let r = if let Some(requested_assert) = &self.requested_assert { - match &result.result { - vm::ExecutionResult::Success { .. } => Err(format!( - "Should have failed with {}, but run succesfully.", - requested_assert - )), - vm::ExecutionResult::Revert { output } => Err(format!( - "Should have failed with {}, but run reverted with {}.", - requested_assert, - output.to_user_friendly_string() - )), - vm::ExecutionResult::Halt { reason } => { - if let Halt::UnexpectedVMBehavior(reason) = reason { - let reason = reason.strip_prefix("Assertion error: ").unwrap(); - if reason == requested_assert { - Ok(()) - } else { - Err(format!( - "Should have failed with `{}`, but failed with different assert `{}`", - requested_assert, reason - )) - } - } else { - Err(format!( - "Should have failed with `{}`, but halted with`{}`", - requested_assert, reason - )) - } - } - } + fn finish_cycle( + &mut self, + _state: &mut ZkSyncVmState, + _bootloader_state: &mut BootloaderState, + ) -> TracerExecutionStatus { + if let Some(Err(_)) = self.test_result.get() { + TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish) } else { - match &result.result { - vm::ExecutionResult::Success { .. } => Ok(()), - vm::ExecutionResult::Revert { output } => Err(output.to_user_friendly_string()), - vm::ExecutionResult::Halt { reason } => Err(reason.to_string()), - } - }; - if self.test_result.get().is_none() { - self.test_result - .set(TestResult { - test_name: self.test_name.clone().unwrap_or("".to_owned()), - result: r, - }) - .unwrap(); + TracerExecutionStatus::Continue } } } diff --git a/etc/system-contracts/bootloader/tests/README.md b/etc/system-contracts/bootloader/tests/README.md index 31acb0ec..0b5f7992 100644 --- a/etc/system-contracts/bootloader/tests/README.md +++ b/etc/system-contracts/bootloader/tests/README.md @@ -13,7 +13,7 @@ Please put bootloader unittests in `bootloader/bootloader_test.yul` file, and an To execute tests, you should first run yarn to prepare the source code: ```shell -yarn preprocess && yarn compile-yul +yarn build-yul ``` And then run the test framework: diff --git a/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul b/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul index cd41c45d..114f5e04 100644 --- a/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul +++ b/etc/system-contracts/bootloader/tests/bootloader/bootloader_test.yul @@ -50,3 +50,51 @@ function TEST_simple_transaction() { let innerTxDataOffset := add(txDataOffset, 0x20) testing_assertEq(getGasPerPubdataByteLimit(innerTxDataOffset), 0xc350, "Invalid pubdata limit") } + +function TEST_getTransactionUpfrontOverhead() { + // For very large transactions it should be proportional to the memory, + // but for small ones, the transaction slots are more important + + let smallTxOverhead := getTransactionUpfrontOverhead(32) + let largeTxOverhead := getTransactionUpfrontOverhead(1000000) + + testing_assertEq(smallTxOverhead, TX_SLOT_OVERHEAD_GAS(), "Invalid small tx overhead") + testing_assertEq(largeTxOverhead, mul(1000000, MEMORY_OVERHEAD_GAS()), "Invalid small tx overhead") +} + +function TEST_getFeeParams_HighPubdataPrice() { + // Under very large L1 gas price, the L2 base fee will start rising to ensure the + // boundary on the gasLimit + + // 15k gwei L1 pubdata price + let veryHighL1PubdataPrice := 15000000000000 + // 0.1 gwei L2 base fee + let l2GasPrice := 100000000 + + let baseFee, gasPricePerPubdata := getFeeParams( + veryHighL1PubdataPrice, + // 0.1 gwei L2 base fee + l2GasPrice + ) + + testing_assertEq(baseFee, div(veryHighL1PubdataPrice, MAX_L2_GAS_PER_PUBDATA()), "Invalid base fee") + testing_assertEq(gasPricePerPubdata, MAX_L2_GAS_PER_PUBDATA(), "Invalid gasPricePerPubdata") +} + +function TEST_getFeeParams_LowPubdataPrice() { + // Under low to medium pubdata price, the baseFee is equal to the fair gas price, + // while the gas per pubdata pubdata is derived by strict division + + // 0.2 gwei L1 pubdata price + let veryLowL1GasPrice := 200000000 + // 0.1 gwei L2 base fee + let l2GasPrice := 100000000 + + let baseFee, gasPricePerPubdata := getFeeParams( + veryLowL1GasPrice, + l2GasPrice + ) + + testing_assertEq(baseFee, l2GasPrice, "Invalid base fee") + testing_assertEq(gasPricePerPubdata, div(veryLowL1GasPrice, l2GasPrice), "Invalid gasPricePerPubdata") +} diff --git a/etc/system-contracts/bootloader/tests/utils/test_utils.yul b/etc/system-contracts/bootloader/tests/utils/test_utils.yul index 561a4679..1d2e3e65 100644 --- a/etc/system-contracts/bootloader/tests/utils/test_utils.yul +++ b/etc/system-contracts/bootloader/tests/utils/test_utils.yul @@ -10,42 +10,42 @@ function TEST_HOOK_PARAMS_OFFSET() -> ret { } function setTestHook(hook) { - mstore(TEST_HOOK_PTR(), unoptimized(hook)) + mstore(TEST_HOOK_PTR(), $llvm_NoInline_llvm$_unoptimized(hook)) } function storeTestHookParam(paramId, value) { let offset := add(TEST_HOOK_PARAMS_OFFSET(), mul(32, paramId)) - mstore(offset, unoptimized(value)) + mstore(offset, $llvm_NoInline_llvm$_unoptimized(value)) } function testing_log(msg, data) { - storeTestHookParam(0, nonOptimized(msg)) - storeTestHookParam(1, nonOptimized(data)) - setTestHook(nonOptimized(100)) + storeTestHookParam(0, msg) + storeTestHookParam(1, data) + setTestHook(100) } function testing_start(test_name) { - storeTestHookParam(0, nonOptimized(test_name)) - setTestHook(nonOptimized(104)) + storeTestHookParam(0, test_name) + setTestHook(104) } function testing_assertEq(a, b, message) { if iszero(eq(a, b)) { - storeTestHookParam(0, nonOptimized(a)) - storeTestHookParam(1, nonOptimized(b)) - storeTestHookParam(2, nonOptimized(message)) - setTestHook(nonOptimized(101)) + storeTestHookParam(0, a) + storeTestHookParam(1, b) + storeTestHookParam(2, message) + setTestHook(101) } } function testing_testWillFailWith(message) { - storeTestHookParam(0, unoptimized(message)) - setTestHook(nonOptimized(102)) + storeTestHookParam(0, $llvm_NoInline_llvm$_unoptimized(message)) + setTestHook(102) } function testing_totalTests(tests) { - storeTestHookParam(0, unoptimized(tests)) - setTestHook(nonOptimized(103)) + storeTestHookParam(0, $llvm_NoInline_llvm$_unoptimized(tests)) + setTestHook(103) } // Returns txDataOffset for the index transaction. diff --git a/etc/system-contracts/contracts/BootloaderUtilities.sol b/etc/system-contracts/contracts/BootloaderUtilities.sol index 49467bdc..71f6b0e6 100644 --- a/etc/system-contracts/contracts/BootloaderUtilities.sol +++ b/etc/system-contracts/contracts/BootloaderUtilities.sol @@ -2,10 +2,10 @@ pragma solidity 0.8.20; -import "./interfaces/IBootloaderUtilities.sol"; -import "./libraries/TransactionHelper.sol"; -import "./libraries/RLPEncoder.sol"; -import "./libraries/EfficientCall.sol"; +import {IBootloaderUtilities} from "./interfaces/IBootloaderUtilities.sol"; +import {Transaction, TransactionHelper, EIP_712_TX_TYPE, LEGACY_TX_TYPE, EIP_2930_TX_TYPE, EIP_1559_TX_TYPE} from "./libraries/TransactionHelper.sol"; +import {RLPEncoder} from "./libraries/RLPEncoder.sol"; +import {EfficientCall} from "./libraries/EfficientCall.sol"; /** * @author Matter Labs diff --git a/etc/system-contracts/contracts/Constants.sol b/etc/system-contracts/contracts/Constants.sol index f0896710..4eeca364 100644 --- a/etc/system-contracts/contracts/Constants.sol +++ b/etc/system-contracts/contracts/Constants.sol @@ -16,7 +16,7 @@ import {IBootloaderUtilities} from "./interfaces/IBootloaderUtilities.sol"; /// @dev All the system contracts introduced by zkSync have their addresses /// started from 2^15 in order to avoid collision with Ethereum precompiles. -uint160 constant SYSTEM_CONTRACTS_OFFSET = 0x8000; // 2^15 +uint160 constant SYSTEM_CONTRACTS_OFFSET = {{SYSTEM_CONTRACTS_OFFSET}}; // 2^15 /// @dev All the system contracts must be located in the kernel space, /// i.e. their addresses must be below 2^16. @@ -51,12 +51,16 @@ address constant MSG_VALUE_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0 IEthToken constant ETH_TOKEN_SYSTEM_CONTRACT = IEthToken(address(SYSTEM_CONTRACTS_OFFSET + 0x0a)); -address constant KECCAK256_SYSTEM_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x10); +// Hardcoded because even for tests we should keep the address. (Instead `SYSTEM_CONTRACTS_OFFSET + 0x10`) +// Precompile call depends on it. +// And we don't want to mock this contract. +address constant KECCAK256_SYSTEM_CONTRACT = address(0x8010); ISystemContext constant SYSTEM_CONTEXT_CONTRACT = ISystemContext(payable(address(SYSTEM_CONTRACTS_OFFSET + 0x0b))); IBootloaderUtilities constant BOOTLOADER_UTILITIES = IBootloaderUtilities(address(SYSTEM_CONTRACTS_OFFSET + 0x0c)); +// It will be a different value for tests, while shouldn't. But for now, this constant is not used by other contracts, so that's fine. address constant EVENT_WRITER_CONTRACT = address(SYSTEM_CONTRACTS_OFFSET + 0x0d); ICompressor constant COMPRESSOR_CONTRACT = ICompressor(address(SYSTEM_CONTRACTS_OFFSET + 0x0e)); diff --git a/etc/system-contracts/contracts/ContractDeployer.sol b/etc/system-contracts/contracts/ContractDeployer.sol index 50af9742..73a58a78 100644 --- a/etc/system-contracts/contracts/ContractDeployer.sol +++ b/etc/system-contracts/contracts/ContractDeployer.sol @@ -236,13 +236,14 @@ contract ContractDeployer is IContractDeployer, ISystemContract { ); } - /// @notice The method that is temporarily needed to upgrade the Keccak256 precompile. It is to be removed in the - /// future. Unlike a normal forced deployment, it does not update account information as it requires updating a - /// mapping, and so requires Keccak256 precompile to work already. + /// @notice The method that is temporarily needed to upgrade the Keccak256 precompile. This function and `Bootloader:upgradeKeccakIfNeeded` + /// are to be removed once the upgrade is complete. Unlike a normal forced deployment, it does not update account information as it requires + /// updating a mapping, and so requires Keccak256 precompile to work already. /// @dev This method expects the sender (FORCE_DEPLOYER) to provide the correct bytecode hash for the Keccak256 /// precompile. function forceDeployKeccak256(bytes32 _keccak256BytecodeHash) external payable onlyCallFrom(FORCE_DEPLOYER) { _ensureBytecodeIsKnown(_keccak256BytecodeHash); + _constructContract( msg.sender, address(KECCAK256_SYSTEM_CONTRACT), diff --git a/etc/system-contracts/contracts/ImmutableSimulator.sol b/etc/system-contracts/contracts/ImmutableSimulator.sol index a018c92a..2d077316 100644 --- a/etc/system-contracts/contracts/ImmutableSimulator.sol +++ b/etc/system-contracts/contracts/ImmutableSimulator.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.20; -import "./interfaces/IImmutableSimulator.sol"; +import {IImmutableSimulator, ImmutableData} from "./interfaces/IImmutableSimulator.sol"; import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; /** @@ -18,7 +18,7 @@ import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; contract ImmutableSimulator is IImmutableSimulator { /// @dev mapping (contract address) => (index of immutable variable) => value /// @notice that address uses `uint256` type to leave the option to introduce 32-byte address space in future. - mapping(uint256 => mapping(uint256 => bytes32)) internal immutableDataStorage; + mapping(uint256 contractAddress => mapping(uint256 index => bytes32 value)) internal immutableDataStorage; /// @notice Method that returns the immutable with a certain index for a user. /// @param _dest The address which the immutable belongs to. diff --git a/etc/system-contracts/contracts/KnownCodesStorage.sol b/etc/system-contracts/contracts/KnownCodesStorage.sol index 2dda7854..e717221f 100644 --- a/etc/system-contracts/contracts/KnownCodesStorage.sol +++ b/etc/system-contracts/contracts/KnownCodesStorage.sol @@ -5,7 +5,6 @@ pragma solidity 0.8.20; import {IKnownCodesStorage} from "./interfaces/IKnownCodesStorage.sol"; import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {Utils} from "./libraries/Utils.sol"; -import {SystemContractHelper} from "./libraries/SystemContractHelper.sol"; import {COMPRESSOR_CONTRACT, L1_MESSENGER_CONTRACT} from "./Constants.sol"; /** diff --git a/etc/system-contracts/contracts/L1Messenger.sol b/etc/system-contracts/contracts/L1Messenger.sol index 47ee3265..30160164 100644 --- a/etc/system-contracts/contracts/L1Messenger.sol +++ b/etc/system-contracts/contracts/L1Messenger.sol @@ -272,8 +272,8 @@ contract L1Messenger is IL1Messenger, ISystemContract { /// Check State Diffs /// encoding is as follows: - /// header (1 byte version, 3 bytes total len of compressed, 1 byte enumeration index size, 2 bytes number of initial writes) - /// body (N bytes of initial writes [32 byte derived key || compressed value], M bytes repeated writes [enumeration index || compressed value]) + /// header (1 byte version, 3 bytes total len of compressed, 1 byte enumeration index size) + /// body (`compressedStateDiffSize` bytes, 4 bytes number of state diffs, `numberOfStateDiffs` * `STATE_DIFF_ENTRY_SIZE` bytes for the uncompressed state diffs) /// encoded state diffs: [20bytes address][32bytes key][32bytes derived key][8bytes enum index][32bytes initial value][32bytes final value] require( uint256(uint8(bytes1(_totalL2ToL1PubdataAndStateDiffs[calldataPtr]))) == diff --git a/etc/system-contracts/contracts/L2EthToken.sol b/etc/system-contracts/contracts/L2EthToken.sol index fbd63ae2..71df9333 100644 --- a/etc/system-contracts/contracts/L2EthToken.sol +++ b/etc/system-contracts/contracts/L2EthToken.sol @@ -17,7 +17,7 @@ import {IMailbox} from "./interfaces/IMailbox.sol"; */ contract L2EthToken is IEthToken, ISystemContract { /// @notice The balances of the users. - mapping(address => uint256) internal balance; + mapping(address account => uint256 balance) internal balance; /// @notice The total amount of tokens that have been minted. uint256 public override totalSupply; diff --git a/etc/system-contracts/contracts/MsgValueSimulator.sol b/etc/system-contracts/contracts/MsgValueSimulator.sol index 07ed23d4..a5be6043 100644 --- a/etc/system-contracts/contracts/MsgValueSimulator.sol +++ b/etc/system-contracts/contracts/MsgValueSimulator.sol @@ -2,9 +2,9 @@ pragma solidity 0.8.20; -import "./libraries/Utils.sol"; -import "./libraries/EfficientCall.sol"; -import "./interfaces/ISystemContract.sol"; +import {Utils} from "./libraries/Utils.sol"; +import {EfficientCall} from "./libraries/EfficientCall.sol"; +import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {SystemContractHelper} from "./libraries/SystemContractHelper.sol"; import {MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, ETH_TOKEN_SYSTEM_CONTRACT} from "./Constants.sol"; @@ -18,7 +18,7 @@ import {MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, ETH_TOKEN_SYSTEM_CONTRACT} from "./Co */ contract MsgValueSimulator is ISystemContract { /// @notice Extract value, isSystemCall and to from the extraAbi params. - /// @dev The contract accepts value, the callee and whether the call should a system one via its ABI params. + /// @dev The contract accepts value, the callee and whether the call should be a system one via its ABI params. /// @dev The first ABI param contains the value in the [0..127] bits. The 128th contains /// the flag whether or not the call should be a system one. /// The second ABI params contains the callee. @@ -32,6 +32,10 @@ contract MsgValueSimulator is ISystemContract { to = address(uint160(addressAsUint)); } + /// @notice The fallback function that is the main entry point for the MsgValueSimulator. + /// @dev The contract accepts value, the callee and whether the call should be a system one via its ABI params. + /// @param _data The calldata to be passed to the callee. + /// @return The return data from the callee. fallback(bytes calldata _data) external onlySystemCall returns (bytes memory) { (uint256 value, bool isSystemCall, address to) = _getAbiParams(); diff --git a/etc/system-contracts/contracts/NonceHolder.sol b/etc/system-contracts/contracts/NonceHolder.sol index b2775f1c..1ca57a21 100644 --- a/etc/system-contracts/contracts/NonceHolder.sol +++ b/etc/system-contracts/contracts/NonceHolder.sol @@ -2,8 +2,8 @@ pragma solidity 0.8.20; -import "./interfaces/INonceHolder.sol"; -import "./interfaces/IContractDeployer.sol"; +import {INonceHolder} from "./interfaces/INonceHolder.sol"; +import {IContractDeployer} from "./interfaces/IContractDeployer.sol"; import {ISystemContract} from "./interfaces/ISystemContract.sol"; import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; @@ -25,20 +25,20 @@ import {DEPLOYER_SYSTEM_CONTRACT} from "./Constants.sol"; * here serve more as a help to users to prevent from doing mistakes, rather than any invariants. */ contract NonceHolder is INonceHolder, ISystemContract { - uint256 constant DEPLOY_NONCE_MULTIPLIER = 2 ** 128; + uint256 private constant DEPLOY_NONCE_MULTIPLIER = 2 ** 128; /// The minNonce can be increased by at 2^32 at a time to prevent it from /// overflowing beyond 2**128. - uint256 constant MAXIMAL_MIN_NONCE_INCREMENT = 2 ** 32; + uint256 private constant MAXIMAL_MIN_NONCE_INCREMENT = 2 ** 32; /// RawNonces for accounts are stored in format /// minNonce + 2^128 * deploymentNonce, where deploymentNonce /// is the nonce used for deploying smart contracts. - mapping(uint256 => uint256) internal rawNonces; + mapping(uint256 account => uint256 packedMinAndDeploymentNonce) internal rawNonces; /// Mapping of values under nonces for accounts. /// The main key of the mapping is the 256-bit address of the account, while the /// inner mapping is a mapping from a nonce to the value stored there. - mapping(uint256 => mapping(uint256 => uint256)) internal nonceValues; + mapping(uint256 account => mapping(uint256 nonceKey => uint256 value)) internal nonceValues; /// @notice Returns the current minimal nonce for account. /// @param _address The account to return the minimal nonce for @@ -147,6 +147,10 @@ contract NonceHolder is INonceHolder, ISystemContract { (prevDeploymentNonce, ) = _splitRawNonce(oldRawNonce); } + /// @notice A method that checks whether the nonce has been used before. + /// @param _address The address the nonce of which is being checked. + /// @param _nonce The nonce value which is checked. + /// @return `true` if the nonce has been used, `false` otherwise. function isNonceUsed(address _address, uint256 _nonce) public view returns (bool) { uint256 addressAsKey = uint256(uint160(_address)); return (_nonce < getMinNonce(_address) || nonceValues[addressAsKey][_nonce] > 0); diff --git a/etc/system-contracts/contracts/SystemContext.sol b/etc/system-contracts/contracts/SystemContext.sol index 67f9248e..f42a73ea 100644 --- a/etc/system-contracts/contracts/SystemContext.sol +++ b/etc/system-contracts/contracts/SystemContext.sol @@ -41,7 +41,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr address public coinbase = BOOTLOADER_FORMAL_ADDRESS; /// @notice Formal `block.difficulty` parameter. - uint256 public difficulty = 2500000000000000; + uint256 public difficulty = 2.5e15; /// @notice The `block.basefee`. /// @dev It is currently a constant. @@ -52,7 +52,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @notice The hashes of batches. /// @dev It stores batch hashes for all previous batches. - mapping(uint256 => bytes32) internal batchHash; + mapping(uint256 batchNumber => bytes32 batchHash) internal batchHashes; /// @notice The number and the timestamp of the current L2 block. BlockInfo internal currentL2BlockInfo; @@ -117,7 +117,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr } else if (_block < currentVirtualBlockUpgradeInfo.virtualBlockStartBatch) { // Note, that we will get into this branch only for a brief moment of time, right after the upgrade // for virtual blocks before 256 virtual blocks are produced. - hash = batchHash[_block]; + hash = batchHashes[_block]; } else if ( _block >= currentVirtualBlockUpgradeInfo.virtualBlockFinishL2Block && currentVirtualBlockUpgradeInfo.virtualBlockFinishL2Block > 0 @@ -135,7 +135,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @param _batchNumber The number of the batch. /// @return hash The hash of the batch. function getBatchHash(uint256 _batchNumber) external view returns (bytes32 hash) { - hash = batchHash[_batchNumber]; + hash = batchHashes[_batchNumber]; } /// @notice Returns the current batch's number and timestamp. @@ -424,7 +424,7 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr _ensureBatchConsistentWithL2Block(_newTimestamp); - batchHash[previousBatchNumber] = _prevBatchHash; + batchHashes[previousBatchNumber] = _prevBatchHash; // Setting new block number and timestamp BlockInfo memory newBlockInfo = BlockInfo({number: previousBatchNumber + 1, timestamp: _newTimestamp}); @@ -478,6 +478,6 @@ contract SystemContext is ISystemContext, ISystemContextDeprecated, ISystemContr /// @notice Returns the hash of the given batch. /// @dev Deprecated in favor of getBatchHash. function blockHash(uint256 _blockNumber) external view returns (bytes32 hash) { - hash = batchHash[_blockNumber]; + hash = batchHashes[_blockNumber]; } } diff --git a/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol b/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol index ebc26dd2..1b5e1518 100644 --- a/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol +++ b/etc/system-contracts/contracts/interfaces/IComplexUpgrader.sol @@ -2,6 +2,11 @@ pragma solidity 0.8.20; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the ComplexUpgrader contract. + */ interface IComplexUpgrader { function upgrade(address _delegateTo, bytes calldata _calldata) external payable; } diff --git a/etc/system-contracts/contracts/interfaces/ICompressor.sol b/etc/system-contracts/contracts/interfaces/ICompressor.sol index 16e02d97..5c1ee3d3 100644 --- a/etc/system-contracts/contracts/interfaces/ICompressor.sol +++ b/etc/system-contracts/contracts/interfaces/ICompressor.sol @@ -9,6 +9,12 @@ uint8 constant LENGTH_BITS_OFFSET = 3; // The maximal length in bytes that an enumeration index can have. uint8 constant MAX_ENUMERATION_INDEX_SIZE = 8; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the Compressor contract, responsible for verifying the correctness of + * the compression of the state diffs and bytecodes. + */ interface ICompressor { function publishCompressedBytecode( bytes calldata _bytecode, diff --git a/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol b/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol index b5a783ba..98a1277d 100644 --- a/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol +++ b/etc/system-contracts/contracts/interfaces/IKnownCodesStorage.sol @@ -2,6 +2,12 @@ pragma solidity 0.8.20; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface for the KnownCodesStorage contract, which is responsible + * for storing the hashes of the bytecodes that have been published to the network. + */ interface IKnownCodesStorage { event MarkedAsKnown(bytes32 indexed bytecodeHash, bool indexed sendBytecodeToL1); diff --git a/etc/system-contracts/contracts/interfaces/IL1Messenger.sol b/etc/system-contracts/contracts/interfaces/IL1Messenger.sol index ab6a670f..cd0cc90f 100644 --- a/etc/system-contracts/contracts/interfaces/IL1Messenger.sol +++ b/etc/system-contracts/contracts/interfaces/IL1Messenger.sol @@ -32,6 +32,11 @@ bytes32 constant L2_L1_LOGS_TREE_DEFAULT_LEAF_HASH = 0x72abee45b59e344af8a6e5202 /// @dev The current version of state diff compression being used. uint256 constant STATE_DIFF_COMPRESSION_VERSION_NUMBER = 1; +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice The interface of the L1 Messenger contract, responsible for sending messages to L1. + */ interface IL1Messenger { // Possibly in the future we will be able to track the messages sent to L1 with // some hooks in the VM. For now, it is much easier to track them with L2 events. diff --git a/etc/system-contracts/contracts/interfaces/ISystemContext.sol b/etc/system-contracts/contracts/interfaces/ISystemContext.sol index d8a98292..1089ab1f 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContext.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContext.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.20; /** * @author Matter Labs + * @custom:security-contact security@matterlabs.dev * @notice Contract that stores some of the context variables, that may be either * block-scoped, tx-scoped or system-wide. */ diff --git a/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol b/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol index b51faeed..a44b61b2 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContextDeprecated.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.20; /** * @author Matter Labs + * @custom:security-contact security@matterlabs.dev * @notice The interface with deprecated functions of the SystemContext contract. It is aimed for backward compatibility. */ interface ISystemContextDeprecated { diff --git a/etc/system-contracts/contracts/interfaces/ISystemContract.sol b/etc/system-contracts/contracts/interfaces/ISystemContract.sol index c486abc9..1a2bf514 100644 --- a/etc/system-contracts/contracts/interfaces/ISystemContract.sol +++ b/etc/system-contracts/contracts/interfaces/ISystemContract.sol @@ -5,10 +5,15 @@ pragma solidity 0.8.20; import {SystemContractHelper} from "../libraries/SystemContractHelper.sol"; import {BOOTLOADER_FORMAL_ADDRESS} from "../Constants.sol"; -/// @dev Solidity does not allow exporting modifiers via libraries, so -/// the only way to do reuse modifiers is to have a base contract -/// @dev Never add storage variables into this contract as some -/// system contracts rely on this abstract contract as on interface! +/** + * @author Matter Labs + * @custom:security-contact security@matterlabs.dev + * @notice An abstract contract that is used to reuse modifiers across the system contracts. + * @dev Solidity does not allow exporting modifiers via libraries, so + * the only way to do reuse modifiers is to have a base contract + * @dev Never add storage variables into this contract as some + * system contracts rely on this abstract contract as on interface! + */ abstract contract ISystemContract { /// @notice Modifier that makes sure that the method /// can only be called via a system call. diff --git a/etc/system-contracts/contracts/libraries/TransactionHelper.sol b/etc/system-contracts/contracts/libraries/TransactionHelper.sol index e0578197..27a4f859 100644 --- a/etc/system-contracts/contracts/libraries/TransactionHelper.sol +++ b/etc/system-contracts/contracts/libraries/TransactionHelper.sol @@ -21,7 +21,7 @@ uint8 constant EIP_2930_TX_TYPE = 0x01; /// @dev The type id of EIP1559 transactions. uint8 constant EIP_1559_TX_TYPE = 0x02; -/// @notice Structure used to represent zkSync transaction. +/// @notice Structure used to represent a zkSync transaction. struct Transaction { // The type of the transaction. uint256 txType; diff --git a/etc/system-contracts/contracts/precompiles/Ecrecover.yul b/etc/system-contracts/contracts/precompiles/Ecrecover.yul index d0e5924b..cbb8fcc0 100644 --- a/etc/system-contracts/contracts/precompiles/Ecrecover.yul +++ b/etc/system-contracts/contracts/precompiles/Ecrecover.yul @@ -21,7 +21,7 @@ object "Ecrecover" { /// @dev The gas cost of processing ecrecover circuit precompile. function ECRECOVER_GAS_COST() -> ret { - ret := 1112 + ret := 7000 } //////////////////////////////////////////////////////////////// diff --git a/etc/system-contracts/contracts/precompiles/Keccak256.yul b/etc/system-contracts/contracts/precompiles/Keccak256.yul index b078d580..8eaa5367 100644 --- a/etc/system-contracts/contracts/precompiles/Keccak256.yul +++ b/etc/system-contracts/contracts/precompiles/Keccak256.yul @@ -2,9 +2,7 @@ * @author Matter Labs * @custom:security-contact security@matterlabs.dev * @notice The contract used to emulate EVM's keccak256 opcode. - * @dev It accepts the data to be hashed, pad it by the specification - * and uses `precompileCall` to call the zkEVM built-in precompiles. - * @dev Thus keccak256 precompile circuit operates over padded data to perform efficient sponge round computation. + * @dev It accepts the data to be hashed in the calldata, propagates it to the zkEVM built-in circuit precompile via `precompileCall`, and burns the gas. */ object "Keccak256" { code { @@ -16,34 +14,57 @@ object "Keccak256" { // CONSTANTS //////////////////////////////////////////////////////////////// - /// @dev The size of the processing keccak256 block in bytes. + /// @dev Returns the block size used by the keccak256 hashing function. + /// The value 136 bytes corresponds to the size of the input data block that the keccak256 + /// algorithm processes in each round, as defined in the keccak256 specification. This is derived + /// from the formula (1600 - 2 * bit length of the digest) / 8, where the bit length for keccak256 + /// is 256 bits. For more details, refer to the Keccak specification at + /// https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf#page=30 function BLOCK_SIZE() -> ret { ret := 136 } /// @dev The gas cost of processing one keccak256 round. + /// @dev This constant is made equal to the corresponding constant in + /// https://github.com/matter-labs/era-zkevm_opcode_defs/blob/v1.4.1/src/circuit_prices.rs, + /// which was automatically generated depending on the capacity of rounds for a + /// single Keccak256 circuit. function KECCAK_ROUND_GAS_COST() -> ret { ret := 40 } + /// @dev Returns a 32-bit mask value + function UINT32_BIT_MASK() -> ret { + ret := 0xffffffff + } + //////////////////////////////////////////////////////////////// // HELPER FUNCTIONS //////////////////////////////////////////////////////////////// + + /// @dev Load raw calldata fat pointer + function getCalldataPtr() -> calldataPtr { + calldataPtr := verbatim_0i_1o("get_global::ptr_calldata") + } - // @dev Packs precompile parameters into one word. - // Note: functions expect to work with 32/64 bits unsigned integers. - // Caller should ensure the type matching before! + /// @dev Packs precompile parameters into one word. + /// Note: functions expect to work with 32/64 bits unsigned integers. + /// Caller should ensure the type matching before! function unsafePackPrecompileParams( - uint32_inputOffsetInWords, - uint32_inputLengthInWords, + uint32_inputOffsetInBytes, + uint32_inputLengthInBytes, uint32_outputOffsetInWords, uint32_outputLengthInWords, + uint32_memoryPageToRead, + uint32_memoryPageToWrite, uint64_perPrecompileInterpreted ) -> rawParams { - rawParams := uint32_inputOffsetInWords - rawParams := or(rawParams, shl(32, uint32_inputLengthInWords)) + rawParams := uint32_inputOffsetInBytes + rawParams := or(rawParams, shl(32, uint32_inputLengthInBytes)) rawParams := or(rawParams, shl(64, uint32_outputOffsetInWords)) rawParams := or(rawParams, shl(96, uint32_outputLengthInWords)) + rawParams := or(rawParams, shl(128, uint32_memoryPageToRead)) + rawParams := or(rawParams, shl(160, uint32_memoryPageToWrite)) rawParams := or(rawParams, shl(192, uint64_perPrecompileInterpreted)) } @@ -56,73 +77,35 @@ object "Keccak256" { //////////////////////////////////////////////////////////////// // FALLBACK //////////////////////////////////////////////////////////////// + + // 1. Load raw calldata fat pointer + let calldataFatPtr := getCalldataPtr() - // Copy calldata to memory for pad it - let bytesSize := calldatasize() - calldatacopy(0, 0, bytesSize) - - let precompileParams - let gasToPay - - // Most often keccak256 is called with "short" input, so optimize it as a special case. - // NOTE: we consider the special case for sizes less than `BLOCK_SIZE() - 1`, so - // there is only one round and it is and padding can be done branchless - switch lt(bytesSize, sub(BLOCK_SIZE(), 1)) - case true { - // Write the 0x01 after the payload bytes and 0x80 at last byte of padded bytes - mstore(bytesSize, 0x0100000000000000000000000000000000000000000000000000000000000000) - mstore( - sub(BLOCK_SIZE(), 1), - 0x8000000000000000000000000000000000000000000000000000000000000000 - ) - - precompileParams := unsafePackPrecompileParams( - 0, // input offset in words - 5, // input length in words (Math.ceil(136/32) = 5) - 0, // output offset in words - 1, // output length in words - 1 // number of rounds - ) - gasToPay := KECCAK_ROUND_GAS_COST() - } - default { - let padLen := sub(BLOCK_SIZE(), mod(bytesSize, BLOCK_SIZE())) - let paddedByteSize := add(bytesSize, padLen) + // 2. Parse calldata fat pointer + let ptrMemoryPage := and(shr(32, calldataFatPtr), UINT32_BIT_MASK()) + let ptrStart := and(shr(64, calldataFatPtr), UINT32_BIT_MASK()) + let ptrLength := and(shr(96, calldataFatPtr), UINT32_BIT_MASK()) - switch eq(padLen, 1) - case true { - // Write 0x81 after the payload bytes - mstore(bytesSize, 0x8100000000000000000000000000000000000000000000000000000000000000) - } - default { - // Write the 0x01 after the payload bytes and 0x80 at last byte of padded bytes - mstore(bytesSize, 0x0100000000000000000000000000000000000000000000000000000000000000) - mstore( - sub(paddedByteSize, 1), - 0x8000000000000000000000000000000000000000000000000000000000000000 - ) - } - - let numRounds := div(paddedByteSize, BLOCK_SIZE()) - precompileParams := unsafePackPrecompileParams( - 0, // input offset in words - div(add(paddedByteSize, 31), 32), // input length in words (safe to pass, never exceed `type(uint32).max`) - 0, // output offset in words - 1, // output length in words - numRounds // number of rounds (safe to pass, never exceed `type(uint64).max`) - ) - gasToPay := mul(KECCAK_ROUND_GAS_COST(), numRounds) - } + // 3. Pack precompile parameters + let precompileParams := unsafePackPrecompileParams( + ptrStart, // input offset in bytes + ptrLength, // input length in bytes (safe to pass, never exceed `type(uint32).max`) + 0, // output offset in words + 1, // output length in words (NOTE: VM doesn't check this value for now, but this could change in future) + ptrMemoryPage, // memory page to read from + 0, // memory page to write to (0 means write to heap) + 0 // per precompile interpreted value (0 since circuit doesn't react on this value anyway) + ) + // 4. Calculate number of required hash rounds per calldata + let numRounds := add(div(ptrLength, BLOCK_SIZE()), 1) + let gasToPay := mul(KECCAK_ROUND_GAS_COST(), numRounds) + // 5. Call precompile let success := precompileCall(precompileParams, gasToPay) - - switch success - case 0 { + if iszero(success) { revert(0, 0) } - default { - return(0, 32) - } + return(0, 32) } } } diff --git a/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul b/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul new file mode 100644 index 00000000..b37eb69c --- /dev/null +++ b/etc/system-contracts/contracts/precompiles/test-contracts/Keccak256Mock.yul @@ -0,0 +1,99 @@ +/** + * @author Matter Labs + * @notice The contract used to emulate EVM's keccak256 opcode. + * @dev It accepts the data to be hashed in the calldata, propagate it to the zkEVM built-in circuit precompile via `precompileCall` and burn . + */ + object "Keccak256" { + code { } + object "Keccak256_deployed" { + code { + //////////////////////////////////////////////////////////////// + // CONSTANTS + //////////////////////////////////////////////////////////////// + + /// @dev The size of the processing keccak256 block in bytes. + function BLOCK_SIZE() -> ret { + ret := 136 + } + + /// @dev The gas cost of processing one keccak256 round. + function KECCAK_ROUND_GAS_COST() -> ret { + ret := 40 + } + + /// @dev Returns a 32-bit mask value + function UINT32_BIT_MASK() -> ret { + ret := 0xffffffff + } + + //////////////////////////////////////////////////////////////// + // HELPER FUNCTIONS + //////////////////////////////////////////////////////////////// + + /// @dev Load raw calldata fat pointer + function getCalldataPtr() -> calldataPtr { + calldataPtr := verbatim_0i_1o("get_global::ptr_calldata") + } + + /// @dev Packs precompile parameters into one word. + /// Note: functions expect to work with 32/64 bits unsigned integers. + /// Caller should ensure the type matching before! + function unsafePackPrecompileParams( + uint32_inputOffsetInBytes, + uint32_inputLengthInBytes, + uint32_outputOffsetInWords, + uint32_outputLengthInWords, + uint32_memoryPageToRead, + uint32_memoryPageToWrite, + uint64_perPrecompileInterpreted + ) -> rawParams { + rawParams := uint32_inputOffsetInBytes + rawParams := or(rawParams, shl(32, uint32_inputLengthInBytes)) + rawParams := or(rawParams, shl(64, uint32_outputOffsetInWords)) + rawParams := or(rawParams, shl(96, uint32_outputLengthInWords)) + rawParams := or(rawParams, shl(128, uint32_memoryPageToRead)) + rawParams := or(rawParams, shl(160, uint32_memoryPageToWrite)) + rawParams := or(rawParams, shl(192, uint64_perPrecompileInterpreted)) + } + + /// @dev Executes the `precompileCall` opcode. + function precompileCall(precompileParams, gasToBurn) -> ret { + // Compiler simulation for calling `precompileCall` opcode + ret := verbatim_2i_1o("precompile", precompileParams, gasToBurn) + } + + //////////////////////////////////////////////////////////////// + // FALLBACK + //////////////////////////////////////////////////////////////// + + // 1. Load raw calldata fat pointer + let calldataFatPtr := getCalldataPtr() + + // 2. Parse calldata fat pointer + let ptrMemoryPage := and(shr(32, calldataFatPtr), UINT32_BIT_MASK()) + let ptrStart := and(shr(64, calldataFatPtr), UINT32_BIT_MASK()) + let ptrLength := and(shr(96, calldataFatPtr), UINT32_BIT_MASK()) + + // 3. Pack precompile parameters + let precompileParams := unsafePackPrecompileParams( + ptrStart, // input offset in bytes + ptrLength, // input length in bytes (safe to pass, never exceed `type(uint32).max`) + 0, // output offset in words + 1, // output length in words (NOTE: VM doesn't check this value for now, but this could change in future) + ptrMemoryPage, // memory page to read from + 0, // memory page to write to (0 means write to heap) + 0 // per precompile interpreted value (0 since circuit doesn't react on this value anyway) + ) + // 4. Calculate number of required hash rounds per calldata + let numRounds := div(add(ptrLength, sub(BLOCK_SIZE(), 1)), BLOCK_SIZE()) + let gasToPay := 0 + + // 5. Call precompile + let success := precompileCall(precompileParams, gasToPay) + if iszero(success) { + revert(0, 0) + } + return(0, 32) + } + } +} diff --git a/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol b/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol new file mode 100644 index 00000000..90211748 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/AlwaysRevert.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +contract AlwaysRevert { + fallback() external { + revert(""); + } +} diff --git a/etc/system-contracts/contracts/test-contracts/Callable.sol b/etc/system-contracts/contracts/test-contracts/Callable.sol deleted file mode 100644 index e7477e0c..00000000 --- a/etc/system-contracts/contracts/test-contracts/Callable.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract Callable { - event Called(uint256 value, bytes data); - - fallback() external payable { - uint256 len; - assembly { - len := calldatasize() - } - bytes memory data = new bytes(len); - assembly { - calldatacopy(add(data, 0x20), 0, len) - } - emit Called(msg.value, data); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol b/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol deleted file mode 100644 index b369f9a9..00000000 --- a/etc/system-contracts/contracts/test-contracts/DummyUpgrade.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract DummyUpgrade { - event Upgraded(); - - function performUpgrade() public { - emit Upgraded(); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol b/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol deleted file mode 100644 index faf09cd7..00000000 --- a/etc/system-contracts/contracts/test-contracts/EventWriterTest.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract EventWriterTest { - event ZeroTopics(bytes data) anonymous; - event OneTopic(bytes data); - event TwoTopics(uint256 indexed topic1, bytes data); - event ThreeTopics(uint256 indexed topic1, uint256 indexed topic2, bytes data); - event FourTopics(uint256 indexed topic1, uint256 indexed topic2, uint256 indexed topic3, bytes data); - - function zeroTopics(bytes calldata data) external { - emit ZeroTopics(data); - } - - function oneTopic(bytes calldata data) external { - emit OneTopic(data); - } - - function twoTopics(uint256 topic1, bytes calldata data) external { - emit TwoTopics(topic1, data); - } - - function threeTopics(uint256 topic1, uint256 topic2, bytes calldata data) external { - emit ThreeTopics(topic1, topic2, data); - } - - function fourTopics(uint256 topic1, uint256 topic2, uint256 topic3, bytes calldata data) external { - emit FourTopics(topic1, topic2, topic3, data); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm b/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm new file mode 100644 index 00000000..04343af3 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/ExtraAbiCaller.zasm @@ -0,0 +1,60 @@ +.text + .file "main" + .globl __entry +__entry: +.func_begin0: + sub.s! 0, r2, r0 + jump.eq @.RUNTIME_CODE + ; deployment code + add 32, r0, r1 + st.1 r0, r1 + st.1 r1, r0 + add @CPI0_1[0], r0, r1 + ret.ok.to_label r1, @DEFAULT_FAR_RETURN +.RUNTIME_CODE: + ; ABI: + ; 0-32 address(in the lowest 20 bytes) + ; 32-64 msg.value + ; 64-384 extra data + ; 384+ calldata + ; + ; load address into r2 + ld.inc r1, r2, r1 + ; set msg.value + ld.inc r1, r3, r1 + context.set_context_u128 r3 + ; load extra abi data into r3-r12 + ld.inc r1, r3, r1 + ld.inc r1, r4, r1 + ld.inc r1, r5, r1 + ld.inc r1, r6, r1 + ld.inc r1, r7, r1 + ld.inc r1, r8, r1 + ld.inc r1, r9, r1 + ld.inc r1, r10, r1 + ld.inc r1, r11, r1 + ld.inc r1, r12, r1 + ptr.pack.s @CPI0_0[0], r1, r1 + far_call r1, r2, @.CALL_REVERT + ptr.pack.s @CPI0_2[0], r1, r1 + ret.ok r1 +.CALL_REVERT: + ptr.pack.s @CPI0_2[0], r1, r1 + ret.revert r1 +.func_end0: + .note.GNU-stack + .rodata +; far call abi: +; gas amount = 0xFFFFFFFF(max) +; forwarding mode = fat ptr +; shard id = 0 +; constructor flag = false +; system call flag = true +; 01 00 00 01 FFFFFFFF 0000000000000000 00000000000000000000000000000000 +CPI0_0: + .cell 452312902503159716397502014137536550255307801666780882257920705274096648192 +CPI0_1: + .cell 5070602400912917605986812821504 +; 01 0000000000000000 00000000000000000000000000000000 +CPI0_2: + .cell 6277101735386680763835789423207666416102355444464034512896 diff --git a/etc/system-contracts/contracts/test-contracts/KeccakTest.sol b/etc/system-contracts/contracts/test-contracts/KeccakTest.sol new file mode 100644 index 00000000..8f2aef93 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/KeccakTest.sol @@ -0,0 +1,171 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; +pragma abicoder v2; + +import "../libraries/SystemContractsCaller.sol"; +import "../Constants.sol"; +import "../libraries/EfficientCall.sol"; + +// In this test it is important to actuall change the real Keccak256's contract's bytecode, +// which requires changes in the real AccountCodeStorage contract +address constant REAL_DEPLOYER_SYSTEM_CONTRACT = address(0x8006); +address constant REAL_FORCE_DEPLOYER_ADDRESS = address(0x8007); + +contract KeccakTest { + bytes32 constant EMPTY_STRING_KECCAK = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; + + // Just some computation-heavy function, it will be used to test out of gas + function infiniteFuction(uint256 n) public pure returns (uint256 sumOfSquares) { + for (uint i = 0; i < n; i++) { + sumOfSquares += i * i; + } + } + + function _loadFarCallABIIntoActivePtr(uint256 _gas) private view { + uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer( + uint32(_gas), + // Only rollup is supported for now + 0, + CalldataForwardingMode.ForwardFatPointer, + false, + false + ); + _ptrPackIntoActivePtr(farCallAbi); + } + + function _loadReturnDataIntoActivePtr() internal { + address callAddr = LOAD_LATEST_RETURNDATA_INTO_ACTIVE_PTR_CALL_ADDRESS; + assembly { + pop(staticcall(0, callAddr, 0, 0xFFFF, 0, 0)) + } + } + + function _ptrPackIntoActivePtr(uint256 _farCallAbi) internal view { + address callAddr = PTR_PACK_INTO_ACTIVE_CALL_ADDRESS; + assembly { + pop(staticcall(_farCallAbi, callAddr, 0, 0xFFFF, 0, 0)) + } + } + + function rawCallByRef(address _address) internal returns (bool success) { + address callAddr = RAW_FAR_CALL_BY_REF_CALL_ADDRESS; + assembly { + success := call(_address, callAddr, 0, 0, 0xFFFF, 0, 0) + } + } + + function zeroPointerTest() external { + try this.infiniteFuction{gas: 1000000}(1000000) returns (uint256) { + revert("The transaction should have failed"); + } catch {} + + _loadReturnDataIntoActivePtr(); + _loadFarCallABIIntoActivePtr(1000000); + bool success = rawCallByRef(KECCAK256_SYSTEM_CONTRACT); + require(success, "The call to keccak should have succeeded"); + + uint256 returndataSize = 0; + assembly { + returndataSize := returndatasize() + } + require(returndataSize == 32, "The return data size should be 32 bytes"); + + bytes32 result; + assembly { + returndatacopy(0, 0, 32) + result := mload(0) + } + + require(result == EMPTY_STRING_KECCAK, "The result is not correct"); + } + + function keccakUpgradeTest( + bytes calldata eraseCallData, + bytes calldata upgradeCalldata + ) external returns (bytes32 hash) { + // Firstly, we reset keccak256 bytecode to be some random bytecode + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + eraseCallData, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + // Since the keccak contract has been erased, it should not work anymore + try this.callKeccak(msg.data[0:0]) returns (bytes32) { + revert("The keccak should not work anymore"); + } catch {} + + // Upgrading it back to the correct version: + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + // Now it should work again + hash = this.callKeccak(msg.data[0:0]); + require(hash == EMPTY_STRING_KECCAK, "Keccak should start working again"); + } + + function keccakPerformUpgrade(bytes calldata upgradeCalldata) external { + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + } + + function callKeccak(bytes calldata _data) external pure returns (bytes32 hash) { + hash = keccak256(_data); + } + + function keccakValidationTest( + bytes calldata upgradeCalldata, + bytes calldata resetCalldata, + bytes[] calldata testInputs, + bytes32[] calldata expectedOutputs + ) external { + require(testInputs.length == expectedOutputs.length, "mismatch between number of inputs and outputs"); + + // Firstly, we upgrade keccak256 bytecode to the correct version. + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + upgradeCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + + bytes32[] memory result = new bytes32[](testInputs.length); + + for (uint256 i = 0; i < testInputs.length; i++) { + bytes32 res = this.callKeccak(testInputs[i]); + result[i] = res; + } + + for (uint256 i = 0; i < result.length; i++) { + require(result[i] == expectedOutputs[i], "hash was not calculated correctly"); + } + + // Upgrading it back to the original version: + EfficientCall.mimicCall( + gasleft(), + address(REAL_DEPLOYER_SYSTEM_CONTRACT), + resetCalldata, + REAL_FORCE_DEPLOYER_ADDRESS, + false, + false + ); + } +} diff --git a/etc/system-contracts/contracts/test-contracts/MockContract.sol b/etc/system-contracts/contracts/test-contracts/MockContract.sol new file mode 100644 index 00000000..1505be34 --- /dev/null +++ b/etc/system-contracts/contracts/test-contracts/MockContract.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT + +pragma solidity 0.8.20; + +contract MockContract { + event Called(uint256 value, bytes data); + + struct CallResult { + bytes input; + bool failure; + bytes returnData; + } + + CallResult[] private results; + + constructor() { + // Clean results if mock was redeployed. + delete results; + } + + // This function call will not pass to fallback, but this is fine for the tests. + function setResult(CallResult calldata result) external { + bytes32 inputKeccak = keccak256(result.input); + for (uint256 i = 0; i < results.length; i++) { + if (keccak256(results[i].input) == inputKeccak) { + results[i] = result; + return; + } + } + results.push(result); + } + + fallback() external payable { + bytes memory data = msg.data; + bytes32 inputKeccak = keccak256(data); + + // empty return data with successful result by default. + bool failure; + bytes memory returnData; + + for (uint256 i = 0; i < results.length; i++) { + if (keccak256(results[i].input) == inputKeccak) { + failure = results[i].failure; + returnData = results[i].returnData; + break; + } + } + + // Emitting event only if empty successful result expected. + // Can fail if call context is static, but usually it's not a case, + // because view/pure call without return data doesn't make sense. + // Useful, because for such calls we can check for this event, + // to be sure that the needed call was made. + if (!failure && returnData.length == 0) { + emit Called(msg.value, data); + } + + assembly { + switch failure + case 0 { + return(add(returnData, 0x20), mload(returnData)) + } + default { + revert(add(returnData, 0x20), mload(returnData)) + } + } + } +} diff --git a/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol b/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol deleted file mode 100644 index c9931389..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockERC20Approve.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockERC20Approve { - event Approved(address to, uint256 value); - - function approve(address spender, uint256 value) external returns (bool) { - emit Approved(spender, value); - return true; - } - - function allowance(address owner, address spender) external view returns (uint256) { - return 0; - } -} diff --git a/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol b/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol deleted file mode 100644 index 7cec142e..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockKnownCodesStorage.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockKnownCodesStorage { - event MockBytecodePublished(bytes32 indexed bytecodeHash); - - function markBytecodeAsPublished(bytes32 _bytecodeHash) external { - emit MockBytecodePublished(_bytecodeHash); - } - - // To be able to deploy original know codes storage again - function getMarker(bytes32) public pure returns (uint256 marker) { - return 1; - } - - // To prevent failing during calls from the bootloader - fallback() external {} -} diff --git a/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol b/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol deleted file mode 100644 index b24da511..00000000 --- a/etc/system-contracts/contracts/test-contracts/MockL1Messenger.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract MockL1Messenger { - event MockBytecodeL1Published(bytes32 indexed bytecodeHash); - - function requestBytecodeL1Publication(bytes32 _bytecodeHash) external { - emit MockBytecodeL1Published(_bytecodeHash); - } - - // To prevent failing during calls from the bootloader - function sendToL1(bytes calldata) external returns (bytes32) { - return bytes32(0); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol b/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol deleted file mode 100644 index 0c85deb6..00000000 --- a/etc/system-contracts/contracts/test-contracts/NotSystemCaller.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -contract NotSystemCaller { - address immutable to; - - constructor(address _to) { - to = _to; - } - - fallback() external payable { - address _to = to; - assembly { - calldatacopy(0, 0, calldatasize()) - - let result := call(gas(), _to, callvalue(), 0, calldatasize(), 0, 0) - - returndatacopy(0, 0, returndatasize()) - - switch result - case 0 { - revert(0, returndatasize()) - } - default { - return(0, returndatasize()) - } - } - } -} diff --git a/etc/system-contracts/contracts/test-contracts/SystemCaller.sol b/etc/system-contracts/contracts/test-contracts/SystemCaller.sol index 58adfce2..77bfa707 100644 --- a/etc/system-contracts/contracts/test-contracts/SystemCaller.sol +++ b/etc/system-contracts/contracts/test-contracts/SystemCaller.sol @@ -2,8 +2,13 @@ pragma solidity 0.8.20; -import {SystemContractsCaller} from "../libraries/SystemContractsCaller.sol"; +import {SYSTEM_CALL_CALL_ADDRESS, MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT, SystemContractsCaller, CalldataForwardingMode} from "../libraries/SystemContractsCaller.sol"; +import "../libraries/Utils.sol"; +address constant REAL_MSG_VALUE_SYSTEM_CONTRACT = address(0x8009); + +// Proxy that sets system call, does the same thing as `ExtraAbiCaller.zasm`, but can be called with callee abi, which is more convenient. +// Also updates the real balance of the callee. contract SystemCaller { address immutable to; @@ -11,15 +16,61 @@ contract SystemCaller { to = _to; } + // The library method will not work, because it uses the MsgValueSimulator test address. fallback() external payable { - bytes memory result = SystemContractsCaller.systemCallWithPropagatedRevert( - uint32(gasleft()), - to, - uint128(msg.value), - msg.data + address callAddr = SYSTEM_CALL_CALL_ADDRESS; + + address _to = to; + bytes memory data = msg.data; + uint32 dataStart; + assembly { + dataStart := add(data, 0x20) + } + uint32 dataLength = uint32(Utils.safeCastToU32(data.length)); + + uint256 farCallAbi = SystemContractsCaller.getFarCallABI( + 0, + 0, + dataStart, + dataLength, + Utils.safeCastToU32(gasleft()), + // Only rollup is supported for now + 0, + CalldataForwardingMode.UseHeap, + false, + true ); + + bool success; + if (msg.value == 0) { + // Doing the system call directly + assembly { + success := call(_to, callAddr, 0, 0, farCallAbi, 0, 0) + } + } else { + address msgValueSimulator = REAL_MSG_VALUE_SYSTEM_CONTRACT; + // We need to supply the mask to the MsgValueSimulator to denote + // that the call should be a system one. + uint256 forwardMask = MSG_VALUE_SIMULATOR_IS_SYSTEM_BIT; + + assembly { + success := call(msgValueSimulator, callAddr, callvalue(), _to, farCallAbi, forwardMask, 0) + } + } + uint256 returnDataSize; + assembly { + returnDataSize := returndatasize() + } + bytes memory returnData = new bytes(returnDataSize); assembly { - return(add(result, 0x20), mload(result)) + returndatacopy(add(returnData, 0x20), 0, returnDataSize) + switch success + case 0 { + revert(add(returnData, 0x20), returnDataSize) + } + default { + return(add(returnData, 0x20), returnDataSize) + } } } } diff --git a/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol b/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol deleted file mode 100644 index 8eba841d..00000000 --- a/etc/system-contracts/contracts/test-contracts/TestSystemContract.sol +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -import "../Constants.sol"; - -import "../DefaultAccount.sol"; - -import "../libraries/EfficientCall.sol"; -import "../interfaces/ISystemContract.sol"; -import {SystemContractHelper} from "../libraries/SystemContractHelper.sol"; -import {TestSystemContractHelper} from "./TestSystemContractHelper.sol"; - -/// @notice An example of a system contract that be used for local testing. -/// @dev It is not used anywhere except for testing -contract TestSystemContract is ISystemContract { - modifier onlySelf() { - require(msg.sender == address(this)); - _; - } - - function testPrecompileCall() external view { - // Without precompile call - { - uint256 gasBefore = gasleft(); - uint256 gasAfter = gasleft(); - require(gasBefore - gasAfter < 10, "Spent too much gas"); - } - - { - uint256 gasBefore = gasleft(); - SystemContractHelper.unsafePrecompileCall(0, 10000); - uint256 gasAfter = gasleft(); - require(gasBefore - gasAfter > 10000, "Did not spend enough gas"); - require(gasBefore - gasAfter < 10100, "Spent too much gas"); - } - } - - function testMimicCallAndValue(address whoToMimic, uint128 value) external { - // Note that we don't need to actually have the needed balance to set the `msg.value` for the next call - SystemContractHelper.setValueForNextFarCall(value); - this.performMimicCall( - address(this), - whoToMimic, - abi.encodeCall(TestSystemContract.saveContext, ()), - false, - false - ); - - require(latestMsgSender == whoToMimic, "mimicCall does not work"); - require(latestMsgValue == value, "setValueForNextFarCall does not work"); - } - - address public latestMsgSender; - uint128 public latestMsgValue; - uint256 public extraAbiData1; - uint256 public extraAbiData2; - - function saveContext() external payable { - latestMsgSender = msg.sender; - latestMsgValue = uint128(msg.value); - extraAbiData1 = SystemContractHelper.getExtraAbiData(0); - extraAbiData2 = SystemContractHelper.getExtraAbiData(1); - } - - function testOnlySystemModifier() external { - // Firstly, system contracts should be able to call it - (bool success, ) = address(this).call(abi.encodeCall(TestSystemContract.requireOnlySystem, ())); - require(success, "System contracts can call onlySystemCall methods"); - - // Non-system contract accounts should not be able to call it. - success = this.performRawMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.requireOnlySystem, ()), - false, - false - ); - require(!success, "Normal acounts cannot call onlySystemCall methods without proper flags"); - - success = this.performRawMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.requireOnlySystem, ()), - false, - true - ); - require(success, "Normal acounts cannot call onlySystemCall methods without proper flags"); - } - - function requireOnlySystem() external onlySystemCall {} - - function testSystemMimicCall() external { - this.performSystemMimicCall( - address(this), - address(MAX_SYSTEM_CONTRACT_ADDRESS + 1), - abi.encodeCall(TestSystemContract.saveContext, ()), - false, - 100, - 120 - ); - - require(extraAbiData1 == 100, "extraAbiData1 passed incorrectly"); - require(extraAbiData2 == 120, "extraAbiData2 passed incorrectly"); - } - - function performMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - bool isSystem - ) external onlySelf returns (bytes memory) { - return EfficientCall.mimicCall(uint32(gasleft()), to, data, whoToMimic, isConstructor, isSystem); - } - - function performRawMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - bool isSystem - ) external onlySelf returns (bool) { - return EfficientCall.rawMimicCall(uint32(gasleft()), to, data, whoToMimic, isConstructor, isSystem); - } - - function performSystemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) external onlySelf { - TestSystemContractHelper.systemMimicCall(to, whoToMimic, data, isConstructor, extraAbiParam1, extraAbiParam2); - } -} diff --git a/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol b/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol deleted file mode 100644 index 2f9f7073..00000000 --- a/etc/system-contracts/contracts/test-contracts/TestSystemContractHelper.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.20; - -import {MAX_SYSTEM_CONTRACT_ADDRESS, MSG_VALUE_SYSTEM_CONTRACT} from "../Constants.sol"; - -import "../libraries/SystemContractsCaller.sol"; -import "../libraries/SystemContractHelper.sol"; -import "../libraries/Utils.sol"; - -library TestSystemContractHelper { - /// @notice Perform a `mimicCall` with `isSystem` flag, with the ability to pass extra abi data. - /// @param to The address to call - /// @param whoToMimic The `msg.sender` for the next call. - /// @param data The calldata - /// @param isConstructor Whether the call should contain the `isConstructor` flag. - /// @param extraAbiParam1 The first extraAbi param to pass with the call - /// @param extraAbiParam2 The second extraAbi param to pass with the call - /// @return The returndata if the call was successful. Reverts otherwise. - /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM) - function systemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) internal returns (bytes memory) { - bool success = rawSystemMimicCall(to, whoToMimic, data, isConstructor, extraAbiParam1, extraAbiParam2); - - uint256 size; - assembly { - size := returndatasize() - } - if (!success) { - assembly { - returndatacopy(0, 0, size) - revert(0, size) - } - } - - bytes memory result = new bytes(size); - assembly { - mstore(result, size) - returndatacopy(add(result, 0x20), 0, size) - } - return result; - } - - /// @notice Perform a `mimicCall` with `isSystem` flag, with the ability to pass extra abi data. - /// @param to The address to call - /// @param whoToMimic The `msg.sender` for the next call. - /// @param data The calldata - /// @param isConstructor Whether the call should contain the `isConstructor` flag. - /// @param extraAbiParam1 The first extraAbi param to pass with the call - /// @param extraAbiParam2 The second extraAbi param to pass with the call - /// @return success whether the call was successful. - /// @dev If called not in kernel mode, it will result in a revert (enforced by the VM) - function rawSystemMimicCall( - address to, - address whoToMimic, - bytes calldata data, - bool isConstructor, - uint256 extraAbiParam1, - uint256 extraAbiParam2 - ) internal returns (bool success) { - SystemContractHelper.loadCalldataIntoActivePtr(); - - // Currently, zkEVM considers the pointer valid if(ptr.offset < ptr.length || (ptr.length == 0 && ptr.offset == 0)), otherwise panics. - // So, if the data is empty we need to make the `ptr.length = ptr.offset = 0`, otherwise follow standard logic. - if (data.length == 0) { - // Safe to cast, offset is never bigger than `type(uint32).max` - SystemContractHelper.ptrShrinkIntoActive(uint32(msg.data.length)); - } else { - uint256 dataOffset; - assembly { - dataOffset := data.offset - } - - // Safe to cast, offset is never bigger than `type(uint32).max` - SystemContractHelper.ptrAddIntoActive(uint32(dataOffset)); - // Safe to cast, `data.length` is never bigger than `type(uint32).max` - uint32 shrinkTo = uint32(msg.data.length - (data.length + dataOffset)); - SystemContractHelper.ptrShrinkIntoActive(shrinkTo); - } - - uint32 gas = Utils.safeCastToU32(gasleft()); - uint256 farCallAbi = SystemContractsCaller.getFarCallABIWithEmptyFatPointer( - gas, - // Only rollup is supported for now - 0, - CalldataForwardingMode.ForwardFatPointer, - isConstructor, - true - ); - SystemContractHelper.ptrPackIntoActivePtr(farCallAbi); - - address callAddr = SYSTEM_MIMIC_CALL_BY_REF_CALL_ADDRESS; - uint256 cleanupMask = ADDRESS_MASK; - assembly { - // Clearing values before usage in assembly, since Solidity - // doesn't do it by default - whoToMimic := and(whoToMimic, cleanupMask) - - success := call(to, callAddr, 0, 0, whoToMimic, extraAbiParam1, extraAbiParam2) - } - } -} diff --git a/etc/system-contracts/hardhat.config.ts b/etc/system-contracts/hardhat.config.ts index 0ae0329a..32d2251a 100644 --- a/etc/system-contracts/hardhat.config.ts +++ b/etc/system-contracts/hardhat.config.ts @@ -1,15 +1,12 @@ import "@matterlabs/hardhat-zksync-chai-matchers"; +import "@matterlabs/hardhat-zksync-node"; import "@matterlabs/hardhat-zksync-solc"; import "@nomiclabs/hardhat-ethers"; -import "@nomiclabs/hardhat-solpp"; -import "@typechain/hardhat"; - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const systemConfig = require("./SystemConfig.json"); +import "hardhat-typechain"; export default { zksolc: { - version: "1.3.14", + version: "1.3.18", compilerSource: "binary", settings: { isSystem: true, @@ -33,15 +30,6 @@ export default { }, }, }, - solpp: { - defs: (() => { - return { - ECRECOVER_COST_GAS: systemConfig.ECRECOVER_COST_GAS, - KECCAK_ROUND_COST_GAS: systemConfig.KECCAK_ROUND_COST_GAS, - SHA256_ROUND_COST_GAS: systemConfig.SHA256_ROUND_COST_GAS, - }; - })(), - }, networks: { hardhat: { zksync: true, @@ -52,4 +40,7 @@ export default { zksync: true, }, }, + paths: { + sources: "./contracts-preprocessed", + }, }; diff --git a/etc/system-contracts/package.json b/etc/system-contracts/package.json index ad977d73..6867cdbe 100644 --- a/etc/system-contracts/package.json +++ b/etc/system-contracts/package.json @@ -8,41 +8,32 @@ "@nomiclabs/hardhat-solpp": "^2.0.1", "commander": "^9.4.1", "ethers": "^5.7.0", - "hardhat": "=2.16.0", + "fast-glob": "^3.3.2", + "hardhat": "^2.18.3", "preprocess": "^3.2.0", "zksync-web3": "^0.14.3" }, "devDependencies": { - "@matterlabs/eslint-config-typescript": "^1.1.2", "@matterlabs/hardhat-zksync-chai-matchers": "^0.1.4", + "@matterlabs/hardhat-zksync-node": "^0.0.1-beta.7", "@matterlabs/hardhat-zksync-solc": "^0.4.2", - "@matterlabs/prettier-config": "^1.0.3", "@nomicfoundation/hardhat-chai-matchers": "^1.0.3", - "@nomiclabs/hardhat-ethers": "^2.0.6", - "@typechain/ethers-v5": "^10.0.0", - "@typechain/hardhat": "^7.0.0", - "@types/chai": "^4.3.1", + "@nomiclabs/hardhat-ethers": "^2.0.0", + "@typechain/ethers-v5": "^2.0.0", + "@types/chai": "^4.2.21", "@types/lodash": "^4.14.199", - "@types/mocha": "^9.1.1", + "@types/mocha": "^8.2.3", "@types/node": "^17.0.34", - "@typescript-eslint/eslint-plugin": "^6.7.4", - "@typescript-eslint/parser": "^6.7.4", - "chai": "^4.3.6", - "eslint": "^8.51.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-prettier": "^5.0.1", + "chai": "^4.3.10", + "hardhat-typechain": "^0.3.3", "lodash": "^4.17.21", - "markdownlint-cli": "^0.33.0", - "mocha": "^10.0.0", - "prettier": "^3.0.3", - "prettier-plugin-solidity": "^1.1.3", - "solhint": "^3.6.2", + "mocha": "^9.0.2", "template-file": "^6.0.1", "ts-generator": "^0.1.1", - "ts-node": "^10.7.0", - "typechain": "^8.1.1", - "typescript": "^4.6.4" + "ts-node": "^10.1.0", + "typechain": "^4.0.0", + "typescript": "^4.6.4", + "zksync-ethers": "^5.0.0" }, "mocha": { "timeout": 240000, @@ -54,25 +45,22 @@ ] }, "scripts": { - "build": "yarn build:sol && yarn build:yul", - "build:sol": "hardhat compile", - "build:yul": "yarn preprocess:yul && yarn compile-yul", + "build": "yarn build:system-contracts && yarn build:bootloader", + "build:bootloader": "yarn preprocess:bootloader && yarn compile-yul compile-bootloader", + "build:system-contracts": "yarn preprocess:system-contracts && hardhat compile && yarn compile-yul compile-precompiles", + "build:test-system-contracts": "yarn preprocess:system-contracts --test-mode && hardhat compile && yarn compile-yul compile-precompiles && yarn compile-zasm", "calculate-hashes:check": "ts-node scripts/calculate-hashes.ts --check-only", "calculate-hashes:fix": "ts-node scripts/calculate-hashes.ts", - "clean": "yarn clean:sol && yarn clean:yul", - "clean:sol": "hardhat clean", - "clean:yul": "rm -rf ./bootloader/build ./bootloader/tests/artifacts ./contracts/artifacts ./contracts/precompiles/artifacts", + "clean": "yarn clean:bootloader && yarn clean:system-contracts", + "clean:bootloader": "rm -rf ./bootloader/build ./bootloader/tests/artifacts", + "clean:system-contracts": "rm -rf ./contracts-preprocessed && hardhat clean", "compile-yul": "ts-node scripts/compile-yul.ts", + "compile-zasm": "ts-node scripts/compile-zasm.ts", "deploy-preimages": "ts-node scripts/deploy-preimages.ts", - "lint:check": "yarn lint:md && yarn lint:sol && yarn lint:ts && yarn prettier:check", - "lint:fix": "yarn lint:md --fix && yarn lint:sol --fix && yarn lint:ts --fix && yarn prettier:fix", - "lint:md": "markdownlint \"**/*.md\"", - "lint:sol": "solhint \"contracts/**/*.sol\"", - "lint:ts": "eslint .", - "preprocess:yul": "rm -rf ./bootloader/build && yarn ts-node scripts/process.ts", - "prettier:check": "prettier --check \"**/*.{js,json,md,sol,ts,yaml}\"", - "prettier:fix": "prettier --write \"**/*.{js,json,md,sol,ts,yaml}\"", - "test": "hardhat test --network zkSyncTestNode", + "preprocess:bootloader": "rm -rf ./bootloader/build && yarn ts-node scripts/preprocess-bootloader.ts", + "preprocess:system-contracts": "rm -rf ./contracts-preprocessed && ts-node scripts/preprocess-system-contracts.ts", + "test": "yarn build:test-system-contracts && hardhat test --network zkSyncTestNode", + "test-node": "hardhat node-zksync --tag v0.0.1-vm1.4.1", "test:bootloader": "cd bootloader/test_infra && cargo run" } } diff --git a/etc/system-contracts/scripts/calculate-hashes.ts b/etc/system-contracts/scripts/calculate-hashes.ts index bc7fb007..1fe368d7 100644 --- a/etc/system-contracts/scripts/calculate-hashes.ts +++ b/etc/system-contracts/scripts/calculate-hashes.ts @@ -18,19 +18,29 @@ type Hashes = { type SystemContractHashes = ContractDetails & Hashes; -const findDirsEndingWith = - (endingWith: string) => - (path: string): string[] => { - const absolutePath = makePathAbsolute(path); - try { - const dirs = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()); - const dirsEndingWithSol = dirs.filter((dirent) => dirent.name.endsWith(endingWith)); - return dirsEndingWithSol.map((dirent) => dirent.name); - } catch (err) { - const msg = err instanceof Error ? err.message : "Unknown error"; - throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); - } - }; +const findDirsEndingWith = (path: string, endingWith: string): string[] => { + const absolutePath = makePathAbsolute(path); + try { + const dirs = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()); + const dirsEndingWithSol = dirs.filter((dirent) => dirent.name.endsWith(endingWith)); + return dirsEndingWithSol.map((dirent) => dirent.name); + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); + } +}; + +const findFilesEndingWith = (path: string, endingWith: string): string[] => { + const absolutePath = makePathAbsolute(path); + try { + const files = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isFile()); + const filesEndingWithSol = files.filter((dirent) => dirent.name.endsWith(endingWith)); + return filesEndingWithSol.map((dirent) => dirent.name); + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to read directory: ${absolutePath} Error: ${msg}`); + } +}; const SOLIDITY_ARTIFACTS_DIR = "artifacts-zk"; @@ -46,7 +56,7 @@ const getSolidityContractDetails = (dir: string, contractName: string): Contract const getSolidityContractsDetails = (dir: string): ContractDetails[] => { const bytecodesDir = join(SOLIDITY_ARTIFACTS_DIR, dir); - const dirsEndingWithSol = findDirsEndingWith(".sol")(bytecodesDir); + const dirsEndingWithSol = findDirsEndingWith(bytecodesDir, ".sol"); const contractNames = dirsEndingWithSol.map((d) => d.replace(".sol", "")); const solidityContractsDetails = contractNames.map((c) => getSolidityContractDetails(dir, c)); return solidityContractsDetails; @@ -55,7 +65,7 @@ const getSolidityContractsDetails = (dir: string): ContractDetails[] => { const YUL_ARTIFACTS_DIR = "artifacts"; const getYulContractDetails = (dir: string, contractName: string): ContractDetails => { - const bytecodePath = join(dir, YUL_ARTIFACTS_DIR, contractName + ".yul", contractName + ".yul.zbin"); + const bytecodePath = join(dir, YUL_ARTIFACTS_DIR, contractName + ".yul.zbin"); const sourceCodePath = join(dir, contractName + ".yul"); return { contractName, @@ -65,8 +75,7 @@ const getYulContractDetails = (dir: string, contractName: string): ContractDetai }; const getYulContractsDetails = (dir: string): ContractDetails[] => { - const bytecodesDir = join(dir, YUL_ARTIFACTS_DIR); - const dirsEndingWithYul = findDirsEndingWith(".yul")(bytecodesDir); + const dirsEndingWithYul = findFilesEndingWith(dir, ".yul"); const contractNames = dirsEndingWithYul.map((d) => d.replace(".yul", "")); const yulContractsDetails = contractNames.map((c) => getYulContractDetails(dir, c)); return yulContractsDetails; @@ -180,8 +189,8 @@ const findDifferences = (newHashes: SystemContractHashes[], oldHashes: SystemCon return differencesList; }; -const SOLIDITY_SOURCE_CODE_PATHS = ["cache-zk/solpp-generated-contracts"]; -const YUL_SOURCE_CODE_PATHS = ["contracts", "contracts/precompiles", "bootloader/build"]; +const SOLIDITY_SOURCE_CODE_PATHS = ["contracts-preprocessed"]; +const YUL_SOURCE_CODE_PATHS = ["contracts-preprocessed", "contracts-preprocessed/precompiles", "bootloader/build"]; const OUTPUT_FILE_PATH = "SystemContractsHashes.json"; const main = async () => { @@ -209,7 +218,9 @@ const main = async () => { console.log("Calculated hashes differ from the hashes in the SystemContractsHashes.json file. Differences:"); console.log(differences); if (checkOnly) { - console.log("You can use the `yarn calculate-hashes:fix` command to update the SystemContractsHashes.json file."); + console.log( + "You can use the `yarn sc calculate-hashes:fix` command to update the SystemContractsHashes.json file." + ); console.log("Exiting..."); process.exit(1); } else { @@ -225,6 +236,6 @@ main() .then(() => process.exit(0)) .catch((err) => { console.error("Error:", err.message || err); - console.log("Please make sure to run `yarn build` before running this script."); + console.log("Please make sure to run `yarn sc build` before running this script."); process.exit(1); }); diff --git a/etc/system-contracts/scripts/compile-yul.ts b/etc/system-contracts/scripts/compile-yul.ts index 15983fcf..83ed95a8 100644 --- a/etc/system-contracts/scripts/compile-yul.ts +++ b/etc/system-contracts/scripts/compile-yul.ts @@ -1,101 +1,48 @@ -import * as hre from "hardhat"; - -import { getZksolcUrl, saltFromUrl } from "@matterlabs/hardhat-zksync-solc"; -import { spawn as _spawn } from "child_process"; +import type { CompilerPaths } from "./utils"; +import { spawn, compilerLocation, prepareCompilerPaths } from "./utils"; import * as fs from "fs"; -import { getCompilersDir } from "hardhat/internal/util/global-dir"; -import path from "path"; +import { Command } from "commander"; -const COMPILER_VERSION = "1.3.14"; +const COMPILER_VERSION = "1.3.18"; const IS_COMPILER_PRE_RELEASE = false; -async function compilerLocation(): Promise { - const compilersCache = await getCompilersDir(); - - let salt = ""; - - if (IS_COMPILER_PRE_RELEASE) { - // @ts-ignore - const url = getZksolcUrl("https://github.com/matter-labs/zksolc-prerelease", hre.config.zksolc.version); - salt = saltFromUrl(url); - } - - return path.join(compilersCache, "zksolc", `zksolc-v${COMPILER_VERSION}${salt ? "-" : ""}${salt}`); -} - -// executes a command in a new shell -// but pipes data to parent's stdout/stderr -export function spawn(command: string) { - command = command.replace(/\n/g, " "); - const child = _spawn(command, { stdio: "inherit", shell: true }); - return new Promise((resolve, reject) => { - child.on("error", reject); - child.on("close", (code) => { - code == 0 ? resolve(code) : reject(`Child process exited with code ${code}`); - }); - }); -} - -export async function compileYul(path: string, files: string[], outputDirName: string | null) { - if (!files.length) { - console.log(`No test files provided in folder ${path}.`); - return; - } - const paths = preparePaths(path, files, outputDirName); - - const zksolcLocation = await compilerLocation(); - await spawn( - `${zksolcLocation} ${paths.absolutePathSources}/${paths.outputDir} --optimization 3 --system-mode --yul --bin --overwrite -o ${paths.absolutePathArtifacts}/${paths.outputDir}` - ); +export async function compileYul(paths: CompilerPaths, file: string) { + const zksolcLocation = await compilerLocation(COMPILER_VERSION, IS_COMPILER_PRE_RELEASE); + await spawn( + `${zksolcLocation} ${paths.absolutePathSources}/${file} --optimization 3 --system-mode --yul --bin --overwrite -o ${paths.absolutePathArtifacts}` + ); } export async function compileYulFolder(path: string) { - const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".yul")); - for (const file of files) { - await compileYul(path, [file], `${file}`); - } + const paths = prepareCompilerPaths(path); + const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".yul")); + for (const file of files) { + await compileYul(paths, `${file}`); + } } -function preparePaths(path: string, files: string[], outputDirName: string | null): CompilerPaths { - const filePaths = files - .map((val) => { - return `sources/${val}`; - }) - .join(" "); - const currentWorkingDirectory = process.cwd(); - console.log(`Yarn project directory: ${currentWorkingDirectory}`); - - const outputDir = outputDirName || files[0]; - // This script is located in `system-contracts/scripts`, so we get one directory back. - const absolutePathSources = `${__dirname}/../${path}`; - const absolutePathArtifacts = `${__dirname}/../${path}/artifacts`; - - return new CompilerPaths(filePaths, outputDir, absolutePathSources, absolutePathArtifacts); -} +async function main() { + const program = new Command(); -class CompilerPaths { - public filePath: string; - public outputDir: string; - public absolutePathSources: string; - public absolutePathArtifacts: string; - constructor(filePath: string, outputDir: string, absolutePathSources: string, absolutePathArtifacts: string) { - this.filePath = filePath; - this.outputDir = outputDir; - this.absolutePathSources = absolutePathSources; - this.absolutePathArtifacts = absolutePathArtifacts; - } -} + program.version("0.1.0").name("compile yul").description("publish preimages for the L2 contracts"); -async function main() { - await compileYulFolder("contracts"); - await compileYulFolder("contracts/precompiles"); + program.command("compile-bootloader").action(async () => { await compileYulFolder("bootloader/build"); await compileYulFolder("bootloader/tests"); + }); + + program.command("compile-precompiles").action(async () => { + await compileYulFolder("contracts-preprocessed"); + await compileYulFolder("contracts-preprocessed/precompiles"); + await compileYulFolder("contracts-preprocessed/precompiles/test-contracts"); + }); + + await program.parseAsync(process.argv); } main() - .then(() => process.exit(0)) - .catch((err) => { - console.error("Error:", err.message || err); - process.exit(1); - }); + .then(() => process.exit(0)) + .catch((err) => { + console.error("Error:", err.message || err); + process.exit(1); + }); diff --git a/etc/system-contracts/scripts/compile-zasm.ts b/etc/system-contracts/scripts/compile-zasm.ts new file mode 100644 index 00000000..46e41ed9 --- /dev/null +++ b/etc/system-contracts/scripts/compile-zasm.ts @@ -0,0 +1,33 @@ +import type { CompilerPaths } from "./utils"; +import { spawn, compilerLocation, prepareCompilerPaths } from "./utils"; +import * as fs from "fs"; + +const COMPILER_VERSION = "1.3.18"; +const IS_COMPILER_PRE_RELEASE = false; + +export async function compileZasm(paths: CompilerPaths, file: string) { + const zksolcLocation = await compilerLocation(COMPILER_VERSION, IS_COMPILER_PRE_RELEASE); + await spawn( + `${zksolcLocation} ${paths.absolutePathSources}/${file} --zkasm --bin --overwrite -o ${paths.absolutePathArtifacts}` + ); +} + +export async function compileZasmFolder(path: string) { + const paths = prepareCompilerPaths(path); + const files: string[] = (await fs.promises.readdir(path)).filter((fn) => fn.endsWith(".zasm")); + for (const file of files) { + await compileZasm(paths, `${file}`); + } +} + +// Currently used only for the test contracts +async function main() { + await compileZasmFolder("contracts-preprocessed/test-contracts"); +} + +main() + .then(() => process.exit(0)) + .catch((err) => { + console.error("Error:", err.message || err); + process.exit(1); + }); diff --git a/etc/system-contracts/scripts/constants.ts b/etc/system-contracts/scripts/constants.ts index 991f5ef9..9cd5675c 100644 --- a/etc/system-contracts/scripts/constants.ts +++ b/etc/system-contracts/scripts/constants.ts @@ -5,137 +5,144 @@ export const BOOTLOADER_FORMAL_ADDRESS = "0x000000000000000000000000000000000000 export const ETH_ADDRESS = constants.AddressZero; export enum Language { - Solidity = "solidity", - Yul = "yul", + Solidity = "solidity", + Yul = "yul", + Zasm = "zasm", } export interface SystemContractDescription { - address: string; - codeName: string; + address: string; + codeName: string; } export interface YulContractDescrption extends SystemContractDescription { - lang: Language.Yul; - path: string; + lang: Language.Yul; + path: string; +} + +// Currently used only for the tests +export interface ZasmContractDescrption extends SystemContractDescription { + lang: Language.Zasm; + path: string; } export interface SolidityContractDescription extends SystemContractDescription { - lang: Language.Solidity; + lang: Language.Solidity; } interface ISystemContracts { - [key: string]: YulContractDescrption | SolidityContractDescription; + [key: string]: YulContractDescrption | SolidityContractDescription; } export const SYSTEM_CONTRACTS: ISystemContracts = { - zeroAddress: { - // zero address has EmptyContract code - address: "0x0000000000000000000000000000000000000000", - codeName: "EmptyContract", - lang: Language.Solidity, - }, - ecrecover: { - address: "0x0000000000000000000000000000000000000001", - codeName: "Ecrecover", - lang: Language.Yul, - path: "precompiles", - }, - sha256: { - address: "0x0000000000000000000000000000000000000002", - codeName: "SHA256", - lang: Language.Yul, - path: "precompiles", - }, - ecAdd: { - address: "0x0000000000000000000000000000000000000006", - codeName: "EcAdd", - lang: Language.Yul, - path: "precompiles", - }, - ecMul: { - address: "0x0000000000000000000000000000000000000007", - codeName: "EcMul", - lang: Language.Yul, - path: "precompiles", - }, - bootloader: { - // Bootloader has EmptyContract code - address: "0x0000000000000000000000000000000000008001", - codeName: "EmptyContract", - lang: Language.Solidity, - }, - accountCodeStorage: { - address: "0x0000000000000000000000000000000000008002", - codeName: "AccountCodeStorage", - lang: Language.Solidity, - }, - nonceHolder: { - address: "0x0000000000000000000000000000000000008003", - codeName: "NonceHolder", - lang: Language.Solidity, - }, - knownCodesStorage: { - address: "0x0000000000000000000000000000000000008004", - codeName: "KnownCodesStorage", - lang: Language.Solidity, - }, - immutableSimulator: { - address: "0x0000000000000000000000000000000000008005", - codeName: "ImmutableSimulator", - lang: Language.Solidity, - }, - contractDeployer: { - address: "0x0000000000000000000000000000000000008006", - codeName: "ContractDeployer", - lang: Language.Solidity, - }, - l1Messenger: { - address: "0x0000000000000000000000000000000000008008", - codeName: "L1Messenger", - lang: Language.Solidity, - }, - msgValueSimulator: { - address: "0x0000000000000000000000000000000000008009", - codeName: "MsgValueSimulator", - lang: Language.Solidity, - }, - l2EthToken: { - address: "0x000000000000000000000000000000000000800a", - codeName: "L2EthToken", - lang: Language.Solidity, - }, - systemContext: { - address: "0x000000000000000000000000000000000000800b", - codeName: "SystemContext", - lang: Language.Solidity, - }, - bootloaderUtilities: { - address: "0x000000000000000000000000000000000000800c", - codeName: "BootloaderUtilities", - lang: Language.Solidity, - }, - eventWriter: { - address: "0x000000000000000000000000000000000000800d", - codeName: "EventWriter", - lang: Language.Yul, - path: "", - }, - compressor: { - address: "0x000000000000000000000000000000000000800e", - codeName: "Compressor", - lang: Language.Solidity, - }, - complexUpgrader: { - address: "0x000000000000000000000000000000000000800f", - codeName: "ComplexUpgrader", - lang: Language.Solidity, - }, - keccak256: { - address: "0x0000000000000000000000000000000000008010", - codeName: "Keccak256", - lang: Language.Yul, - path: "precompiles", - }, + zeroAddress: { + // zero address has EmptyContract code + address: "0x0000000000000000000000000000000000000000", + codeName: "EmptyContract", + lang: Language.Solidity, + }, + ecrecover: { + address: "0x0000000000000000000000000000000000000001", + codeName: "Ecrecover", + lang: Language.Yul, + path: "precompiles", + }, + sha256: { + address: "0x0000000000000000000000000000000000000002", + codeName: "SHA256", + lang: Language.Yul, + path: "precompiles", + }, + ecAdd: { + address: "0x0000000000000000000000000000000000000006", + codeName: "EcAdd", + lang: Language.Yul, + path: "precompiles", + }, + ecMul: { + address: "0x0000000000000000000000000000000000000007", + codeName: "EcMul", + lang: Language.Yul, + path: "precompiles", + }, + bootloader: { + // Bootloader has EmptyContract code + address: "0x0000000000000000000000000000000000008001", + codeName: "EmptyContract", + lang: Language.Solidity, + }, + accountCodeStorage: { + address: "0x0000000000000000000000000000000000008002", + codeName: "AccountCodeStorage", + lang: Language.Solidity, + }, + nonceHolder: { + address: "0x0000000000000000000000000000000000008003", + codeName: "NonceHolder", + lang: Language.Solidity, + }, + knownCodesStorage: { + address: "0x0000000000000000000000000000000000008004", + codeName: "KnownCodesStorage", + lang: Language.Solidity, + }, + immutableSimulator: { + address: "0x0000000000000000000000000000000000008005", + codeName: "ImmutableSimulator", + lang: Language.Solidity, + }, + contractDeployer: { + address: "0x0000000000000000000000000000000000008006", + codeName: "ContractDeployer", + lang: Language.Solidity, + }, + l1Messenger: { + address: "0x0000000000000000000000000000000000008008", + codeName: "L1Messenger", + lang: Language.Solidity, + }, + msgValueSimulator: { + address: "0x0000000000000000000000000000000000008009", + codeName: "MsgValueSimulator", + lang: Language.Solidity, + }, + l2EthToken: { + address: "0x000000000000000000000000000000000000800a", + codeName: "L2EthToken", + lang: Language.Solidity, + }, + systemContext: { + address: "0x000000000000000000000000000000000000800b", + codeName: "SystemContext", + lang: Language.Solidity, + }, + bootloaderUtilities: { + address: "0x000000000000000000000000000000000000800c", + codeName: "BootloaderUtilities", + lang: Language.Solidity, + }, + eventWriter: { + address: "0x000000000000000000000000000000000000800d", + codeName: "EventWriter", + lang: Language.Yul, + path: "", + }, + compressor: { + address: "0x000000000000000000000000000000000000800e", + codeName: "Compressor", + lang: Language.Solidity, + }, + complexUpgrader: { + address: "0x000000000000000000000000000000000000800f", + codeName: "ComplexUpgrader", + lang: Language.Solidity, + }, + keccak256: { + address: "0x0000000000000000000000000000000000008010", + codeName: "Keccak256", + lang: Language.Yul, + path: "precompiles", + }, } as const; export const EIP712_TX_ID = 113; @@ -143,61 +150,61 @@ export const CHAIN_ID = 270; // For now, these types are hardcoded, but maybe it will make sense export const EIP712_DOMAIN = { - name: "zkSync", - version: "2", - chainId: CHAIN_ID, - // zkSync contract doesn't verify EIP712 signatures. + name: "zkSync", + version: "2", + chainId: CHAIN_ID, + // zkSync contract doesn't verify EIP712 signatures. }; export interface TransactionData { - txType: BigNumberish; - from: BigNumberish; - to: BigNumberish; - gasLimit: BigNumberish; - gasPerPubdataByteLimit: BigNumberish; - gasPrice: BigNumberish; - // In the future, we might want to add some - // new fields to the struct. The `txData` struct - // is to be passed to account and any changes to its structure - // would mean a breaking change to these accounts. In order to prevent this, - // we should keep some fields as "reserved". - // It is also recommended that their length is fixed, since - // it would allow easier proof integration (in case we will need - // some special circuit for preprocessing transactions). - reserved: BigNumberish[]; - data: BytesLike; - signature: BytesLike; - // Reserved dynamic type for the future use-case. Using it should be avoided, - // But it is still here, just in case we want to enable some additional functionality. - reservedDynamic: BytesLike; + txType: BigNumberish; + from: BigNumberish; + to: BigNumberish; + gasLimit: BigNumberish; + gasPerPubdataByteLimit: BigNumberish; + gasPrice: BigNumberish; + // In the future, we might want to add some + // new fields to the struct. The `txData` struct + // is to be passed to account and any changes to its structure + // would mean a breaking change to these accounts. In order to prevent this, + // we should keep some fields as "reserved". + // It is also recommended that their length is fixed, since + // it would allow easier proof integration (in case we will need + // some special circuit for preprocessing transactions). + reserved: BigNumberish[]; + data: BytesLike; + signature: BytesLike; + // Reserved dynamic type for the future use-case. Using it should be avoided, + // But it is still here, just in case we want to enable some additional functionality. + reservedDynamic: BytesLike; } export interface EIP712Tx { - txType: BigNumberish; - from: BigNumberish; - to: BigNumberish; - value: BigNumberish; - gasLimit: BigNumberish; - gasPerPubdataByteLimit: BigNumberish; - gasPrice: BigNumberish; - nonce: BigNumberish; - data: BytesLike; - signature: BytesLike; + txType: BigNumberish; + from: BigNumberish; + to: BigNumberish; + value: BigNumberish; + gasLimit: BigNumberish; + gasPerPubdataByteLimit: BigNumberish; + gasPrice: BigNumberish; + nonce: BigNumberish; + data: BytesLike; + signature: BytesLike; } export type Address = string; export const EIP712_TX_TYPE = { - Transaction: [ - { name: "txType", type: "uint8" }, - { name: "to", type: "uint256" }, - { name: "value", type: "uint256" }, - { name: "data", type: "bytes" }, - { name: "gasLimit", type: "uint256" }, - { name: "gasPerPubdataByteLimit", type: "uint256" }, - { name: "gasPrice", type: "uint256" }, - { name: "nonce", type: "uint256" }, - ], + Transaction: [ + { name: "txType", type: "uint8" }, + { name: "to", type: "uint256" }, + { name: "value", type: "uint256" }, + { name: "data", type: "bytes" }, + { name: "gasLimit", type: "uint256" }, + { name: "gasPerPubdataByteLimit", type: "uint256" }, + { name: "gasPrice", type: "uint256" }, + { name: "nonce", type: "uint256" }, + ], }; export type DynamicType = "bytes" | "bytes32[]"; @@ -205,63 +212,63 @@ export type FixedType = "address" | "uint256" | "uint128" | "uint32"; export type FieldType = FixedType | DynamicType; function isDynamicType(x: FieldType): x is DynamicType { - return x == "bytes" || x == "bytes32[]"; + return x == "bytes" || x == "bytes32[]"; } function isFixedType(x: FieldType): x is FixedType { - return !isDynamicType(x); + return !isDynamicType(x); } export const TransactionFields: Record = { - txType: "uint256", - from: "address", - to: "address", - gasLimit: "uint32", - gasPerPubdataByteLimit: "uint32", - maxFeePerGas: "uint256", - maxPriorityFeePerGas: "uint256", - paymaster: "address", - // In the future, we might want to add some - // new fields to the struct. The `txData` struct - // is to be passed to account and any changes to its structure - // would mean a breaking change to these accounts. In order to prevent this, - // we should keep some fields as "reserved". - // It is also recommended that their length is fixed, since - // it would allow easier proof integration (in case we will need - // some special circuit for preprocessing transactions). - reserved: Array(6).fill("uint256"), - data: "bytes", - signature: "bytes", - factoryDeps: "bytes32[]", - paymasterInput: "bytes", - // Reserved dynamic type for the future use-case. Using it should be avoided, - // But it is still here, just in case we want to enable some additional functionality. - reservedDynamic: "bytes", + txType: "uint256", + from: "address", + to: "address", + gasLimit: "uint32", + gasPerPubdataByteLimit: "uint32", + maxFeePerGas: "uint256", + maxPriorityFeePerGas: "uint256", + paymaster: "address", + // In the future, we might want to add some + // new fields to the struct. The `txData` struct + // is to be passed to account and any changes to its structure + // would mean a breaking change to these accounts. In order to prevent this, + // we should keep some fields as "reserved". + // It is also recommended that their length is fixed, since + // it would allow easier proof integration (in case we will need + // some special circuit for preprocessing transactions). + reserved: Array(6).fill("uint256"), + data: "bytes", + signature: "bytes", + factoryDeps: "bytes32[]", + paymasterInput: "bytes", + // Reserved dynamic type for the future use-case. Using it should be avoided, + // But it is still here, just in case we want to enable some additional functionality. + reservedDynamic: "bytes", }; function capitalize(s: string) { - if (!s.length) { - return s; - } - return `${s[0].toUpperCase()}${s.substring(1)}`; + if (!s.length) { + return s; + } + return `${s[0].toUpperCase()}${s.substring(1)}`; } function memPosFromOffset(offset: number) { - return offset === 0 ? "innerTxDataOffset" : `add(innerTxDataOffset, ${offset})`; + return offset === 0 ? "innerTxDataOffset" : `add(innerTxDataOffset, ${offset})`; } function getGetterName(fieldName: string) { - return `get${capitalize(fieldName)}`; + return `get${capitalize(fieldName)}`; } function getPtrGetterName(fieldName: string) { - return `get${capitalize(fieldName)}Ptr`; + return `get${capitalize(fieldName)}Ptr`; } function getGetter(fieldName: string, offset: number) { - const getterName = getGetterName(fieldName); - const memPos = memPosFromOffset(offset); - return ` + const getterName = getGetterName(fieldName); + const memPos = memPosFromOffset(offset); + return ` function ${getterName}(innerTxDataOffset) -> ret { ret := mload(${memPos}) } @@ -269,9 +276,9 @@ function getGetter(fieldName: string, offset: number) { } function getPtrGetter(fieldName: string, offset: number) { - const getterName = getPtrGetterName(fieldName); - const memPos = memPosFromOffset(offset); - return ` + const getterName = getPtrGetterName(fieldName); + const memPos = memPosFromOffset(offset); + return ` function ${getterName}(innerTxDataOffset) -> ret { ret := mload(${memPos}) ret := add(innerTxDataOffset, ret) @@ -280,29 +287,29 @@ function getPtrGetter(fieldName: string, offset: number) { } function getTypeValidationMethodName(type: FieldType) { - if (type == "bytes32[]") { - return "validateBytes32Array"; - } else { - return `validate${capitalize(type)}`; - } + if (type == "bytes32[]") { + return "validateBytes32Array"; + } else { + return `validate${capitalize(type)}`; + } } function getBytesLengthGetterName(fieldName: string): string { - return `get${capitalize(fieldName)}BytesLength`; + return `get${capitalize(fieldName)}BytesLength`; } function getBytesLengthGetter(fieldName: string, type: DynamicType) { - let lengthToBytes: string; - if (type == "bytes") { - lengthToBytes = "lengthToWords(mload(ptr))"; - } else if (type == "bytes32[]") { - lengthToBytes = "mul(mload(ptr),32)"; - } else { - throw new Error(`Type ${type} is not supported`); - } - - const getterName = getBytesLengthGetterName(fieldName); - return ` + let lengthToBytes: string; + if (type == "bytes") { + lengthToBytes = "lengthToWords(mload(ptr))"; + } else if (type == "bytes32[]") { + lengthToBytes = "mul(mload(ptr),32)"; + } else { + throw new Error(`Type ${type} is not supported`); + } + + const getterName = getBytesLengthGetterName(fieldName); + return ` function ${getterName}(innerTxDataOffset) -> ret { let ptr := ${getPtrGetterName(fieldName)}(innerTxDataOffset) ret := ${lengthToBytes} @@ -311,14 +318,14 @@ function getBytesLengthGetter(fieldName: string, type: DynamicType) { } function getDataLength(baseLength: number, dynamicFields: [string, DynamicType][]) { - const ptrAdders = dynamicFields - .map(([fieldName]) => { - return ` + const ptrAdders = dynamicFields + .map(([fieldName]) => { + return ` ret := add(ret, ${getBytesLengthGetterName(fieldName)}(innerTxDataOffset))`; - }) - .join(""); + }) + .join(""); - return ` + return ` function getDataLength(innerTxDataOffset) -> ret { // To get the length of the txData in bytes, we can simply // get the number of fields * 32 + the length of the dynamic types @@ -331,13 +338,13 @@ function getDataLength(baseLength: number, dynamicFields: [string, DynamicType][ } function validateFixedSizeField(fieldName: string, type: FixedType): string { - if (type == "uint256") { - // There is no validation for uint256 - return ""; - } - const assertionErrorStr = getEncodingError(fieldName); - const fieldValue = `${fieldName}Value`; - return ` + if (type == "uint256") { + // There is no validation for uint256 + return ""; + } + const assertionErrorStr = getEncodingError(fieldName); + const fieldValue = `${fieldName}Value`; + return ` let ${fieldValue} := ${getGetterName(fieldName)}(innerTxDataOffset) if iszero(${getTypeValidationMethodName(type)}(${fieldValue})) { assertionError("${assertionErrorStr}") @@ -346,39 +353,39 @@ function validateFixedSizeField(fieldName: string, type: FixedType): string { } function getEncodingError(fieldName: string) { - // Unfortunately we have to keep this not-so-readable name - // because the maximum length is 32. - const assertionError = `Encoding ${fieldName}`; + // Unfortunately we have to keep this not-so-readable name + // because the maximum length is 32. + const assertionError = `Encoding ${fieldName}`; - if (assertionError.length > 32) { - throw new Error(`Assertion str too long: ${assertionError}`); - } + if (assertionError.length > 32) { + throw new Error(`Assertion str too long: ${assertionError}`); + } - return assertionError; + return assertionError; } function getValidateTxStructure( - fixedFieldsChecks: string, - fixedLenPart: number, - dynamicFields: [string, DynamicType][] + fixedFieldsChecks: string, + fixedLenPart: number, + dynamicFields: [string, DynamicType][] ): string { - const dynamicChecks = dynamicFields - .map(([fieldName, type]) => { - const lengthPos = `${fieldName}LengthPos`; - const assertionError = getEncodingError(fieldName); - const validationMethod = getTypeValidationMethodName(type); + const dynamicChecks = dynamicFields + .map(([fieldName, type]) => { + const lengthPos = `${fieldName}LengthPos`; + const assertionError = getEncodingError(fieldName); + const validationMethod = getTypeValidationMethodName(type); - return ` + return ` let ${lengthPos} := ${getPtrGetterName(fieldName)}(innerTxDataOffset) if iszero(eq(${lengthPos}, expectedDynamicLenPtr)) { assertionError("${assertionError}") } expectedDynamicLenPtr := ${validationMethod}(${lengthPos}) `; - }) - .join("\n"); + }) + .join("\n"); - return ` + return ` /// This method checks that the transaction's structure is correct /// and tightly packed function validateAbiEncoding(innerTxDataOffset) -> ret { @@ -390,42 +397,42 @@ function getValidateTxStructure( } export function getTransactionUtils(): string { - let result = `/// + let result = `/// /// TransactionData utilities ///\n`; - let innerOffsetBytes = 0; - let checksStr = ""; - - const dynamicFields: [string, DynamicType][] = []; - for (const [key, value] of Object.entries(TransactionFields)) { - if (Array.isArray(value)) { - // We assume that the - for (let i = 0; i < value.length; i++) { - const keyName = `${key}${i}`; - result += getGetter(keyName, innerOffsetBytes); - checksStr += validateFixedSizeField(keyName, value[i]); - innerOffsetBytes += 32; - } - } else if (isFixedType(value)) { - result += getGetter(key, innerOffsetBytes); - checksStr += validateFixedSizeField(key, value); - innerOffsetBytes += 32; - } else { - result += getPtrGetter(key, innerOffsetBytes); - result += getBytesLengthGetter(key, value); - dynamicFields.push([key, value]); - innerOffsetBytes += 32; - } + let innerOffsetBytes = 0; + let checksStr = ""; + + const dynamicFields: [string, DynamicType][] = []; + for (const [key, value] of Object.entries(TransactionFields)) { + if (Array.isArray(value)) { + // We assume that the + for (let i = 0; i < value.length; i++) { + const keyName = `${key}${i}`; + result += getGetter(keyName, innerOffsetBytes); + checksStr += validateFixedSizeField(keyName, value[i]); + innerOffsetBytes += 32; + } + } else if (isFixedType(value)) { + result += getGetter(key, innerOffsetBytes); + checksStr += validateFixedSizeField(key, value); + innerOffsetBytes += 32; + } else { + result += getPtrGetter(key, innerOffsetBytes); + result += getBytesLengthGetter(key, value); + dynamicFields.push([key, value]); + innerOffsetBytes += 32; } + } - result += getValidateTxStructure(checksStr, innerOffsetBytes, dynamicFields); + result += getValidateTxStructure(checksStr, innerOffsetBytes, dynamicFields); - result += getDataLength(innerOffsetBytes, dynamicFields); + result += getDataLength(innerOffsetBytes, dynamicFields); - return result; + return result; } export function getRevertSelector(): string { - return ethers.utils.keccak256(ethers.utils.toUtf8Bytes("Error(string)")).substring(0, 10); + return ethers.utils.keccak256(ethers.utils.toUtf8Bytes("Error(string)")).substring(0, 10); } diff --git a/etc/system-contracts/scripts/deploy-preimages.ts b/etc/system-contracts/scripts/deploy-preimages.ts index 20cc8611..4f45ef56 100644 --- a/etc/system-contracts/scripts/deploy-preimages.ts +++ b/etc/system-contracts/scripts/deploy-preimages.ts @@ -2,16 +2,17 @@ import * as hre from "hardhat"; import { Deployer } from "@matterlabs/hardhat-zksync-deploy"; import { Command } from "commander"; -import type { BigNumber } from "ethers"; +import type { BigNumber, BytesLike } from "ethers"; import { ethers } from "ethers"; import { formatUnits, parseUnits } from "ethers/lib/utils"; import * as fs from "fs"; import * as path from "path"; +import type { types } from "zksync-web3"; import { Provider, Wallet } from "zksync-web3"; import { hashBytecode } from "zksync-web3/build/src/utils"; import { Language, SYSTEM_CONTRACTS } from "./constants"; import type { Dependency, DeployedDependency } from "./utils"; -import { filterPublishedFactoryDeps, publishFactoryDeps, readYulBytecode } from "./utils"; +import { checkMarkers, filterPublishedFactoryDeps, getBytecodes, publishFactoryDeps, readYulBytecode } from "./utils"; const testConfigPath = path.join(process.env.ZKSYNC_HOME as string, "etc/test_config/constant"); const ethTestConfig = JSON.parse(fs.readFileSync(`${testConfigPath}/eth.json`, { encoding: "utf-8" })); @@ -22,6 +23,58 @@ const MAX_COMBINED_LENGTH = 90000; const DEFAULT_ACCOUNT_CONTRACT_NAME = "DefaultAccount"; const BOOTLOADER_CONTRACT_NAME = "Bootloader"; +const CONSOLE_COLOR_RESET = "\x1b[0m"; +const CONSOLE_COLOR_RED = "\x1b[31m"; +const CONSOLE_COLOR_GREEN = "\x1b[32m"; + +interface TransactionReport { + msg: string; + success: boolean; +} + +class PublishReporter { + // Promises for pending L1->L2 transactions with submitted bytecode hashes. + // Each promise will return either string with error or null denoting success. + pendingPromises: Promise[] = []; + + async appendPublish(bytecodes: BytesLike[], deployer: Deployer, transaction: types.PriorityOpResponse) { + const waitAndDoubleCheck = async () => { + // Waiting for the transaction to be processed by the server + await transaction.wait(); + + // Double checking that indeed the dependencies have been marked as known + await checkMarkers(bytecodes, deployer); + }; + + this.pendingPromises.push( + waitAndDoubleCheck() + .catch((err) => { + return Promise.resolve({ + msg: `Transaction ${transaction.hash} failed with ${err.message || err}`, + success: false, + }); + }) + .then(() => { + return Promise.resolve({ + msg: `Transaction ${transaction.hash} was successful`, + success: true, + }); + }) + ); + } + + async report() { + const results = await Promise.all(this.pendingPromises); + results.forEach((result) => { + if (result.success) { + console.log(CONSOLE_COLOR_GREEN + result.msg + CONSOLE_COLOR_RESET); + } else { + console.log(CONSOLE_COLOR_RED + result.msg + CONSOLE_COLOR_RESET); + } + }); + } +} + class ZkSyncDeployer { deployer: Deployer; gasPrice: BigNumber; @@ -29,15 +82,23 @@ class ZkSyncDeployer { dependenciesToUpgrade: DeployedDependency[]; defaultAccountToUpgrade?: DeployedDependency; bootloaderToUpgrade?: DeployedDependency; + reporter: PublishReporter; constructor(deployer: Deployer, gasPrice: BigNumber, nonce: number) { this.deployer = deployer; this.gasPrice = gasPrice; this.nonce = nonce; this.dependenciesToUpgrade = []; + this.reporter = new PublishReporter(); } async publishFactoryDeps(dependencies: Dependency[]) { - await publishFactoryDeps(dependencies, this.deployer, this.nonce, this.gasPrice); + if (dependencies.length === 0) { + return; + } + + const priorityOpHandle = await publishFactoryDeps(dependencies, this.deployer, this.nonce, this.gasPrice); + + await this.reporter.appendPublish(getBytecodes(dependencies), this.deployer, priorityOpHandle); this.nonce += 1; } @@ -80,7 +141,6 @@ class ZkSyncDeployer { bytecodes: defaultAccountBytecodes, }, ]); - this.nonce += 1; } // Publishes the bytecode of default AA and appends it to the deployed bytecodes if needed. @@ -128,9 +188,7 @@ class ZkSyncDeployer { } async processBootloader() { - const bootloaderCode = ethers.utils.hexlify( - fs.readFileSync("./bootloader/build/artifacts/proved_batch.yul/proved_batch.yul.zbin") - ); + const bootloaderCode = ethers.utils.hexlify(fs.readFileSync("./bootloader/build/artifacts/proved_batch.yul.zbin")); await this.publishBootloader(bootloaderCode); await this.checkShouldUpgradeBootloader(bootloaderCode); @@ -286,6 +344,9 @@ async function main() { await zkSyncDeployer.publishDependencies(dependenciesToPublish); } + console.log("\nSending all L1->L2 transactions done. Now waiting for the reports on those...\n"); + await zkSyncDeployer.reporter.report(); + const result = zkSyncDeployer.returnResult(); console.log(JSON.stringify(result, null, 2)); if (cmd.file) { diff --git a/etc/system-contracts/scripts/preprocess-bootloader.ts b/etc/system-contracts/scripts/preprocess-bootloader.ts new file mode 100644 index 00000000..98de5943 --- /dev/null +++ b/etc/system-contracts/scripts/preprocess-bootloader.ts @@ -0,0 +1,243 @@ +import * as hre from "hardhat"; + +import { ethers } from "ethers"; +import { existsSync, mkdirSync, writeFileSync, readFileSync } from "fs"; +import { render, renderFile } from "template-file"; +import { utils } from "zksync-web3"; +import { getRevertSelector, getTransactionUtils } from "./constants"; + +/* eslint-disable @typescript-eslint/no-var-requires */ +const preprocess = require("preprocess"); +// TEST NODE CHANGE BEGIN: path changed from "../../SystemConfig.json" +const SYSTEM_PARAMS = require("../SystemConfig.json"); +// TEST NODE CHANGE END +/* eslint-enable@typescript-eslint/no-var-requires */ + +const OUTPUT_DIR = "bootloader/build"; + +const PREPROCCESING_MODES = ["proved_batch", "playground_batch"]; + +function getSelector(contractName: string, method: string): string { + const artifact = hre.artifacts.readArtifactSync(contractName); + const contractInterface = new ethers.utils.Interface(artifact.abi); + + return contractInterface.getSighash(method); +} + +// Methods from ethers do zero pad from left, but we need to pad from the right +function padZeroRight(hexData: string, length: number): string { + while (hexData.length < length) { + hexData += "0"; + } + + return hexData; +} + +const PADDED_SELECTOR_LENGTH = 32 * 2 + 2; +function getPaddedSelector(contractName: string, method: string): string { + const result = getSelector(contractName, method); + + return padZeroRight(result, PADDED_SELECTOR_LENGTH); +} + +function getKeccak256ExpectedHash() { + const bytecode = readFileSync("contracts-preprocessed/precompiles/artifacts/Keccak256.yul.zbin"); + return ethers.utils.hexlify(utils.hashBytecode(bytecode)); +} + +// Maybe in the future some of these params will be passed +// in a JSON file. For now, a simple object is ok here. +const params = { + MARK_BATCH_AS_REPUBLISHED_SELECTOR: getSelector("KnownCodesStorage", "markFactoryDeps"), + VALIDATE_TX_SELECTOR: getSelector("IAccount", "validateTransaction"), + EXECUTE_TX_SELECTOR: getSelector("DefaultAccount", "executeTransaction"), + RIGHT_PADDED_GET_ACCOUNT_VERSION_SELECTOR: getPaddedSelector("ContractDeployer", "extendedAccountVersion"), + RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR: getPaddedSelector("AccountCodeStorage", "getRawCodeHash"), + PAY_FOR_TX_SELECTOR: getSelector("DefaultAccount", "payForTransaction"), + PRE_PAYMASTER_SELECTOR: getSelector("DefaultAccount", "prepareForPaymaster"), + VALIDATE_AND_PAY_PAYMASTER: getSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), + // It doesn't used directly now but is important to keep the way to regenerate it when needed + TX_UTILITIES: getTransactionUtils(), + RIGHT_PADDED_POST_TRANSACTION_SELECTOR: getPaddedSelector("IPaymaster", "postTransaction"), + RIGHT_PADDED_SET_TX_ORIGIN: getPaddedSelector("SystemContext", "setTxOrigin"), + RIGHT_PADDED_SET_GAS_PRICE: getPaddedSelector("SystemContext", "setGasPrice"), + RIGHT_PADDED_INCREMENT_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "incrementTxNumberInBatch"), + RIGHT_PADDED_RESET_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "resetTxNumberInBatch"), + RIGHT_PADDED_SEND_L2_TO_L1_LOG_SELECTOR: getPaddedSelector("L1Messenger", "sendL2ToL1Log"), + PUBLISH_PUBDATA_SELECTOR: getSelector("L1Messenger", "publishPubdataAndClearState"), + RIGHT_PADDED_SET_NEW_BATCH_SELECTOR: getPaddedSelector("SystemContext", "setNewBatch"), + RIGHT_PADDED_OVERRIDE_BATCH_SELECTOR: getPaddedSelector("SystemContext", "unsafeOverrideBatch"), + // Error + REVERT_ERROR_SELECTOR: padZeroRight(getRevertSelector(), PADDED_SELECTOR_LENGTH), + RIGHT_PADDED_VALIDATE_NONCE_USAGE_SELECTOR: getPaddedSelector("INonceHolder", "validateNonceUsage"), + RIGHT_PADDED_MINT_ETHER_SELECTOR: getPaddedSelector("L2EthToken", "mint"), + GET_TX_HASHES_SELECTOR: getSelector("BootloaderUtilities", "getTransactionHashes"), + CREATE_SELECTOR: getSelector("ContractDeployer", "create"), + CREATE2_SELECTOR: getSelector("ContractDeployer", "create2"), + CREATE_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "createAccount"), + CREATE2_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "create2Account"), + PADDED_TRANSFER_FROM_TO_SELECTOR: getPaddedSelector("L2EthToken", "transferFromTo"), + SUCCESSFUL_ACCOUNT_VALIDATION_MAGIC_VALUE: getPaddedSelector("IAccount", "validateTransaction"), + SUCCESSFUL_PAYMASTER_VALIDATION_MAGIC_VALUE: getPaddedSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), + PUBLISH_COMPRESSED_BYTECODE_SELECTOR: getSelector("Compressor", "publishCompressedBytecode"), + GET_MARKER_PADDED_SELECTOR: getPaddedSelector("KnownCodesStorage", "getMarker"), + RIGHT_PADDED_SET_L2_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "setL2Block"), + RIGHT_PADDED_APPEND_TRANSACTION_TO_L2_BLOCK_SELECTOR: getPaddedSelector( + "SystemContext", + "appendTransactionToCurrentL2Block" + ), + RIGHT_PADDED_PUBLISH_TIMESTAMP_DATA_TO_L1_SELECTOR: getPaddedSelector("SystemContext", "publishTimestampDataToL1"), + COMPRESSED_BYTECODES_SLOTS: 32768, + ENSURE_RETURNED_MAGIC: 1, + FORBID_ZERO_GAS_PER_PUBDATA: 1, + KECCAK256_EXPECTED_CODE_HASH: getKeccak256ExpectedHash(), + PADDED_FORCE_DEPLOY_KECCAK256_SELECTOR: getPaddedSelector("ContractDeployer", "forceDeployKeccak256"), + // One of "worst case" scenarios for the number of state diffs in a batch is when 120kb of pubdata is spent + // on repeated writes, that are all zeroed out. In this case, the number of diffs is 120k / 5 = 24k. This means that they will have + // accoomdate 6528000 bytes of calldata for the uncompressed state diffs. Adding 120k on top leaves us with + // roughly 6650000 bytes needed for calldata. 207813 slots are needed to accomodate this amount of data. + // We round up to 208000 slots just in case. + // + // In theory though much more calldata could be used (if for instance 1 byte is used for enum index). It is the responsibility of the + // operator to ensure that it can form the correct calldata for the L1Messenger. + OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS: 208000, + ...SYSTEM_PARAMS, +}; + +function extractTestFunctionNames(sourceCode: string): string[] { + // Remove single-line comments + sourceCode = sourceCode.replace(/\/\/[^\n]*/g, ""); + + // Remove multi-line comments + sourceCode = sourceCode.replace(/\/\*[\s\S]*?\*\//g, ""); + + const regexPatterns = [/function\s+(TEST\w+)/g]; + + const results: string[] = []; + for (const pattern of regexPatterns) { + let match; + while ((match = pattern.exec(sourceCode)) !== null) { + results.push(match[1]); + } + } + + return [...new Set(results)]; // Remove duplicates +} + +function createTestFramework(tests: string[]): string { + let testFramework = ` + let test_id:= mload(0) + + switch test_id + case 0 { + testing_totalTests(${tests.length}) + } + `; + + tests.forEach((value, index) => { + testFramework += ` + case ${index + 1} { + testing_start("${value}") + ${value}() + } + `; + }); + + testFramework += ` + default { + } + return (0, 0) + `; + + return testFramework; +} + +function validateSource(source: string) { + const matches = source.matchAll(//g); + for (const match of matches) { + if (!PREPROCCESING_MODES.includes(match[1])) { + throw Error(`Invalid preprocessing mode '${match[1]}' at postion ${match.index}`); + } + } +} + +async function main() { + const bootloaderSource = readFileSync("bootloader/bootloader.yul").toString(); + validateSource(bootloaderSource); + + const bootloader = await render(bootloaderSource, params); + // The overhead is unknown for gas tests and so it should be zero to calculate it + const gasTestBootloaderTemplate = await render(bootloaderSource, { + ...params, + L2_TX_INTRINSIC_GAS: 0, + L2_TX_INTRINSIC_PUBDATA: 0, + L1_TX_INTRINSIC_L2_GAS: 0, + L1_TX_INTRINSIC_PUBDATA: 0, + FORBID_ZERO_GAS_PER_PUBDATA: 0, + }); + + const feeEstimationBootloaderTemplate = await render(bootloaderSource, { + ...params, + ENSURE_RETURNED_MAGIC: 0, + }); + + console.log("Preprocessing production bootloader"); + const provedBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "proved_batch" }); + console.log("Preprocessing playground block bootloader"); + const playgroundBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "playground_batch" }); + console.log("Preprocessing gas test bootloader"); + const gasTestBootloader = preprocess.preprocess(gasTestBootloaderTemplate, { BOOTLOADER_TYPE: "proved_batch" }); + console.log("Preprocessing fee estimation bootloader"); + const feeEstimationBootloader = preprocess.preprocess(feeEstimationBootloaderTemplate, { + BOOTLOADER_TYPE: "playground_batch", + }); + + // For impersonating block start + console.log('Preprocessing production impersonating bootloader'); + const provedBatchImpersonatingBootloader = preprocess.preprocess( + bootloader, + { BOOTLOADER_TYPE: 'proved_batch', ACCOUNT_IMPERSONATING: true } + ); + console.log('Preprocessing fee estimation impersonating bootloader'); + const feeEstimationImpersonatingBootloader = preprocess.preprocess( + bootloader, + { BOOTLOADER_TYPE: 'playground_batch', ACCOUNT_IMPERSONATING: true } + ); + // For impersonating block end + + console.log("Preprocessing bootloader tests"); + const bootloaderTests = await renderFile("bootloader/tests/bootloader/bootloader_test.yul", {}); + + const testMethods = extractTestFunctionNames(bootloaderTests); + + console.log("Found tests: " + testMethods); + + const testFramework = createTestFramework(testMethods); + + const bootloaderTestUtils = await renderFile("bootloader/tests/utils/test_utils.yul", {}); + + const bootloaderWithTests = await render(bootloaderSource, { + ...params, + CODE_START_PLACEHOLDER: "\n" + bootloaderTestUtils + "\n" + bootloaderTests + "\n" + testFramework, + }); + const provedBootloaderWithTests = preprocess.preprocess(bootloaderWithTests, { BOOTLOADER_TYPE: "proved_batch" }); + + if (!existsSync(OUTPUT_DIR)) { + mkdirSync(OUTPUT_DIR); + } + + writeFileSync(`${OUTPUT_DIR}/bootloader_test.yul`, provedBootloaderWithTests); + writeFileSync(`${OUTPUT_DIR}/proved_batch.yul`, provedBatchBootloader); + writeFileSync(`${OUTPUT_DIR}/playground_batch.yul`, playgroundBatchBootloader); + writeFileSync(`${OUTPUT_DIR}/gas_test.yul`, gasTestBootloader); + writeFileSync(`${OUTPUT_DIR}/fee_estimate.yul`, feeEstimationBootloader); + + // For impersonating block start + writeFileSync(`${OUTPUT_DIR}/proved_batch_impersonating.yul`, provedBatchImpersonatingBootloader); + writeFileSync(`${OUTPUT_DIR}/fee_estimate_impersonating.yul`, feeEstimationImpersonatingBootloader); + // For impersonating block end + + console.log("Bootloader preprocessing done!"); +} + +main(); diff --git a/etc/system-contracts/scripts/preprocess-system-contracts.ts b/etc/system-contracts/scripts/preprocess-system-contracts.ts new file mode 100644 index 00000000..acecee1a --- /dev/null +++ b/etc/system-contracts/scripts/preprocess-system-contracts.ts @@ -0,0 +1,50 @@ +import { existsSync, mkdirSync, writeFileSync } from "fs"; +import path from "path"; +import { renderFile } from "template-file"; +import { glob } from "fast-glob"; +import { Command } from "commander"; + +const CONTRACTS_DIR = "contracts"; +const OUTPUT_DIR = "contracts-preprocessed"; + +const params = { + SYSTEM_CONTRACTS_OFFSET: "0x8000", +}; + +async function preprocess(testMode: boolean) { + if (testMode) { + console.log("\x1b[31mWarning: test mode for the preprocessing being used!\x1b[0m"); + params.SYSTEM_CONTRACTS_OFFSET = "0x9000"; + } + + const contracts = await glob( + [`${CONTRACTS_DIR}/**/*.sol`, `${CONTRACTS_DIR}/**/*.yul`, `${CONTRACTS_DIR}/**/*.zasm`], + { onlyFiles: true } + ); + + for (const contract of contracts) { + const preprocessed = await renderFile(contract, params); + const fileName = `${OUTPUT_DIR}/${contract.slice(CONTRACTS_DIR.length)}`; + const directory = path.dirname(fileName); + if (!existsSync(directory)) { + mkdirSync(directory, { recursive: true }); + } + writeFileSync(fileName, preprocessed); + } + + console.log("System Contracts preprocessing done!"); +} + +async function main() { + const program = new Command(); + + program.version("0.1.0").name("system contracts preprocessor").description("preprocess the system contracts"); + + program.option("--test-mode").action(async (cmd) => { + await preprocess(cmd.testMode); + }); + + await program.parseAsync(process.argv); +} + +main(); diff --git a/etc/system-contracts/scripts/process.ts b/etc/system-contracts/scripts/process.ts deleted file mode 100644 index 3c230f61..00000000 --- a/etc/system-contracts/scripts/process.ts +++ /dev/null @@ -1,274 +0,0 @@ -import * as hre from "hardhat"; - -import { ethers } from "ethers"; -import { existsSync, mkdirSync, writeFileSync } from "fs"; -import { join } from "path"; -import { renderFile } from "template-file"; -import { utils } from "zksync-web3"; -import { SYSTEM_CONTRACTS, getRevertSelector, getTransactionUtils } from "./constants"; -import type { ForceDeployment } from "./utils"; - -/* eslint-disable @typescript-eslint/no-var-requires */ -const preprocess = require("preprocess"); -const SYSTEM_PARAMS = require("../SystemConfig.json"); -/* eslint-enable@typescript-eslint/no-var-requires */ - -const OUTPUT_DIR = "bootloader/build"; - -function path(...args: string[]): string { - return join(__dirname, ...args); -} - -function getSelector(contractName: string, method: string): string { - const artifact = hre.artifacts.readArtifactSync(contractName); - const contractInterface = new ethers.utils.Interface(artifact.abi); - - return contractInterface.getSighash(method); -} - -// Methods from ethers do zero pad from left, but we need to pad from the right -function padZeroRight(hexData: string, length: number): string { - while (hexData.length < length) { - hexData += "0"; - } - - return hexData; -} - -const PADDED_SELECTOR_LENGTH = 32 * 2 + 2; -function getPaddedSelector(contractName: string, method: string): string { - const result = getSelector(contractName, method); - - return padZeroRight(result, PADDED_SELECTOR_LENGTH); -} - -function getSystemContextExpectedHash() { - const artifact = hre.artifacts.readArtifactSync("SystemContext"); - return ethers.utils.hexlify(utils.hashBytecode(artifact.bytecode)); -} - -function upgradeSystemContextCalldata() { - // Here we need to encode the force deployment for the system context contract as well as transform - // it into writing of the calldata into the bootloader memory. - - const newHash = getSystemContextExpectedHash(); - const artifact = new ethers.utils.Interface(hre.artifacts.readArtifactSync("ContractDeployer").abi); - - const forceDeplyment: ForceDeployment = { - bytecodeHash: newHash, - newAddress: SYSTEM_CONTRACTS.systemContext.address, - callConstructor: false, - value: 0, - input: "0x", - }; - - let calldata = artifact.encodeFunctionData("forceDeployOnAddresses", [[forceDeplyment]]); - const originalLength = (calldata.length - 2) / 2; - - // Padding calldata from the right. We really need to do it, since Yul would "implicitly" pad it from the left and it - // it is not what we want. - while ((calldata.length - 2) % 64 != 0) { - calldata += "0"; - } - - // We will apply tabulation to make the compiled bootloader code more readable - const TABULATION = "\t\t\t\t\t"; - // In the first slot we need to store the calldata's length - let data = `mstore(0x00, ${originalLength})\n`; - - const slices = (calldata.length - 2) / 64; - - for (let slice = 0; slice < slices; slice++) { - const offset = slice * 32; - const sliceHex = calldata.slice(2 + offset * 2, 2 + offset * 2 + 64); - - data += `${TABULATION}mstore(${offset + 32}, 0x${sliceHex})\n`; - } - - return data; -} - -// Maybe in the future some of these params will be passed -// in a JSON file. For now, a simple object is ok here. -const params = { - MARK_BATCH_AS_REPUBLISHED_SELECTOR: getSelector("KnownCodesStorage", "markFactoryDeps"), - VALIDATE_TX_SELECTOR: getSelector("IAccount", "validateTransaction"), - EXECUTE_TX_SELECTOR: getSelector("DefaultAccount", "executeTransaction"), - RIGHT_PADDED_GET_ACCOUNT_VERSION_SELECTOR: getPaddedSelector("ContractDeployer", "extendedAccountVersion"), - RIGHT_PADDED_GET_RAW_CODE_HASH_SELECTOR: getPaddedSelector("AccountCodeStorage", "getRawCodeHash"), - PAY_FOR_TX_SELECTOR: getSelector("DefaultAccount", "payForTransaction"), - PRE_PAYMASTER_SELECTOR: getSelector("DefaultAccount", "prepareForPaymaster"), - VALIDATE_AND_PAY_PAYMASTER: getSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), - // It doesn't used directly now but is important to keep the way to regenerate it when needed - TX_UTILITIES: getTransactionUtils(), - RIGHT_PADDED_POST_TRANSACTION_SELECTOR: getPaddedSelector("IPaymaster", "postTransaction"), - RIGHT_PADDED_SET_TX_ORIGIN: getPaddedSelector("SystemContext", "setTxOrigin"), - RIGHT_PADDED_SET_GAS_PRICE: getPaddedSelector("SystemContext", "setGasPrice"), - RIGHT_PADDED_INCREMENT_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "incrementTxNumberInBatch"), - RIGHT_PADDED_RESET_TX_NUMBER_IN_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "resetTxNumberInBatch"), - RIGHT_PADDED_SEND_L2_TO_L1_LOG_SELECTOR: getPaddedSelector("L1Messenger", "sendL2ToL1Log"), - PUBLISH_PUBDATA_SELECTOR: getSelector("L1Messenger", "publishPubdataAndClearState"), - RIGHT_PADDED_SET_NEW_BATCH_SELECTOR: getPaddedSelector("SystemContext", "setNewBatch"), - RIGHT_PADDED_OVERRIDE_BATCH_SELECTOR: getPaddedSelector("SystemContext", "unsafeOverrideBatch"), - // Error - REVERT_ERROR_SELECTOR: padZeroRight(getRevertSelector(), PADDED_SELECTOR_LENGTH), - RIGHT_PADDED_VALIDATE_NONCE_USAGE_SELECTOR: getPaddedSelector("INonceHolder", "validateNonceUsage"), - RIGHT_PADDED_MINT_ETHER_SELECTOR: getPaddedSelector("L2EthToken", "mint"), - GET_TX_HASHES_SELECTOR: getSelector("BootloaderUtilities", "getTransactionHashes"), - CREATE_SELECTOR: getSelector("ContractDeployer", "create"), - CREATE2_SELECTOR: getSelector("ContractDeployer", "create2"), - CREATE_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "createAccount"), - CREATE2_ACCOUNT_SELECTOR: getSelector("ContractDeployer", "create2Account"), - PADDED_TRANSFER_FROM_TO_SELECTOR: getPaddedSelector("L2EthToken", "transferFromTo"), - SUCCESSFUL_ACCOUNT_VALIDATION_MAGIC_VALUE: getPaddedSelector("IAccount", "validateTransaction"), - SUCCESSFUL_PAYMASTER_VALIDATION_MAGIC_VALUE: getPaddedSelector("IPaymaster", "validateAndPayForPaymasterTransaction"), - PUBLISH_COMPRESSED_BYTECODE_SELECTOR: getSelector("Compressor", "publishCompressedBytecode"), - GET_MARKER_PADDED_SELECTOR: getPaddedSelector("KnownCodesStorage", "getMarker"), - RIGHT_PADDED_SET_L2_BLOCK_SELECTOR: getPaddedSelector("SystemContext", "setL2Block"), - RIGHT_PADDED_APPEND_TRANSACTION_TO_L2_BLOCK_SELECTOR: getPaddedSelector( - "SystemContext", - "appendTransactionToCurrentL2Block" - ), - RIGHT_PADDED_PUBLISH_TIMESTAMP_DATA_TO_L1_SELECTOR: getPaddedSelector("SystemContext", "publishTimestampDataToL1"), - COMPRESSED_BYTECODES_SLOTS: 32768, - ENSURE_RETURNED_MAGIC: 1, - FORBID_ZERO_GAS_PER_PUBDATA: 1, - SYSTEM_CONTEXT_EXPECTED_CODE_HASH: getSystemContextExpectedHash(), - UPGRADE_SYSTEM_CONTEXT_CALLDATA: upgradeSystemContextCalldata(), - // One of "worst case" scenarios for the number of state diffs in a batch is when 120kb of pubdata is spent - // on repeated writes, that are all zeroed out. In this case, the number of diffs is 120k / 5 = 24k. This means that they will have - // accoomdate 6528000 bytes of calldata for the uncompressed state diffs. Adding 120k on top leaves us with - // roughly 6650000 bytes needed for calldata. 207813 slots are needed to accomodate this amount of data. - // We round up to 208000 slots just in case. - // - // In theory though much more calldata could be used (if for instance 1 byte is used for enum index). It is the responsibility of the - // operator to ensure that it can form the correct calldata for the L1Messenger. - OPERATOR_PROVIDED_L1_MESSENGER_PUBDATA_SLOTS: 208000, - ...SYSTEM_PARAMS, -}; - -function extractTestFunctionNames(sourceCode: string): string[] { - // Remove single-line comments - sourceCode = sourceCode.replace(/\/\/[^\n]*/g, ""); - - // Remove multi-line comments - sourceCode = sourceCode.replace(/\/\*[\s\S]*?\*\//g, ""); - - const regexPatterns = [/function\s+(TEST\w+)/g]; - - const results: string[] = []; - for (const pattern of regexPatterns) { - let match; - while ((match = pattern.exec(sourceCode)) !== null) { - results.push(match[1]); - } - } - - return [...new Set(results)]; // Remove duplicates -} - -function createTestFramework(tests: string[]): string { - let testFramework = ` - let test_id:= mload(0) - - switch test_id - case 0 { - testing_totalTests(${tests.length}) - } - `; - - tests.forEach((value, index) => { - testFramework += ` - case ${index + 1} { - testing_start("${value}") - ${value}() - } - `; - }); - - testFramework += ` - default { - } - return (0, 0) - `; - - return testFramework; -} - -async function main() { - const bootloader = await renderFile("bootloader/bootloader.yul", params); - // The overhead is unknown for gas tests and so it should be zero to calculate it - const gasTestBootloaderTemplate = await renderFile("bootloader/bootloader.yul", { - ...params, - L2_TX_INTRINSIC_GAS: 0, - L2_TX_INTRINSIC_PUBDATA: 0, - L1_TX_INTRINSIC_L2_GAS: 0, - L1_TX_INTRINSIC_PUBDATA: 0, - FORBID_ZERO_GAS_PER_PUBDATA: 0, - }); - - const feeEstimationBootloaderTemplate = await renderFile("bootloader/bootloader.yul", { - ...params, - ENSURE_RETURNED_MAGIC: 0, - }); - - console.log("Preprocessing production bootloader"); - const provedBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "proved_batch" }); - console.log("Preprocessing playground block bootloader"); - const playgroundBatchBootloader = preprocess.preprocess(bootloader, { BOOTLOADER_TYPE: "playground_batch" }); - console.log("Preprocessing gas test bootloader"); - const gasTestBootloader = preprocess.preprocess(gasTestBootloaderTemplate, { BOOTLOADER_TYPE: "proved_batch" }); - console.log("Preprocessing fee estimation bootloader"); - const feeEstimationBootloader = preprocess.preprocess(feeEstimationBootloaderTemplate, { - BOOTLOADER_TYPE: "playground_batch", - }); - - // For impersonating block start - console.log('Preprocessing production impersonating bootloader'); - const provedBatchImpersonatingBootloader = preprocess.preprocess( - bootloader, - { BOOTLOADER_TYPE: 'proved_batch', ACCOUNT_IMPERSONATING: true } - ); - console.log('Preprocessing fee estimation impersonating bootloader'); - const feeEstimationImpersonatingBootloader = preprocess.preprocess( - bootloader, - { BOOTLOADER_TYPE: 'playground_batch', ACCOUNT_IMPERSONATING: true } - ); - // For impersonating block end - - console.log("Preprocessing bootloader tests"); - const bootloaderTests = await renderFile("bootloader/tests/bootloader/bootloader_test.yul", {}); - - const testMethods = extractTestFunctionNames(bootloaderTests); - - console.log("Found tests: " + testMethods); - - const testFramework = createTestFramework(testMethods); - - const bootloaderTestUtils = await renderFile("bootloader/tests/utils/test_utils.yul", {}); - - const bootloaderWithTests = await renderFile("bootloader/bootloader.yul", { - ...params, - CODE_START_PLACEHOLDER: "\n" + bootloaderTestUtils + "\n" + bootloaderTests + "\n" + testFramework, - }); - const provedBootloaderWithTests = preprocess.preprocess(bootloaderWithTests, { BOOTLOADER_TYPE: "proved_batch" }); - - if (!existsSync(OUTPUT_DIR)) { - mkdirSync(OUTPUT_DIR); - } - - writeFileSync(path(`../${OUTPUT_DIR}/bootloader_test.yul`), provedBootloaderWithTests); - writeFileSync(path(`../${OUTPUT_DIR}/proved_batch.yul`), provedBatchBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/playground_batch.yul`), playgroundBatchBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/gas_test.yul`), gasTestBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/fee_estimate.yul`), feeEstimationBootloader); - - // For impersonating block start - writeFileSync(path(`../${OUTPUT_DIR}/proved_batch_impersonating.yul`), provedBatchImpersonatingBootloader); - writeFileSync(path(`../${OUTPUT_DIR}/fee_estimate_impersonating.yul`), feeEstimationImpersonatingBootloader); - // For impersonating block end - - console.log("Preprocessing done!"); -} - -main(); diff --git a/etc/system-contracts/scripts/quick-setup.sh b/etc/system-contracts/scripts/quick-setup.sh deleted file mode 100755 index 341d77d2..00000000 --- a/etc/system-contracts/scripts/quick-setup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# install rust -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - -rustup toolchain install nightly - -# install era-test-node -cargo +nightly install --git https://github.com/matter-labs/era-test-node.git --locked --branch boojum-integration - -yarn -yarn build -era_test_node run > /dev/null 2>&1 & export TEST_NODE_PID=$! -yarn test -kill $TEST_NODE_PID diff --git a/etc/system-contracts/scripts/utils.ts b/etc/system-contracts/scripts/utils.ts index 8ef1dfff..13d1b721 100644 --- a/etc/system-contracts/scripts/utils.ts +++ b/etc/system-contracts/scripts/utils.ts @@ -5,65 +5,75 @@ import type { BigNumberish, BytesLike } from "ethers"; import { BigNumber, ethers } from "ethers"; import * as fs from "fs"; import { hashBytecode } from "zksync-web3/build/src/utils"; -import type { YulContractDescrption } from "./constants"; +import type { YulContractDescrption, ZasmContractDescrption } from "./constants"; import { Language, SYSTEM_CONTRACTS } from "./constants"; +import { getCompilersDir } from "hardhat/internal/util/global-dir"; +import { getZksolcUrl, saltFromUrl } from "@matterlabs/hardhat-zksync-solc"; +import path from "path"; +import { spawn as _spawn } from "child_process"; export interface Dependency { - name: string; - bytecodes: BytesLike[]; - address?: string; + name: string; + bytecodes: BytesLike[]; + address?: string; } export interface DeployedDependency { - name: string; - bytecodeHashes: string[]; - address?: string; + name: string; + bytecodeHashes: string[]; + address?: string; } export function readYulBytecode(description: YulContractDescrption) { - const contractName = description.codeName; - const path = `contracts/${description.path}/artifacts/${contractName}.yul/${contractName}.yul.zbin`; - return ethers.utils.hexlify(fs.readFileSync(path)); + const contractName = description.codeName; + const path = `contracts-preprocessed/${description.path}/artifacts/${contractName}.yul.zbin`; + return ethers.utils.hexlify(fs.readFileSync(path)); +} + +export function readZasmBytecode(description: ZasmContractDescrption) { + const contractName = description.codeName; + const path = `contracts-preprocessed/${description.path}/artifacts/${contractName}.zasm.zbin`; + return ethers.utils.hexlify(fs.readFileSync(path)); } // The struct used to represent the parameters of a forced deployment -- a deployment during upgrade // which sets a bytecode onto an address. Typically used for updating system contracts. export interface ForceDeployment { - // The bytecode hash to put on an address - bytecodeHash: BytesLike; - // The address on which to deploy the bytecodehash to - newAddress: string; - // Whether to call the constructor - callConstructor: boolean; - // The value with which to initialize a contract - value: BigNumberish; - // The constructor calldata - input: BytesLike; + // The bytecode hash to put on an address + bytecodeHash: BytesLike; + // The address on which to deploy the bytecodehash to + newAddress: string; + // Whether to call the constructor + callConstructor: boolean; + // The value with which to initialize a contract + value: BigNumberish; + // The constructor calldata + input: BytesLike; } export async function outputSystemContracts(): Promise { - const upgradeParamsPromises: Promise[] = Object.values(SYSTEM_CONTRACTS).map( - async (systemContractInfo) => { - let bytecode: string; - - if (systemContractInfo.lang === Language.Yul) { - bytecode = readYulBytecode(systemContractInfo); - } else { - bytecode = (await hre.artifacts.readArtifact(systemContractInfo.codeName)).bytecode; - } - const bytecodeHash = hashBytecode(bytecode); - - return { - bytecodeHash: ethers.utils.hexlify(bytecodeHash), - newAddress: systemContractInfo.address, - value: "0", - input: "0x", - callConstructor: false, - }; - } - ); - - return await Promise.all(upgradeParamsPromises); + const upgradeParamsPromises: Promise[] = Object.values(SYSTEM_CONTRACTS).map( + async (systemContractInfo) => { + let bytecode: string; + + if (systemContractInfo.lang === Language.Yul) { + bytecode = readYulBytecode(systemContractInfo); + } else { + bytecode = (await hre.artifacts.readArtifact(systemContractInfo.codeName)).bytecode; + } + const bytecodeHash = hashBytecode(bytecode); + + return { + bytecodeHash: ethers.utils.hexlify(bytecodeHash), + newAddress: systemContractInfo.address, + value: "0", + input: "0x", + callConstructor: false, + }; + } + ); + + return await Promise.all(upgradeParamsPromises); } // Script that publishes preimages for all the system contracts on zkSync @@ -74,110 +84,156 @@ const DEFAULT_L2_TX_GAS_LIMIT = 2097152; // for each dependency the bytecodeHash is its versioned hash and marker is whether // the hash has been published before. export async function getMarkers(dependencies: BytesLike[], deployer: Deployer): Promise<[string, boolean][]> { - const contract = new ethers.Contract( - SYSTEM_CONTRACTS.knownCodesStorage.address, - (await hre.artifacts.readArtifact("KnownCodesStorage")).abi, - deployer.zkWallet - ); + const contract = new ethers.Contract( + SYSTEM_CONTRACTS.knownCodesStorage.address, + (await hre.artifacts.readArtifact("KnownCodesStorage")).abi, + deployer.zkWallet + ); - const promises = dependencies.map(async (dep) => { - const hash = ethers.utils.hexlify(hashBytecode(dep)); - const marker = BigNumber.from(await contract.getMarker(hash)); + const promises = dependencies.map(async (dep) => { + const hash = ethers.utils.hexlify(hashBytecode(dep)); + const marker = BigNumber.from(await contract.getMarker(hash)); - return [hash, marker.eq(1)] as [string, boolean]; - }); + return [hash, marker.eq(1)] as [string, boolean]; + }); - return await Promise.all(promises); + return await Promise.all(promises); } // Checks whether the marker has been set correctly in the KnownCodesStorage // system contract export async function checkMarkers(dependencies: BytesLike[], deployer: Deployer) { - const markers = await getMarkers(dependencies, deployer); + const markers = await getMarkers(dependencies, deployer); - for (const [bytecodeHash, marker] of markers) { - if (!marker) { - throw new Error(`Failed to mark ${bytecodeHash}`); - } + for (const [bytecodeHash, marker] of markers) { + if (!marker) { + throw new Error(`Failed to mark ${bytecodeHash}`); } + } } export function totalBytesLength(dependencies: BytesLike[]): number { - return dependencies.reduce((prev, curr) => prev + ethers.utils.arrayify(curr).length, 0); + return dependencies.reduce((prev, curr) => prev + ethers.utils.arrayify(curr).length, 0); } export function getBytecodes(dependencies: Dependency[]): BytesLike[] { - return dependencies.map((dep) => dep.bytecodes).flat(); + return dependencies.map((dep) => dep.bytecodes).flat(); } export async function publishFactoryDeps( - dependencies: Dependency[], - deployer: Deployer, - nonce: number, - gasPrice: BigNumber + dependencies: Dependency[], + deployer: Deployer, + nonce: number, + gasPrice: BigNumber ) { - if (dependencies.length == 0) { - return []; - } - const bytecodes = getBytecodes(dependencies); - const combinedLength = totalBytesLength(bytecodes); - - console.log( - `\nPublishing dependencies for contracts ${dependencies - .map((dep) => { - return dep.name; - }) - .join(", ")}` - ); - console.log(`Combined length ${combinedLength}`); - - const txHandle = await deployer.zkWallet.requestExecute({ - contractAddress: ethers.constants.AddressZero, - calldata: "0x", - l2GasLimit: DEFAULT_L2_TX_GAS_LIMIT, - factoryDeps: bytecodes, - overrides: { - nonce, - gasPrice, - gasLimit: 3000000, - }, - }); - console.log(`Transaction hash: ${txHandle.hash}`); - - // Waiting for the transaction to be processed by the server - await txHandle.wait(); - - console.log("Transaction complete! Checking markers on L2..."); - - // Double checking that indeed the dependencies have been marked as known - await checkMarkers(bytecodes, deployer); + if (dependencies.length === 0) { + throw new Error("The dependencies must be non-empty"); + } + + const bytecodes = getBytecodes(dependencies); + const combinedLength = totalBytesLength(bytecodes); + + console.log( + `\nPublishing dependencies for contracts ${dependencies + .map((dep) => { + return dep.name; + }) + .join(", ")}` + ); + console.log(`Combined length ${combinedLength}`); + + const txHandle = await deployer.zkWallet.requestExecute({ + contractAddress: ethers.constants.AddressZero, + calldata: "0x", + l2GasLimit: DEFAULT_L2_TX_GAS_LIMIT, + factoryDeps: bytecodes, + overrides: { + nonce, + gasPrice, + gasLimit: 3000000, + }, + }); + + console.log(`Transaction hash: ${txHandle.hash}`); + + console.log("Waiting for transaction commit on L1"); + + await txHandle.waitL1Commit(2); + + return txHandle; } // Returns an array of bytecodes that should be published along with their total length in bytes export async function filterPublishedFactoryDeps( - contractName: string, - factoryDeps: string[], - deployer: Deployer + contractName: string, + factoryDeps: string[], + deployer: Deployer ): Promise<[string[], number]> { - console.log(`\nFactory dependencies for contract ${contractName}:`); - let currentLength = 0; + console.log(`\nFactory dependencies for contract ${contractName}:`); + let currentLength = 0; - const bytecodesToDeploy: string[] = []; + const bytecodesToDeploy: string[] = []; - const hashesAndMarkers = await getMarkers(factoryDeps, deployer); + const hashesAndMarkers = await getMarkers(factoryDeps, deployer); - for (let i = 0; i < factoryDeps.length; i++) { - const depLength = ethers.utils.arrayify(factoryDeps[i]).length; - const [hash, marker] = hashesAndMarkers[i]; - console.log(`${hash} (length: ${depLength} bytes) (deployed: ${marker})`); + for (let i = 0; i < factoryDeps.length; i++) { + const depLength = ethers.utils.arrayify(factoryDeps[i]).length; + const [hash, marker] = hashesAndMarkers[i]; + console.log(`${hash} (length: ${depLength} bytes) (deployed: ${marker})`); - if (!marker) { - currentLength += depLength; - bytecodesToDeploy.push(factoryDeps[i]); - } + if (!marker) { + currentLength += depLength; + bytecodesToDeploy.push(factoryDeps[i]); } + } + + console.log(`Combined length to deploy: ${currentLength}`); + + return [bytecodesToDeploy, currentLength]; +} + +export async function compilerLocation(compilerVersion: string, isCompilerPreRelease: boolean): Promise { + const compilersCache = await getCompilersDir(); + + let salt = ""; + + if (isCompilerPreRelease) { + const url = getZksolcUrl("https://github.com/matter-labs/zksolc-prerelease", hre.config.zksolc.version); + salt = saltFromUrl(url); + } + + return path.join(compilersCache, "zksolc", `zksolc-v${compilerVersion}${salt ? "-" : ""}${salt}`); +} + +// executes a command in a new shell +// but pipes data to parent's stdout/stderr +export function spawn(command: string) { + command = command.replace(/\n/g, " "); + const child = _spawn(command, { stdio: "inherit", shell: true }); + return new Promise((resolve, reject) => { + child.on("error", reject); + child.on("close", (code) => { + code == 0 ? resolve(code) : reject(`Child process exited with code ${code}`); + }); + }); +} + +export class CompilerPaths { + public absolutePathSources: string; + public absolutePathArtifacts: string; + constructor(absolutePathSources: string, absolutePathArtifacts: string) { + this.absolutePathSources = absolutePathSources; + this.absolutePathArtifacts = absolutePathArtifacts; + } +} + +export function prepareCompilerPaths(path: string): CompilerPaths { + const currentWorkingDirectory = process.cwd(); + console.log(`Yarn project directory: ${currentWorkingDirectory}`); - console.log(`Combined length to deploy: ${currentLength}`); + // This script is located in `system-contracts/scripts`, so we get one directory back. + const absolutePathSources = `${__dirname}/../${path}`; + const absolutePathArtifacts = `${__dirname}/../${path}/artifacts`; - return [bytecodesToDeploy, currentLength]; + return new CompilerPaths(absolutePathSources, absolutePathArtifacts); } diff --git a/etc/system-contracts/yarn.lock b/etc/system-contracts/yarn.lock index 166747de..34c77800 100644 --- a/etc/system-contracts/yarn.lock +++ b/etc/system-contracts/yarn.lock @@ -2,33 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@babel/code-frame@^7.0.0": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - "@balena/dockerignore@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@balena/dockerignore/-/dockerignore-1.0.2.tgz#9ffe4726915251e8eb69f44ef3547e0da2c03e0d" @@ -90,38 +63,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.52.0": - version "8.52.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c" - integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== - "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -469,25 +410,6 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.0.0.tgz#f22824caff3ae506b18207bad4126dbc6ccdb6b8" integrity sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ== -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== - "@jridgewell/resolve-uri@^3.0.3": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -506,11 +428,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@matterlabs/eslint-config-typescript@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@matterlabs/eslint-config-typescript/-/eslint-config-typescript-1.1.2.tgz#a9be4e56aedf298800f247c5049fc412f8b301a7" - integrity sha512-AhiWJQr+MSE3RVfgp5XwGoMK7kNSKh6a18+T7hkNJtyycP0306I6IGmuFA5ZVbcakGb+K32fQWzepSkrNCTAGg== - "@matterlabs/hardhat-zksync-chai-matchers@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-chai-matchers/-/hardhat-zksync-chai-matchers-0.1.4.tgz#105cb0ec1367c8fcd3ce7e3773f747c71fff675b" @@ -525,6 +442,16 @@ chalk "4.1.2" ts-morph "^19.0.0" +"@matterlabs/hardhat-zksync-node@^0.0.1-beta.7": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-node/-/hardhat-zksync-node-0.0.1.tgz#d44bda3c0069b149e2a67c9697eb81166b169ea6" + integrity sha512-rMabl+I813lzXINqTq5OvujQ30wsfO9mTLMPDXuYzEEhEzvnXlaVxuqynKBXrgXAxjmr+G79rqvcWgeKygtwBA== + dependencies: + "@matterlabs/hardhat-zksync-solc" "^1.0.5" + axios "^1.4.0" + chalk "4.1.2" + fs-extra "^11.1.1" + "@matterlabs/hardhat-zksync-solc@0.4.2", "@matterlabs/hardhat-zksync-solc@^0.4.2": version "0.4.2" resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-0.4.2.tgz#64121082e88c5ab22eb4e9594d120e504f6af499" @@ -537,10 +464,22 @@ proper-lockfile "^4.1.2" semver "^7.5.1" -"@matterlabs/prettier-config@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@matterlabs/prettier-config/-/prettier-config-1.0.3.tgz#3e2eb559c0112bbe9671895f935700dad2a15d38" - integrity sha512-JW7nHREPqEtjBWz3EfxLarkmJBD8vi7Kx/1AQ6eBZnz12eHc1VkOyrc6mpR5ogTf0dOUNXFAfZut+cDe2dn4kQ== +"@matterlabs/hardhat-zksync-solc@^1.0.5": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@matterlabs/hardhat-zksync-solc/-/hardhat-zksync-solc-1.1.2.tgz#d5c371acb8b745f018f0559403fe590e8c1dd8b4" + integrity sha512-4qyt9T3OevP+IGJqGd6cS/BKwJnne6XfYCq4gES2nnXoyIWOihmuaL9+KDsbvwVI4mBfB4bz84+SP68W5Bxuig== + dependencies: + "@nomiclabs/hardhat-docker" "^2.0.0" + chai "^4.3.6" + chalk "4.1.2" + debug "^4.3.4" + dockerode "^4.0.0" + fs-extra "^11.1.1" + proper-lockfile "^4.1.2" + semver "^7.5.1" + sinon "^16.0.0" + sinon-chai "^3.7.0" + undici "^5.14.0" "@metamask/eth-sig-util@^4.0.0": version "4.0.1" @@ -576,7 +515,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -584,31 +523,31 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/ethereumjs-block@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz#6f89664f55febbd723195b6d0974773d29ee133d" - integrity sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw== - dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-block@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.2.tgz#13a7968f5964f1697da941281b7f7943b0465d04" + integrity sha512-hSe6CuHI4SsSiWWjHDIzWhSiAVpzMUcDRpWYzN0T9l8/Rz7xNn3elwVOJ/tAyS0LqL6vitUD78Uk7lQDXZun7Q== + dependencies: + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" ethereum-cryptography "0.1.3" ethers "^5.7.1" -"@nomicfoundation/ethereumjs-blockchain@7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz#80e0bd3535bfeb9baa29836b6f25123dab06a726" - integrity sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-ethash" "3.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-blockchain@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.2.tgz#45323b673b3d2fab6b5008535340d1b8fea7d446" + integrity sha512-8UUsSXJs+MFfIIAKdh3cG16iNmWzWC/91P40sazNvrqhhdR/RtGDlFk2iFTGbBAZPs2+klZVzhRX8m2wvuvz3w== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-ethash" "3.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" abstract-level "^1.0.3" debug "^4.3.3" ethereum-cryptography "0.1.3" @@ -616,103 +555,103 @@ lru-cache "^5.1.1" memory-level "^1.0.0" -"@nomicfoundation/ethereumjs-common@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz#4702d82df35b07b5407583b54a45bf728e46a2f0" - integrity sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g== +"@nomicfoundation/ethereumjs-common@4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.2.tgz#a15d1651ca36757588fdaf2a7d381a150662a3c3" + integrity sha512-I2WGP3HMGsOoycSdOTSqIaES0ughQTueOsddJ36aYVpI3SN8YSusgRFLwzDJwRFVIYDKx/iJz0sQ5kBHVgdDwg== dependencies: - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-util" "9.0.2" crc-32 "^1.2.0" -"@nomicfoundation/ethereumjs-ethash@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz#65ca494d53e71e8415c9a49ef48bc921c538fc41" - integrity sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w== +"@nomicfoundation/ethereumjs-ethash@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.2.tgz#da77147f806401ee996bfddfa6487500118addca" + integrity sha512-8PfoOQCcIcO9Pylq0Buijuq/O73tmMVURK0OqdjhwqcGHYC2PwhbajDh7GZ55ekB0Px197ajK3PQhpKoiI/UPg== dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" abstract-level "^1.0.3" bigint-crypto-utils "^3.0.23" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-evm@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz#f35681e203363f69ce2b3d3bf9f44d4e883ca1f1" - integrity sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ== +"@nomicfoundation/ethereumjs-evm@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.2.tgz#4c2f4b84c056047102a4fa41c127454e3f0cfcf6" + integrity sha512-rBLcUaUfANJxyOx9HIdMX6uXGin6lANCulIm/pjMgRqfiCRMZie3WKYxTSd8ZE/d+qT+zTedBF4+VHTdTSePmQ== dependencies: "@ethersproject/providers" "^5.7.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" mcl-wasm "^0.7.1" rustbn.js "~0.2.0" -"@nomicfoundation/ethereumjs-rlp@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz#0b30c1cf77d125d390408e391c4bb5291ef43c28" - integrity sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ== +"@nomicfoundation/ethereumjs-rlp@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.2.tgz#4fee8dc58a53ac6ae87fb1fca7c15dc06c6b5dea" + integrity sha512-QwmemBc+MMsHJ1P1QvPl8R8p2aPvvVcKBbvHnQOKBpBztEo0omN0eaob6FeZS/e3y9NSe+mfu3nNFBHszqkjTA== -"@nomicfoundation/ethereumjs-statemanager@2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz#8824a97938db4471911e2d2f140f79195def5935" - integrity sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ== +"@nomicfoundation/ethereumjs-statemanager@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.2.tgz#3ba4253b29b1211cafe4f9265fee5a0d780976e0" + integrity sha512-dlKy5dIXLuDubx8Z74sipciZnJTRSV/uHG48RSijhgm1V7eXYFC567xgKtsKiVZB1ViTP9iFL4B6Je0xD6X2OA== dependencies: - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" ethers "^5.7.1" js-sdsl "^4.1.4" -"@nomicfoundation/ethereumjs-trie@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz#662c55f6b50659fd4b22ea9f806a7401cafb7717" - integrity sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA== +"@nomicfoundation/ethereumjs-trie@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.2.tgz#9a6dbd28482dca1bc162d12b3733acab8cd12835" + integrity sha512-yw8vg9hBeLYk4YNg5MrSJ5H55TLOv2FSWUTROtDtTMMmDGROsAu+0tBjiNGTnKRi400M6cEzoFfa89Fc5k8NTQ== dependencies: - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" "@types/readable-stream" "^2.3.13" ethereum-cryptography "0.1.3" readable-stream "^3.6.0" -"@nomicfoundation/ethereumjs-tx@5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz#7629dc2036b4a33c34e9f0a592b43227ef4f0c7d" - integrity sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w== +"@nomicfoundation/ethereumjs-tx@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.2.tgz#117813b69c0fdc14dd0446698a64be6df71d7e56" + integrity sha512-T+l4/MmTp7VhJeNloMkM+lPU3YMUaXdcXgTGCf8+ZFvV9NYZTRLFekRwlG6/JMmVfIfbrW+dRRJ9A6H5Q/Z64g== dependencies: "@chainsafe/ssz" "^0.9.2" "@ethersproject/providers" "^5.7.2" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-util@9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz#530cda8bae33f8b5020a8f199ed1d0a2ce48ec89" - integrity sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA== +"@nomicfoundation/ethereumjs-util@9.0.2": + version "9.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.2.tgz#16bdc1bb36f333b8a3559bbb4b17dac805ce904d" + integrity sha512-4Wu9D3LykbSBWZo8nJCnzVIYGvGCuyiYLIJa9XXNVt1q1jUzHdB+sJvx95VGCpPkCT+IbLecW6yfzy3E1bQrwQ== dependencies: "@chainsafe/ssz" "^0.10.0" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" ethereum-cryptography "0.1.3" -"@nomicfoundation/ethereumjs-vm@7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz#7d035e0993bcad10716c8b36e61dfb87fa3ca05f" - integrity sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ== - dependencies: - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-blockchain" "7.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-evm" "2.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-statemanager" "2.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" +"@nomicfoundation/ethereumjs-vm@7.0.2": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.2.tgz#3b0852cb3584df0e18c182d0672a3596c9ca95e6" + integrity sha512-Bj3KZT64j54Tcwr7Qm/0jkeZXJMfdcAtRBedou+Hx0dPOSIgqaIr0vvLwP65TpHbak2DmAq+KJbW2KNtIoFwvA== + dependencies: + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-blockchain" "7.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-evm" "2.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-statemanager" "2.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" debug "^4.3.3" ethereum-cryptography "0.1.3" mcl-wasm "^0.7.1" @@ -804,7 +743,7 @@ fs-extra "^7.0.1" node-fetch "^2.6.0" -"@nomiclabs/hardhat-ethers@^2.0.6": +"@nomiclabs/hardhat-ethers@^2.0.0": version "2.2.3" resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== @@ -817,18 +756,6 @@ fs-extra "^7.0.1" solpp "^0.11.5" -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" - "@scure/base@~1.1.0": version "1.1.3" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" @@ -919,12 +846,47 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" -"@solidity-parser/parser@^0.16.0": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.16.1.tgz#f7c8a686974e1536da0105466c4db6727311253c" - integrity sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw== +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== + dependencies: + type-detect "4.0.8" + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: - antlr4ts "^0.5.0-alpha.4" + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/fake-timers@^11.2.2": + version "11.2.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz#50063cc3574f4a27bd8453180a04171c85cc9699" + integrity sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@sinonjs/samsam@^8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== + dependencies: + "@sinonjs/commons" "^2.0.0" + lodash.get "^4.4.2" + type-detect "^4.0.8" + +"@sinonjs/text-encoding@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== "@ts-morph/common@~0.20.0": version "0.20.0" @@ -956,20 +918,12 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@typechain/ethers-v5@^10.0.0": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz#50241e6957683281ecfa03fb5a6724d8a3ce2391" - integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== - dependencies: - lodash "^4.17.15" - ts-essentials "^7.0.1" - -"@typechain/hardhat@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@typechain/hardhat/-/hardhat-7.0.0.tgz#ffa7465328150e793007fee616ae7b76ed20784d" - integrity sha512-XB79i5ewg9Met7gMVGfgVkmypicbnI25T5clJBEooMoW2161p4zvKFpoS2O+lBppQyMrPIZkdvl2M3LMDayVcA== +"@typechain/ethers-v5@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz#cd3ca1590240d587ca301f4c029b67bfccd08810" + integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== dependencies: - fs-extra "^9.1.0" + ethers "^5.0.2" "@types/bn.js@^4.11.3": version "4.11.6" @@ -997,20 +951,10 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.6.tgz#7b489e8baf393d5dd1266fb203ddd4ea941259e6" integrity sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw== -"@types/chai@^4.3.1": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== - -"@types/json-schema@^7.0.12": - version "7.0.14" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.14.tgz#74a97a5573980802f32c8e47b663530ab3b6b7d1" - integrity sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/chai@^4.2.21": + version "4.3.11" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" + integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== "@types/lodash@^4.14.199": version "4.14.199" @@ -1029,10 +973,10 @@ dependencies: "@types/node" "*" -"@types/mocha@^9.1.1": - version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" - integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== +"@types/mocha@^8.2.3": + version "8.2.3" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.2.3.tgz#bbeb55fbc73f28ea6de601fbfa4613f58d785323" + integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw== "@types/node@*": version "20.6.0" @@ -1078,100 +1022,10 @@ dependencies: "@types/node" "*" -"@types/semver@^7.5.0": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== - -"@typescript-eslint/eslint-plugin@^6.7.4": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.9.0.tgz#fdb6f3821c0167e3356e9d89c80e8230b2e401f4" - integrity sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/type-utils" "6.9.0" - "@typescript-eslint/utils" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.7.4": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.9.0.tgz#2b402cadeadd3f211c25820e5433413347b27391" - integrity sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw== - dependencies: - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/typescript-estree" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.9.0.tgz#2626e9a7fe0e004c3e25f3b986c75f584431134e" - integrity sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw== - dependencies: - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - -"@typescript-eslint/type-utils@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.9.0.tgz#23923c8c9677c2ad41457cf8e10a5f2946be1b04" - integrity sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ== - dependencies: - "@typescript-eslint/typescript-estree" "6.9.0" - "@typescript-eslint/utils" "6.9.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.9.0.tgz#86a0cbe7ac46c0761429f928467ff3d92f841098" - integrity sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw== - -"@typescript-eslint/typescript-estree@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.0.tgz#d0601b245be873d8fe49f3737f93f8662c8693d4" - integrity sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ== - dependencies: - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/visitor-keys" "6.9.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.9.0.tgz#5bdac8604fca4823f090e4268e681c84d3597c9f" - integrity sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.9.0" - "@typescript-eslint/types" "6.9.0" - "@typescript-eslint/typescript-estree" "6.9.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.9.0": - version "6.9.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.0.tgz#cc69421c10c4ac997ed34f453027245988164e80" - integrity sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg== - dependencies: - "@typescript-eslint/types" "6.9.0" - eslint-visitor-keys "^3.4.1" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== JSONStream@1.3.2: version "1.3.2" @@ -1181,13 +1035,6 @@ JSONStream@1.3.2: jsonparse "^1.2.0" through ">=2.2.7 <3" -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abstract-level/-/abstract-level-1.0.3.tgz#78a67d3d84da55ee15201486ab44c09560070741" @@ -1201,11 +1048,6 @@ abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: module-error "^1.0.1" queue-microtask "^1.2.3" -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" @@ -1216,11 +1058,6 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== -acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - adm-zip@^0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.16.tgz#cf4c508fdffab02c269cbc7f471a875f05570365" @@ -1246,25 +1083,12 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.12.4, ajv@^6.12.6: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" + string-width "^4.1.0" ansi-colors@4.1.1: version "4.1.1" @@ -1302,21 +1126,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -antlr4@^4.11.0: - version "4.13.1" - resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.13.1.tgz#1e0a1830a08faeb86217cb2e6c34716004e4253d" - integrity sha512-kiXTspaRYvnIArgE97z5YVVf/cDVQABr3abFRR6mE7yesLMkgu4ujuyV/sgxafQ8wgve0DJQUJ38Z8tkgA2izA== - antlr4@~4.8.0: version "4.8.0" resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.8.0.tgz#f938ec171be7fc2855cd3a533e87647185b32b6a" integrity sha512-en/MxQ4OkPgGJQ3wD/muzj1uDnFSzdFIhc2+c6bHZokWkuBb6RRvFjpWhPxWLbgQvaEzldJZ0GSQpfSAaE3hqg== -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -1340,83 +1154,19 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - -array-back@^4.0.1, array-back@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" - integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== +array-back@^1.0.3, array-back@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-1.0.4.tgz#644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b" + integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + typical "^2.6.0" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +array-back@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/array-back/-/array-back-2.0.0.tgz#6877471d51ecc9c9bfa6136fb6c7d5fe69748022" + integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" + typical "^2.6.1" asn1@^0.2.6: version "0.2.6" @@ -1430,25 +1180,10 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -ast-parents@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" - integrity sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== axios@^0.21.1: version "0.21.4" @@ -1457,6 +1192,15 @@ axios@^0.21.1: dependencies: follow-redirects "^1.14.0" +axios@^1.4.0: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + dependencies: + follow-redirects "^1.15.4" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -1486,11 +1230,6 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - bigint-crypto-utils@^3.0.23: version "3.3.0" resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.3.0.tgz#72ad00ae91062cf07f2b1def9594006c279c1d77" @@ -1541,12 +1280,19 @@ bn.js@^5.2.0, bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== dependencies: - big-integer "^1.6.44" + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -1667,33 +1413,12 @@ buildcheck@~0.0.6: resolved "https://registry.yarnpkg.com/buildcheck/-/buildcheck-0.0.6.tgz#89aa6e417cfd1e2196e3f8fe915eb709d2fe4238" integrity sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A== -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^6.0.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -1715,6 +1440,19 @@ chai-as-promised@^7.1.1: dependencies: check-error "^1.0.2" +chai@^4.3.10: + version "4.4.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + chai@^4.3.6: version "4.3.8" resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.8.tgz#40c59718ad6928da6629c70496fe990b2bb5b17c" @@ -1728,7 +1466,7 @@ chai@^4.3.6: pathval "^1.1.1" type-detect "^4.0.5" -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@4.1.2, chalk@^4.1.0: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1750,6 +1488,13 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + chokidar@3.5.3, chokidar@^3.4.0: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -1799,6 +1544,11 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1837,41 +1587,32 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + command-exists@^1.2.8: version "1.2.9" resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== -command-line-args@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== - dependencies: - array-back "^3.1.0" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - -command-line-usage@^6.1.0: - version "6.1.3" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.3.tgz#428fa5acde6a838779dfa30e44686f4b6761d957" - integrity sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw== +command-line-args@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" + integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== dependencies: - array-back "^4.0.2" - chalk "^2.4.2" - table-layout "^1.0.2" - typical "^5.2.0" + array-back "^2.0.0" + find-replace "^1.0.3" + typical "^2.6.1" commander@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - commander@^2.19.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -1882,11 +1623,6 @@ commander@^9.4.1: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commander@~9.4.1: - version "9.4.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" - integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1912,17 +1648,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^8.0.0: - version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" - integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== - dependencies: - import-fresh "^3.3.0" - js-yaml "^4.1.0" - parse-json "^5.2.0" - path-type "^4.0.0" - -cpu-features@~0.0.8: +cpu-features@~0.0.8, cpu-features@~0.0.9: version "0.0.9" resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc" integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ== @@ -1963,23 +1689,21 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: +debug@4, debug@4.3.4, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.2.6, debug@^3.2.7: +debug@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -1996,63 +1720,17 @@ decimal.js-light@^2.5.0: resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== -deep-eql@^4.0.1, deep-eql@^4.1.2: +deep-eql@^4.0.1, deep-eql@^4.1.2, deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" -deep-extend@^0.6.0, deep-extend@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== depd@2.0.0: version "2.0.0" @@ -2069,12 +1747,10 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" +diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== docker-modem@^1.0.8: version "1.0.9" @@ -2096,6 +1772,16 @@ docker-modem@^3.0.0: split-ca "^1.0.1" ssh2 "^1.11.0" +docker-modem@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-5.0.3.tgz#50c06f11285289f58112b5c4c4d89824541c41d0" + integrity sha512-89zhop5YVhcPEt5FpUFGr3cDyceGhq/F9J+ZndQ4KfqNvfbJpPMfgeixFgUj5OjCYAboElqODxY5Z1EBsSa6sg== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^1.15.0" + dockerode@^2.5.8: version "2.5.8" resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-2.5.8.tgz#1b661e36e1e4f860e25f56e0deabe9f87f1d0acc" @@ -2114,19 +1800,14 @@ dockerode@^3.3.4: docker-modem "^3.0.0" tar-fs "~2.0.1" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== +dockerode@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/dockerode/-/dockerode-4.0.2.tgz#dedc8529a1db3ac46d186f5912389899bc309f7d" + integrity sha512-9wM1BVpVMFr2Pw3eJNXrYYt6DT9k0xMcsSCjtPvyQ+xa1iPg/Mo3T/gUcwI0B2cczqCeCYRPF8yFYDwtFXT0+w== dependencies: - esutils "^2.0.2" + "@balena/dockerignore" "^1.0.2" + docker-modem "^5.0.3" + tar-fs "~2.0.1" elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.4: version "6.5.4" @@ -2153,14 +1834,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.12.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - enquirer@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" @@ -2169,99 +1842,17 @@ enquirer@^2.3.0: ansi-colors "^4.1.1" strip-ansi "^6.0.1" -entities@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: +escape-string-regexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -2271,156 +1862,6 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-import-resolver-typescript@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" - integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - fast-glob "^3.3.1" - get-tsconfig "^4.5.0" - is-core-module "^2.11.0" - is-glob "^4.0.3" - -eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-import@^2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== - dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" - semver "^6.3.1" - tsconfig-paths "^3.14.2" - -eslint-plugin-prettier@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515" - integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.51.0: - version "8.52.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc" - integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.52.0" - "@humanwhocodes/config-array" "^0.11.13" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" @@ -2473,7 +1914,7 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: ethjs-util "0.1.6" rlp "^2.2.3" -ethers@^5.7.0, ethers@^5.7.1: +ethers@^5.0.2, ethers@^5.7.0, ethers@^5.7.1, ethers@~5.7.0: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -2517,11 +1958,6 @@ ethjs-util@0.1.6, ethjs-util@^0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -2530,47 +1966,7 @@ evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2, fast-diff@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: +fast-glob@^3.2.12: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -2581,29 +1977,23 @@ fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: - reusify "^1.0.4" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: - flat-cache "^3.0.4" + reusify "^1.0.4" fill-range@^7.0.1: version "7.0.1" @@ -2612,14 +2002,15 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== +find-replace@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-1.0.3.tgz#b88e7364d2d9c959559f388c66670d6130441fa0" + integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== dependencies: - array-back "^3.0.1" + array-back "^1.0.4" + test-value "^2.1.0" -find-up@5.0.0, find-up@^5.0.0: +find-up@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -2634,36 +2025,29 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -flat-cache@^3.0.4: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" - integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - follow-redirects@^1.12.1, follow-redirects@^1.14.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: - is-callable "^1.1.3" + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" fp-ts@1.19.3: version "1.19.3" @@ -2709,16 +2093,6 @@ fs-extra@^7.0.0, fs-extra@^7.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2734,31 +2108,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2769,40 +2123,10 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-stdin@~9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" - integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-tsconfig@^4.5.0: - version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== - dependencies: - resolve-pkg-maps "^1.0.0" +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" @@ -2811,25 +2135,6 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@7.1.7: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" @@ -2854,61 +2159,6 @@ glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" - integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -glob@~8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" @@ -2919,36 +2169,41 @@ graceful-fs@^4.2.0, graceful-fs@^4.2.4: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== -hardhat@=2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.16.0.tgz#c5611d433416b31f6ce92f733b1f1b5236ad6230" - integrity sha512-7VQEJPQRAZdtrYUZaU9GgCpP3MBNy/pTdscARNJQMWKj5C+R7V32G5uIZKIqZ4QiqXa6CBfxxe+G+ahxUbHZHA== +hardhat-typechain@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/hardhat-typechain/-/hardhat-typechain-0.3.5.tgz#8e50616a9da348b33bd001168c8fda9c66b7b4af" + integrity sha512-w9lm8sxqTJACY+V7vijiH+NkPExnmtiQEjsV9JKD1KgMdVk2q8y+RhvU/c4B7+7b1+HylRUCxpOIvFuB3rE4+w== + +hardhat@^2.18.3: + version "2.19.5" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.19.5.tgz#6017c35ae2844b669e9bcc84c3d05346d4ef031c" + integrity sha512-vx8R7zWCYVgM56vA6o0Wqx2bIIptkN4TMs9QwDqZVNGRhMzBfzqUeEYbp+69gxWp1neg2V2nYQUaaUv7aom1kw== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "5.0.1" - "@nomicfoundation/ethereumjs-blockchain" "7.0.1" - "@nomicfoundation/ethereumjs-common" "4.0.1" - "@nomicfoundation/ethereumjs-evm" "2.0.1" - "@nomicfoundation/ethereumjs-rlp" "5.0.1" - "@nomicfoundation/ethereumjs-statemanager" "2.0.1" - "@nomicfoundation/ethereumjs-trie" "6.0.1" - "@nomicfoundation/ethereumjs-tx" "5.0.1" - "@nomicfoundation/ethereumjs-util" "9.0.1" - "@nomicfoundation/ethereumjs-vm" "7.0.1" + "@nomicfoundation/ethereumjs-block" "5.0.2" + "@nomicfoundation/ethereumjs-blockchain" "7.0.2" + "@nomicfoundation/ethereumjs-common" "4.0.2" + "@nomicfoundation/ethereumjs-evm" "2.0.2" + "@nomicfoundation/ethereumjs-rlp" "5.0.2" + "@nomicfoundation/ethereumjs-statemanager" "2.0.2" + "@nomicfoundation/ethereumjs-trie" "6.0.2" + "@nomicfoundation/ethereumjs-tx" "5.0.2" + "@nomicfoundation/ethereumjs-util" "9.0.2" + "@nomicfoundation/ethereumjs-vm" "7.0.2" "@nomicfoundation/solidity-analyzer" "^0.1.0" "@sentry/node" "^5.18.1" "@types/bn.js" "^5.1.0" "@types/lru-cache" "^5.1.0" - abort-controller "^3.0.0" adm-zip "^0.4.16" aggregate-error "^3.0.0" ansi-escapes "^4.3.0" + boxen "^5.1.2" chalk "^2.4.2" chokidar "^3.4.0" ci-info "^2.0.0" @@ -2979,11 +2234,6 @@ hardhat@=2.16.0: uuid "^8.3.2" ws "^7.4.6" -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2994,30 +2244,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3042,13 +2268,6 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -3082,16 +2301,6 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3104,29 +2313,11 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4, ignore@~5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - immutable@^4.0.0-rc.12: version "4.3.4" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -3145,20 +2336,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" - integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - io-ts@1.10.4: version "1.10.4" resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-1.10.4.tgz#cd5401b138de88e4f920adbcb7026e2d1967e6e2" @@ -3166,27 +2343,6 @@ io-ts@1.10.4: dependencies: fp-ts "^1.0.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -3194,31 +2350,11 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-buffer@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.11.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - is-core-module@^2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" @@ -3226,23 +2362,6 @@ is-core-module@^2.13.0: dependencies: has "^1.0.3" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3253,7 +2372,7 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -3265,115 +2384,26 @@ is-hex-prefixed@1.0.0: resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3394,55 +2424,13 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsonc-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" - integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== - jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -3471,6 +2459,11 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +just-extend@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== + keccak@^3.0.0, keccak@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" @@ -3480,13 +2473,6 @@ keccak@^3.0.0, keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -3515,26 +2501,6 @@ level@^8.0.0: browser-level "^1.0.1" classic-level "^1.2.0" -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -linkify-it@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" - integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== - dependencies: - uc.micro "^1.0.1" - locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -3550,20 +2516,10 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: +lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" @@ -3585,6 +2541,13 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" +loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3609,39 +2572,6 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -markdown-it@13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430" - integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q== - dependencies: - argparse "^2.0.1" - entities "~3.0.1" - linkify-it "^4.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" - -markdownlint-cli@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.33.0.tgz#703af1234c32c309ab52fcd0e8bc797a34e2b096" - integrity sha512-zMK1oHpjYkhjO+94+ngARiBBrRDEUMzooDHBAHtmEIJ9oYddd9l3chCReY2mPlecwH7gflQp1ApilTo+o0zopQ== - dependencies: - commander "~9.4.1" - get-stdin "~9.0.0" - glob "~8.0.3" - ignore "~5.2.4" - js-yaml "^4.1.0" - jsonc-parser "~3.2.0" - markdownlint "~0.27.0" - minimatch "~5.1.2" - run-con "~1.2.11" - -markdownlint@~0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.27.0.tgz#9dabf7710a4999e2835e3c68317f1acd0bc89049" - integrity sha512-HtfVr/hzJJmE0C198F99JLaeada+646B5SaG2pVoEakLFI6iRGsvMqrnnrflq8hm1zQgwskEgqSnhDW11JBp0w== - dependencies: - markdown-it "13.0.1" - mcl-wasm@^0.7.1: version "0.7.9" resolved "https://registry.yarnpkg.com/mcl-wasm/-/mcl-wasm-0.7.9.tgz#c1588ce90042a8700c3b60e40efb339fc07ab87f" @@ -3656,11 +2586,6 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - memory-level@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/memory-level/-/memory-level-1.0.0.tgz#7323c3fd368f9af2f71c3cd76ba403a17ac41692" @@ -3675,12 +2600,7 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -3693,15 +2613,17 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" @@ -3713,6 +2635,13 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== +minimatch@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== + dependencies: + brace-expansion "^1.1.7" + minimatch@5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" @@ -3720,20 +2649,13 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@~5.1.2: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^7.4.3: version "7.4.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" @@ -3741,7 +2663,7 @@ minimatch@^7.4.3: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: +minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -3802,6 +2724,36 @@ mocha@^10.0.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" +mocha@^9.0.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9" + integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.3" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + growl "1.10.5" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "4.2.1" + ms "2.1.3" + nanoid "3.3.1" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + workerpool "6.2.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + module-error@^1.0.1, module-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" @@ -3831,6 +2783,16 @@ nan@^2.17.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== +nan@^2.18.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + +nanoid@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + nanoid@3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" @@ -3841,10 +2803,16 @@ napi-macros@^2.2.2: resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.2.2.tgz#817fef20c3e0e40a963fbf7b37d1600bd0201044" integrity sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g== -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nise@^5.1.4: + version "5.1.9" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" + integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== + dependencies: + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/text-encoding" "^0.7.2" + just-extend "^6.2.0" + path-to-regexp "^6.2.1" node-addon-api@^2.0.0: version "2.0.2" @@ -3868,73 +2836,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - obliterator@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" @@ -3947,42 +2853,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - ordinal@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/ordinal/-/ordinal-1.0.3.tgz#1a3c7726a61728112f50944ad7c35c06ae3a0d4d" @@ -4040,23 +2910,6 @@ p-try@^1.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" @@ -4077,25 +2930,15 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-to-regexp@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== pathington@^1.1.7: version "1.1.7" @@ -4118,26 +2961,11 @@ pbkdf2@^3.0.17: safe-buffer "^5.0.1" sha.js "^2.4.8" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pluralize@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" - integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - preprocess@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/preprocess/-/preprocess-3.2.0.tgz#36b3e2c52331fbc6fabb26d4fd5709304b7e3675" @@ -4145,37 +2973,11 @@ preprocess@^3.2.0: dependencies: xregexp "3.1.0" -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier-plugin-solidity@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba" - integrity sha512-fQ9yucPi2sBbA2U2Xjh6m4isUTJ7S7QLc/XDDsktqqxYfTwdYKJ0EnnywXHwCGAaYbQNK+HIYPL1OemxuMsgeg== - dependencies: - "@solidity-parser/parser" "^0.16.0" - semver "^7.3.8" - solidity-comments-extractor "^0.0.7" - prettier@^2.1.2: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -prettier@^2.3.1, prettier@^2.8.3: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -prettier@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643" - integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -4190,6 +2992,11 @@ proper-lockfile@^4.1.2: retry "^0.12.0" signal-exit "^3.0.2" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + pump@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" @@ -4206,11 +3013,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - queue-microtask@^1.2.2, queue-microtask@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -4272,40 +3074,16 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve@1.17.0: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" @@ -4322,15 +3100,6 @@ resolve@^1.10.0, resolve@^1.8.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -4348,13 +3117,6 @@ rimraf@^2.2.8: dependencies: glob "^7.1.3" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -4370,23 +3132,6 @@ rlp@^2.2.3: dependencies: bn.js "^5.2.0" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-con@~1.2.11: - version "1.2.12" - resolved "https://registry.yarnpkg.com/run-con/-/run-con-1.2.12.tgz#51c319910e45a3bd71ee773564a89d96635c8c64" - integrity sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg== - dependencies: - deep-extend "^0.6.0" - ini "~3.0.0" - minimist "^1.2.8" - strip-json-comments "~3.1.1" - run-parallel-limit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz#be80e936f5768623a38a963262d6bef8ff11e7ba" @@ -4406,16 +3151,6 @@ rustbn.js@~0.2.0: resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -4426,15 +3161,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - "safer-buffer@>= 2.1.2 < 3", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4459,12 +3185,12 @@ semver@^5.5.0, semver@^5.6.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.8, semver@^7.5.1, semver@^7.5.2, semver@^7.5.4: +semver@^7.5.1: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -4478,25 +3204,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -4515,45 +3222,27 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +sinon-chai@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.7.0.tgz#cfb7dec1c50990ed18c153f1840721cf13139783" + integrity sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g== -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== +sinon@^16.0.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-16.1.3.tgz#b760ddafe785356e2847502657b4a0da5501fba8" + integrity sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^10.3.0" + "@sinonjs/samsam" "^8.0.0" + diff "^5.1.0" + nise "^5.1.4" + supports-color "^7.2.0" solc@0.7.3: version "0.7.3" @@ -4570,36 +3259,6 @@ solc@0.7.3: semver "^5.5.0" tmp "0.0.33" -solhint@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.6.2.tgz#2b2acbec8fdc37b2c68206a71ba89c7f519943fe" - integrity sha512-85EeLbmkcPwD+3JR7aEMKsVC9YrRSxd4qkXuMzrlf7+z2Eqdfm1wHWq1ffTuo5aDhoZxp2I9yF3QkxZOxOL7aQ== - dependencies: - "@solidity-parser/parser" "^0.16.0" - ajv "^6.12.6" - antlr4 "^4.11.0" - ast-parents "^0.0.1" - chalk "^4.1.2" - commander "^10.0.0" - cosmiconfig "^8.0.0" - fast-diff "^1.2.0" - glob "^8.0.3" - ignore "^5.2.4" - js-yaml "^4.1.0" - lodash "^4.17.21" - pluralize "^8.0.0" - semver "^7.5.2" - strip-ansi "^6.0.1" - table "^6.8.1" - text-table "^0.2.0" - optionalDependencies: - prettier "^2.8.3" - -solidity-comments-extractor@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" - integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== - solpp@^0.11.5: version "0.11.5" resolved "https://registry.yarnpkg.com/solpp/-/solpp-0.11.5.tgz#e5f38b5acc952e1cc2e3871d490fdbed910938dd" @@ -4644,6 +3303,17 @@ ssh2@^1.11.0: cpu-features "~0.0.8" nan "^2.17.0" +ssh2@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-1.15.0.tgz#2f998455036a7f89e0df5847efb5421748d9871b" + integrity sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw== + dependencies: + asn1 "^0.2.6" + bcrypt-pbkdf "^1.0.2" + optionalDependencies: + cpu-features "~0.0.9" + nan "^2.18.0" + stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -4656,12 +3326,7 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -string-format@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/string-format/-/string-format-2.0.0.tgz#f2df2e7097440d3b65de31b6d40d54c96eaffb9b" - integrity sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA== - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4670,33 +3335,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -4723,21 +3361,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -4745,7 +3368,7 @@ strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed "1.0.0" -strip-json-comments@3.1.1, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: +strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -4764,7 +3387,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4776,40 +3399,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -table-layout@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" - integrity sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" - -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - tar-fs@~1.16.3: version "1.16.3" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" @@ -4864,10 +3453,13 @@ template-file@^6.0.1: mkdirp "^1.0.4" p-limit "^4.0.0" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== +test-value@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" + integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== + dependencies: + array-back "^1.0.3" + typical "^2.6.0" thenify-all@^1.0.0: version "1.6.0" @@ -4888,11 +3480,6 @@ thenify-all@^1.0.0: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -4922,21 +3509,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== - -ts-command-line-args@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz#e64456b580d1d4f6d948824c274cf6fa5f45f7f0" - integrity sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw== - dependencies: - chalk "^4.1.0" - command-line-args "^5.1.1" - command-line-usage "^6.1.0" - string-format "^2.0.0" - ts-essentials@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-1.0.4.tgz#ce3b5dade5f5d97cf69889c11bf7d2da8555b15a" @@ -4970,10 +3542,10 @@ ts-morph@^19.0.0: "@ts-morph/common" "~0.20.0" code-block-writer "^12.0.0" -ts-node@^10.7.0: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== +ts-node@^10.1.0: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -4989,26 +3561,11 @@ ts-node@^10.7.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.5.0, tslib@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" @@ -5029,14 +3586,7 @@ tweetnacl@^1.0.3: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -5056,60 +3606,18 @@ type-fest@^0.7.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== -typechain@^8.1.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/typechain/-/typechain-8.3.1.tgz#dccbc839b94877997536c356380eff7325395cfb" - integrity sha512-fA7clol2IP/56yq6vkMTR+4URF1nGjV82Wx6Rf09EsqD4tkzMAvEaqYxVFCavJm/1xaRga/oD55K+4FtuXwQOQ== +typechain@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/typechain/-/typechain-4.0.3.tgz#e8fcd6c984676858c64eeeb155ea783a10b73779" + integrity sha512-tmoHQeXZWHxIdeLK+i6dU0CU0vOd9Cndr3jFTZIMzak5/YpFZ8XoiYpTZcngygGBqZo+Z1EUmttLbW9KkFZLgQ== dependencies: - "@types/prettier" "^2.1.1" - debug "^4.3.1" + command-line-args "^4.0.7" + debug "^4.1.1" fs-extra "^7.0.0" - glob "7.1.7" js-sha3 "^0.8.0" lodash "^4.17.15" - mkdirp "^1.0.4" - prettier "^2.3.1" - ts-command-line-args "^2.2.0" ts-essentials "^7.0.1" - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" + ts-generator "^0.1.1" typedarray@^0.0.6: version "0.0.6" @@ -5121,30 +3629,10 @@ typescript@^4.6.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - -typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" +typical@^2.6.0, typical@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" + integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== undici@^5.14.0: version "5.26.4" @@ -5168,18 +3656,6 @@ unpipe@1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5208,42 +3684,24 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: +which@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wordwrapjs@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.1.tgz#d9790bccfb110a0fc7836b5ebce0937b37a8b98f" - integrity sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA== +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: - reduce-flatten "^2.0.0" - typical "^5.2.0" + string-width "^4.0.0" + +workerpool@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" + integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== workerpool@6.2.1: version "6.2.1" @@ -5347,6 +3805,13 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zksync-ethers@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/zksync-ethers/-/zksync-ethers-5.1.0.tgz#bb42260b3e56d2497af64e0962d7d8cee4a25eed" + integrity sha512-iks12h2/a7aS3kLm48oQWRm5HNViJP7lnGMSx4yidEB0Xob2MTgBv5G/9x40GaiCA1Yld8XIgC5YfcMmHWnh5Q== + dependencies: + ethers "~5.7.0" + zksync-web3@^0.14.3: version "0.14.3" resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.14.3.tgz#64ac2a16d597464c3fc4ae07447a8007631c57c9" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index bc962f33..14381872 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2023-07-23" +channel = "nightly-2023-08-21" components = ["rustfmt", "clippy"] \ No newline at end of file diff --git a/scripts/refresh_contracts.sh b/scripts/refresh_contracts.sh index af6df722..c534bf81 100755 --- a/scripts/refresh_contracts.sh +++ b/scripts/refresh_contracts.sh @@ -1,7 +1,7 @@ #!/bin/bash set -xe -SRC_DIR=etc/system-contracts/artifacts-zk/cache-zk/solpp-generated-contracts +SRC_DIR=etc/system-contracts/artifacts-zk/contracts-preprocessed DST_DIR=src/deps/contracts/ mkdir -p $DST_DIR @@ -15,14 +15,14 @@ done precompiles=("EcAdd" "EcMul" "Ecrecover" "Keccak256" "SHA256") for precompile in "${precompiles[@]}"; do - cp etc/system-contracts/contracts/precompiles/artifacts/$precompile.yul/$precompile.yul.zbin $DST_DIR + cp etc/system-contracts/contracts-preprocessed/precompiles/artifacts/$precompile.yul.zbin $DST_DIR done -cp etc/system-contracts/contracts/artifacts/EventWriter.yul/EventWriter.yul.zbin $DST_DIR +cp etc/system-contracts/contracts-preprocessed/artifacts/EventWriter.yul.zbin $DST_DIR bootloaders=("fee_estimate" "gas_test" "playground_batch" "proved_batch" "proved_batch_impersonating" "fee_estimate_impersonating" ) for bootloader in "${bootloaders[@]}"; do - cp etc/system-contracts/bootloader/build/artifacts/$bootloader.yul/$bootloader.yul.zbin $DST_DIR + cp etc/system-contracts/bootloader/build/artifacts/$bootloader.yul.zbin $DST_DIR done diff --git a/src/bootloader_debug.rs b/src/bootloader_debug.rs index c83b9a80..f601925e 100644 --- a/src/bootloader_debug.rs +++ b/src/bootloader_debug.rs @@ -1,4 +1,4 @@ -use multivm::interface::{dyn_tracers::vm_1_4_0::DynTracer, tracer::VmExecutionStopReason}; +use multivm::interface::{dyn_tracers::vm_1_4_1::DynTracer, tracer::VmExecutionStopReason}; use std::sync::Arc; use multivm::vm_latest::{ @@ -59,17 +59,12 @@ pub struct BootloaderDebug { /// Closing a block has a non-trivial cost for the operator (they have to run the prover, and commit results to L1). /// That's why we have to judge how much a given transaction is contributing the operator closer to sealing the block. - /// Cost of the whole block for the operator. - pub total_overhead_for_block: U256, - /// The maximum amount that operator could have requested. pub required_overhead: U256, /// How much did operator request for the block. pub operator_overhead: U256, - /// The amount of the overhead that circuits / gas are responsible for. - pub overhead_for_circuits: U256, /// The amount of the overhead that transaction length it responsible for. pub overhead_for_length: U256, /// The amount of the overhead that simply using a slot of the block is responsible for. @@ -126,10 +121,8 @@ impl BootloaderDebug { intrinsic_overhead: load_debug_slot(memory, 10), operator_overhead: load_debug_slot(memory, 11), required_overhead: load_debug_slot(memory, 12), - total_overhead_for_block: load_debug_slot(memory, 13), - overhead_for_circuits: load_debug_slot(memory, 14), - overhead_for_length: load_debug_slot(memory, 15), - overhead_for_slot: load_debug_slot(memory, 16), + overhead_for_length: load_debug_slot(memory, 13), + overhead_for_slot: load_debug_slot(memory, 14), }) } } diff --git a/src/deps/contracts/AccountCodeStorage.json b/src/deps/contracts/AccountCodeStorage.json index b30e4be2..20baca0b 100644 --- a/src/deps/contracts/AccountCodeStorage.json +++ b/src/deps/contracts/AccountCodeStorage.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "AccountCodeStorage", - "sourceName": "cache-zk/solpp-generated-contracts/AccountCodeStorage.sol", + "sourceName": "contracts-preprocessed/AccountCodeStorage.sol", "abi": [ { "inputs": [ @@ -110,8 +110,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020002000000000002000200000001035500000060011002700000007c0010019d000100000000001f0000008001000039000000400010043f0000000101200190000000370000c13d0000000001000031000000040110008c000000ef0000413d0000000201000367000000000101043b000000e0011002700000007e0210009c0000003f0000213d000000820210009c000000620000613d000000830210009c000000820000613d000000840110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b000000870210009c000000ef0000213d000000000101041a000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d0000002001000039000001000010044300000120000004430000007d01000041000001ed0001042e0000007f0210009c000000af0000613d000000800210009c000000d90000613d000000810110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b01ec015f0000040f000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002020003670000000401200370000000000101043b000000870310009c000000ef0000213d0000002402200370000000000202043b0000000003000411000080060330008c000001050000c13d00000088032001980000011a0000c13d000000000021041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b0000008701100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000000030000190000000103006039000000000232019f0000008803100197000000890330009c0000000003000019000000010300603900000000023201a0000000db011002700000008b01100197000000000100c019000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002010003670000000402100370000000000302043b000000870230009c000000ef0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d01ec012f0000040f00000002010000290000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000002010000290000000102000029000000000012041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000201043b000000870120009c000000f10000a13d0000000001000019000001ee000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d01ec012f0000040f0000000201000029000000000101041a000100000001001d0000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000001010000290000008a011001970000000202000029000000000012041b0000000001000019000001ed0001042e000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000400100043d00000064021000390000009003000041000000000032043500000044021000390000009103000041000000000032043500000024021000390000002b0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b000001320000613d000000000001042d000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b0000014a0000613d000000000001042d000000400100043d00000064021000390000009203000041000000000032043500000044021000390000009303000041000000000032043500000024021000390000002e0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee000104300002000000000002000000000201001900000094010000410000008702200197000000ff0320008c000001b80000a13d000000000302041a000000000103004b0000016e0000613d00000088013001970000009402000041000000890110009c00000000010300190000000001026019000001b80000013d000100000003001d000000400400043d000200000004001d00000095010000410000000000140435000000040140003900000000002104350000007c0100004100000000020004140000007c0320009c00000000020180190000007c0340009c00000000010440190000004001100210000000c002200210000000000112019f00000096011001c7000080030200003901ec01e70000040f000000020a000029000000000301001900000060033002700000007c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001940000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000018c0000413d000000000705004b000001a30000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000001b90000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000970410009c000001df0000213d0000000102200190000001df0000c13d000000400010043f0000001f0130008c000001e50000a13d000000940100004100000000020a0433000000000202004b0000000103000029000001680000613d000000000001042d000000400200043d0000001f0430018f0000000503300272000001c60000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001be0000413d000000000504004b000001d50000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000007c0100004100000001030000310000007c0430009c00000000030180190000007c0420009c000000000102401900000040011002100000006002300210000000000112019f000001ee00010430000000980100004100000000001004350000004101000039000000040010043f0000009601000041000001ee000104300000000001000019000001ee00010430000001ea002104230000000102000039000000000001042d0000000002000019000000000001042d000001ec00000432000001ed0001042e000001ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e46880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000001fffe07374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000656420636f6e7472616374000000000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7374727563746f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e747261637420c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705aa9b6b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003feb461a4c407970c4055ef207f89a1b4d8d50098197240a59e39b0630ca7988", - "deployedBytecode": "0x00030000000000020002000000000002000200000001035500000060011002700000007c0010019d000100000000001f0000008001000039000000400010043f0000000101200190000000370000c13d0000000001000031000000040110008c000000ef0000413d0000000201000367000000000101043b000000e0011002700000007e0210009c0000003f0000213d000000820210009c000000620000613d000000830210009c000000820000613d000000840110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b000000870210009c000000ef0000213d000000000101041a000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d0000002001000039000001000010044300000120000004430000007d01000041000001ed0001042e0000007f0210009c000000af0000613d000000800210009c000000d90000613d000000810110009c000000ef0000c13d0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b01ec015f0000040f000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002020003670000000401200370000000000101043b000000870310009c000000ef0000213d0000002402200370000000000202043b0000000003000411000080060330008c000001050000c13d00000088032001980000011a0000c13d000000000021041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000101043b0000008701100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000000030000190000000103006039000000000232019f0000008803100197000000890330009c0000000003000019000000010300603900000000023201a0000000db011002700000008b01100197000000000100c019000000400200043d00000000001204350000007c010000410000007c0320009c0000000001024019000000400110021000000086011001c7000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000400310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000002010003670000000402100370000000000302043b000000870230009c000000ef0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d01ec012f0000040f00000002010000290000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000002010000290000000102000029000000000012041b0000000001000019000001ed0001042e0000000001000416000000000101004b000000ef0000c13d000000040100008a00000000011000310000008502000041000000200310008c000000000300001900000000030240190000008501100197000000000401004b000000000200a019000000850110009c00000000010300190000000001026019000000000101004b000000ef0000c13d00000004010000390000000201100367000000000201043b000000870120009c000000f10000a13d0000000001000019000001ee000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d01ec012f0000040f0000000201000029000000000101041a000100000001001d0000008801100197000000890110009c0000000001000019000000010100603901ec01470000040f00000001010000290000008a011001970000000202000029000000000012041b0000000001000019000001ed0001042e000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000400100043d00000064021000390000009003000041000000000032043500000044021000390000009103000041000000000032043500000024021000390000002b0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b000001320000613d000000000001042d000000400100043d00000064021000390000008c03000041000000000032043500000044021000390000008d03000041000000000032043500000024021000390000002d0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee00010430000000000101004b0000014a0000613d000000000001042d000000400100043d00000064021000390000009203000041000000000032043500000044021000390000009303000041000000000032043500000024021000390000002e0300003900000000003204350000008e0200004100000000002104350000000402100039000000200300003900000000003204350000007c020000410000007c0310009c000000000102801900000040011002100000008f011001c7000001ee000104300002000000000002000000000201001900000094010000410000008702200197000000ff0320008c000001b80000a13d000000000302041a000000000103004b0000016e0000613d00000088013001970000009402000041000000890110009c00000000010300190000000001026019000001b80000013d000100000003001d000000400400043d000200000004001d00000095010000410000000000140435000000040140003900000000002104350000007c0100004100000000020004140000007c0320009c00000000020180190000007c0340009c00000000010440190000004001100210000000c002200210000000000112019f00000096011001c7000080030200003901ec01e70000040f000000020a000029000000000301001900000060033002700000007c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001940000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000018c0000413d000000000705004b000001a30000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000001b90000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000970410009c000001df0000213d0000000102200190000001df0000c13d000000400010043f0000001f0130008c000001e50000a13d000000940100004100000000020a0433000000000202004b0000000103000029000001680000613d000000000001042d000000400200043d0000001f0430018f0000000503300272000001c60000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001be0000413d000000000504004b000001d50000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000007c0100004100000001030000310000007c0430009c00000000030180190000007c0420009c000000000102401900000040011002100000006002300210000000000112019f000001ee00010430000000980100004100000000001004350000004101000039000000040010043f0000009601000041000001ee000104300000000001000019000001ee00010430000001ea002104230000000102000039000000000001042d0000000002000019000000000001042d000001ec00000432000001ed0001042e000001ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e46880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000001fffe07374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000656420636f6e7472616374000000000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7374727563746f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e747261637420c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705aa9b6b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003feb461a4c407970c4055ef207f89a1b4d8d50098197240a59e39b0630ca7988", + "bytecode": "0x00020000000000020000008004000039000000400040043f0000000003010019000000600330027000000057033001970000000102200190000000200000c13d000000040230008c000000db0000413d000000000201043b000000e002200270000000590520009c000000280000213d0000005d0420009c000000800000613d0000005e0420009c0000009b0000613d0000005f0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b000000610210009c000000db0000213d000000000101041a000000b20000013d0000000001000416000000000101004b000000db0000c13d0000002001000039000001000010044300000120000004430000005801000041000001560001042e0000005a0520009c000000b50000613d0000005b0520009c000000d10000613d0000005c0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d00000060030000410000000401100370000000000101043b0000006101100197000001000210008c0000007c0000413d0000008004000039000000000501041a000000000205004b000000780000c13d000200000005001d0000006202000041000000800020043f000000840010043f00000057010000410000000002000414000000570320009c0000000002018019000000c00120021000000063011001c70000800302000039015501500000040f000000000301001900000060033002700000005703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000005c0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000540000413d000000000705004b0000006b0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000000fd0000613d0000001f01400039000000600110018f00000080041001bf000000400040043f000000200130008c000000db0000413d000000800100043d000000000101004b000000600300004100000002050000290000007c0000c13d00000064015001970000006003000041000000650110009c000000000305c0190000000000340435000000400140021000000066011001c7000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000202043b000000610320009c000000db0000213d0000002401100370000000000101043b0000000003000411000080060330008c000000f10000c13d0000006403100198000000ee0000613d0000006a01000041000000800010043f0000002001000039000000840010043f0000002b01000039000000a40010043f0000006e01000041000000c40010043f0000006f01000041000000fa0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b0000006101100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000001022061bf0000006403100197000000650330009c0000000003000019000000010300603900000000023201a0000000db011002700000006901100197000000000100c019000000800010043f0000006801000041000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000302043b000000610230009c000000db0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d015501200000040f00000002010000290000006401100197000000650110009c00000000010000190000000101006039015501380000040f00000002010000290000000102000029000000ee0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000201043b000000610120009c000000dd0000a13d000000000100001900000157000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d015501200000040f0000000201000029000000000101041a000100000001001d0000006401100197000000650110009c00000000010000190000000101006039015501380000040f000000010100002900000067011001970000000202000029000000000012041b0000000001000019000001560001042e0000006a01000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000006b01000041000000c40010043f0000006c01000041000000e40010043f0000006d010000410000015700010430000000400200043d0000001f0430018f00000005053002720000010a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001020000413d000000000604004b000001190000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005701000041000000570420009c000000000201801900000040012002100000006002300210000000000121019f0000015700010430000000000101004b000001230000613d000000000001042d000000400100043d00000064021000390000006c03000041000000000032043500000044021000390000006b03000041000000000032043500000024021000390000002d0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c70000015700010430000000000101004b0000013b0000613d000000000001042d000000400100043d00000064021000390000007103000041000000000032043500000044021000390000007203000041000000000032043500000024021000390000002e0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c7000001570001043000000153002104230000000102000039000000000001042d0000000002000019000000000001042d0000015500000432000001560001042e0000015700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e468c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000ffffffffffffffffffffffffffffffffffffffff5aa9b6b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000000ff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000001fffe008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000436f64652068617368206973206e6f7420666f72206120636f6e737472756374656420636f6e747261637400000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000006f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7472616374200000000000000000000000000000000000000000000000000000000000000000e076a4ac708e0dc88ffc0bc066429197f3c0874d9fb473bdcfd56ced72bf5ceb", + "deployedBytecode": "0x00020000000000020000008004000039000000400040043f0000000003010019000000600330027000000057033001970000000102200190000000200000c13d000000040230008c000000db0000413d000000000201043b000000e002200270000000590520009c000000280000213d0000005d0420009c000000800000613d0000005e0420009c0000009b0000613d0000005f0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b000000610210009c000000db0000213d000000000101041a000000b20000013d0000000001000416000000000101004b000000db0000c13d0000002001000039000001000010044300000120000004430000005801000041000001560001042e0000005a0520009c000000b50000613d0000005b0520009c000000d10000613d0000005c0220009c000000db0000c13d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d00000060030000410000000401100370000000000101043b0000006101100197000001000210008c0000007c0000413d0000008004000039000000000501041a000000000205004b000000780000c13d000200000005001d0000006202000041000000800020043f000000840010043f00000057010000410000000002000414000000570320009c0000000002018019000000c00120021000000063011001c70000800302000039015501500000040f000000000301001900000060033002700000005703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000005c0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000540000413d000000000705004b0000006b0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000000fd0000613d0000001f01400039000000600110018f00000080041001bf000000400040043f000000200130008c000000db0000413d000000800100043d000000000101004b000000600300004100000002050000290000007c0000c13d00000064015001970000006003000041000000650110009c000000000305c0190000000000340435000000400140021000000066011001c7000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000202043b000000610320009c000000db0000213d0000002401100370000000000101043b0000000003000411000080060330008c000000f10000c13d0000006403100198000000ee0000613d0000006a01000041000000800010043f0000002001000039000000840010043f0000002b01000039000000a40010043f0000006e01000041000000c40010043f0000006f01000041000000fa0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000101043b0000006101100197000001000210008c00000000020000190000000102004039000000000101041a000000000301004b00000001022061bf0000006403100197000000650330009c0000000003000019000000010300603900000000023201a0000000db011002700000006901100197000000000100c019000000800010043f0000006801000041000001560001042e0000000002000416000000000202004b000000db0000c13d000000040230008a000000400220008c000000db0000413d0000000402100370000000000302043b000000610230009c000000db0000213d0000002401100370000000000101043b000200000001001d0000000001000411000080060110008c00000000010000190000000101006039000100000003001d015501200000040f00000002010000290000006401100197000000650110009c00000000010000190000000101006039015501380000040f00000002010000290000000102000029000000ee0000013d0000000002000416000000000202004b000000db0000c13d000000040230008a000000200220008c000000db0000413d0000000401100370000000000201043b000000610120009c000000dd0000a13d000000000100001900000157000104300000000001000411000080060110008c00000000010000190000000101006039000200000002001d015501200000040f0000000201000029000000000101041a000100000001001d0000006401100197000000650110009c00000000010000190000000101006039015501380000040f000000010100002900000067011001970000000202000029000000000012041b0000000001000019000001560001042e0000006a01000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000006b01000041000000c40010043f0000006c01000041000000e40010043f0000006d010000410000015700010430000000400200043d0000001f0430018f00000005053002720000010a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001020000413d000000000604004b000001190000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005701000041000000570420009c000000000201801900000040012002100000006002300210000000000121019f0000015700010430000000000101004b000001230000613d000000000001042d000000400100043d00000064021000390000006c03000041000000000032043500000044021000390000006b03000041000000000032043500000024021000390000002d0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c70000015700010430000000000101004b0000013b0000613d000000000001042d000000400100043d00000064021000390000007103000041000000000032043500000044021000390000007203000041000000000032043500000024021000390000002e0300003900000000003204350000006a0200004100000000002104350000000402100039000000200300003900000000003204350000005702000041000000570310009c0000000001028019000000400110021000000070011001c7000001570001043000000153002104230000000102000039000000000001042d0000000002000019000000000001042d0000015500000432000001560001042e0000015700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000004f1e1bdf000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000e03fe177000000000000000000000000000000000000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000001806aa18000000000000000000000000000000000000000000000000000000004de2e468c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000ffffffffffffffffffffffffffffffffffffffff5aa9b6b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000000ff00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000001fffe008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000436f64652068617368206973206e6f7420666f72206120636f6e737472756374656420636f6e747261637400000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000006f6e20636f6e7374727563746f72000000000000000000000000000000000000436f64652068617368206973206e6f7420666f72206120636f6e7472616374200000000000000000000000000000000000000000000000000000000000000000e076a4ac708e0dc88ffc0bc066429197f3c0874d9fb473bdcfd56ced72bf5ceb", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/BootloaderUtilities.json b/src/deps/contracts/BootloaderUtilities.json index 31da8323..f0b189be 100644 --- a/src/deps/contracts/BootloaderUtilities.json +++ b/src/deps/contracts/BootloaderUtilities.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "BootloaderUtilities", - "sourceName": "cache-zk/solpp-generated-contracts/BootloaderUtilities.sol", + "sourceName": "contracts-preprocessed/BootloaderUtilities.sol", "abi": [ { "inputs": [ @@ -110,8 +110,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009480430019700030000004103550002000000010355000009480030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c0000083e0000413d0000000201000367000000000101043b0000094a011001970000094b0110009c0000083e0000c13d0000000001000416000000000101004b0000083e0000c13d0000000001000031000000040310008a0000094c02000041000000200430008c000000000400001900000000040240190000094c05300197000000000605004b000000000200a0190000094c0550009c000000000204c019000000000202004b0000083e0000c13d00000002020003670000000404200370000000000904043b0000094d0490009c0000083e0000213d00000000039300490000094c04000041000002600530008c000000000500001900000000050440190000094c03300197000000000603004b000000000400a0190000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000403004b000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000d70000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004b0000007f0000613d0000000004090433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001bc0000013d0000000001000416000000000101004b0000083e0000c13d00000020010000390000010000100443000001200000044300000949010000410000251d0001042e000000710430008c000000e10000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d00000000010004140000000004320019000000000224004b0000000002000019000000010200403900000948033001970000000102200190000000d10000c13d0000000002000031000000000542004b0000041b0000813d000009700100004100000000001004350000001101000039000000040010043f00000971010000410000251e00010430000000400200043d000b00000002001d000009530220009c0000013e0000a13d000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000000020130008c000001560000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c0000028d0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000012b0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001230000413d000000000500004b0000012d0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002aa0000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000001460000413d0000000003070433000000000303004b000001b30000c13d000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000010130008c0000020d0000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c000002fb0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001a00000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001980000413d000000000500004b000001a20000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000003180000013d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c0000021f0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001fa0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001f20000413d000000000500004b000001fc0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000023c0000013d000000400100043d00000044021000390000094e0300004100000000003204350000002402100039000000170300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002290000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003690000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000027a0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002720000413d000000000600004b0000027c0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003860000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002970000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004320000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000002e80000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002e00000413d000000000600004b000002ea0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c0000000003002019000000210420003900000000003404350000044f0000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000003050000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c0000068b0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000003560000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000034e0000413d000000000600004b000003580000613d0000000006030433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000006a80000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000003730000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000003940000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b0000038d0000413d000000000134001900000000000104350000000003020433000000000403004b000003a10000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000039a0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007f00000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000004060000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003fe0000413d000000000400004b000004080000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000008100000013d000a0000000a001d000c00000009001d00000002033003670000095d0510009c000004a00000413d000000400100043d00000044021000390000096f0300004100000000003204350000002402100039000000080300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000043c0000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000007140000413d0000008004300270000009550530009c000000000403a019000009550530009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000048d0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004850000413d000000000700004b0000048f0000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000007310000013d0000000002420049000009480220019700000000022303df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000006f90000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004cb0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004c30000413d000000000400004b000004cd0000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000004dd0000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000004d50000413d000000000604004b000004ec0000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000094c06000041000000000753004b000000000700001900000000070680190000094c055001970000094c08300197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000001010433000900000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000094d0350009c0000083e0000213d0000000503500210000000000434004900000020061000390000094c01000041000000000746004b000000000700001900000000070120190000094c044001970000094c08600197000000000948004b0000000001008019000000000448013f0000094c0440009c000000000107c019000000000101004b0000083e0000c13d000000400100043d000000200410003900000961055001980000052b0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000005230000413d000000000200004b0000052d0000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000094d0520009c000000db0000213d0000000103300190000000db0000c13d000000400020043f0000094802000041000009480340009c0000000003020019000000000304401900000040033002100000000001010433000009480410009c00000000010280190000006001100210000000000131019f0000000003000414000009480430009c0000000002034019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c030000290000083e0000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000105004b0000083e0000c13d0000000d010000290000000004140019000000000143034f000000000101043b0000094d0310009c0000083e0000213d000000000212004900000020034000390000094c04000041000000000523004b000000000500001900000000050420190000094c022001970000094c06300197000000000726004b0000000004008019000000000226013f0000094c0220009c00000000020500190000000002046019000000000202004b0000083e0000c13d0000000002000414000000000131001a0000094804300197000000d10000413d0000000003000031000000000513004b000000d10000413d0000000204400367000009480520009c000004200000213d0000000001130049000009480110019700000000011403df000000c0022002100000095e022001970000095f022001c700000000012103af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d00000948033001970003000000010355000000010220019000000ff30000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000005b10000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005a90000413d000000000400004b000005b30000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000005c30000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005bb0000413d000000000604004b000005d20000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d0000000c0b0000290000006402b000390000000203000367000000000523034f0000004402b00039000000000423034f0000002402b00039000000000623034f0000008402b00039000000a407b00039000000c408b00039000000e409b00039000001040ab00039000001240bb00039000000000bb3034f000000000aa3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000d02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000a0a043b000000000b0b043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c100039000000090d0000290000000000dc0435000001600c1000390000000000bc0435000001400b1000390000000000ab0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000962030000410000000000320435000001c0030000390000000000310435000009630310009c000000db0000213d000001e003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000900000001001d000000400100043d000b00000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000a0400002900000001022001900000083e0000613d0000000b050000290000002002500039000000000101043b00000964030000410000000000320435000000800350003900000000001304350000006001500039000009650300004100000000003104350000004001500039000009660300004100000000003104350000000000450435000009670150009c000000db0000213d0000000b04000029000000a001400039000000400010043f0000094801000041000009480320009c000000000201801900000040022002100000000003040433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000301043b000000400100043d0000004202100039000000090400002900000000004204350000002002100039000009680400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009690310009c000000db0000213d0000008003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400300043d000009530430009c000000db0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006950000413d0000000005030433000000000505004b000001500000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000007820000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000006e60000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006de0000413d000000000700004b000006e80000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000079f0000013d0000001f0430018f0000000502300272000007040000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006fd0000413d000000000504004b000007120000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000071e0000413d0000000006040433000000000606004b000001500000613d000000f8063002100000094c07000041000000000303004b0000000003060019000000000307601900000000060504330000095406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000008400000413d0000008005300270000009550630009c000000000503a019000009550630009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000076f0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007670000413d000000000800004b000007710000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c0000000003002019000000210650003900000000003604350000085d0000013d000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000078c0000413d0000000006040433000000000606004b000001500000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008ae0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007dd0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007d50000413d000000000800004b000007df0000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008cb0000013d000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000007fc0000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b000009aa0000613d00000000010000190000251e00010430000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a0000084a0000413d0000000007050433000000000707004b000001500000613d000000f8073002100000094c08000041000000000303004b0000000003070019000000000308601900000000070604330000095407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c0000092c0000413d0000008006300270000009550730009c000000000603a019000009550730009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000000db0000213d0000000109900190000000db0000c13d000000400080043f00000002087000390000000008860436000000210970003900000005099002720000089b0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000008930000413d000000000900004b0000089d0000613d0000000009060433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000009490000013d000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000008b80000413d0000000007050433000000000707004b000001500000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c000000db0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009cb0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c000000db0000213d000000010aa00190000000db0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000009190000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000009110000413d000000000a00004b0000091b0000613d000000000a070433000000000a0a004b000001500000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009e80000013d000000400600043d000009530760009c000000db0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000009360000413d0000000008060433000000000808004b000001500000613d000000f8083002100000094c09000041000000000303004b0000000003080019000000000309601900000000080704330000095408800197000000000338019f0000000000370435000000400700043d000009530370009c000000db0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000ac60000413d0000008008300270000009550930009c000000000803a019000009550930009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000000db0000213d000000010bb00190000000db0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009970000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000098f0000413d000000000b00004b000009990000613d000000000b080433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000ae30000013d000000010410008c00000a900000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b00000bb50000c13d000000400100043d000400000001001d000009530110009c000000db0000213d00000004030000290000004001300039000000400010043f0000002001300039000009560200004100000000002104350000000101000039000000000013043500000bb50000013d000000400700043d000009530870009c000000db0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000009d50000413d0000000009070433000000000909004b000001500000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b000009f50000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b000009ee0000413d000000000189001900000000000104350000000008030433000000000908004b00000a020000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b000009fb0000413d000000000118001900000000000104350000000003040433000000000803004b00000a0f0000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00000a080000413d000000000113001900000000000104350000000003050433000000000403004b00000a1c0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00000a150000413d000000000113001900000000000104350000000003060433000000000403004b00000a290000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00000a220000413d000000000113001900000000000104350000000003070433000000000403004b00000a360000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00000a2f0000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000094d0450009c000000db0000213d0000000103300190000000db0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e690000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000ee70000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000ee70000013d000000380210008c00000b980000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009530440009c000000db0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000aae0000413d00000004040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000bb50000013d000000400800043d000009530980009c000000db0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000ad00000413d000000000a080433000000000a0a004b000001500000613d000000f80a3002100000094c0b000041000000000303004b00000000030a001900000000030b6019000000000a090433000009540aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000b0a004b00000af00000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000ae90000413d00000000019a001900000000000104350000000009020433000000000a09004b00000afd0000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000af60000413d000000000119001900000000000104350000000002040433000000000902004b00000b0a0000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000b030000413d000000000112001900000000000104350000000002050433000000000402004b00000b170000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000b100000413d000000000112001900000000000104350000000002060433000000000402004b00000b240000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000b1d0000413d000000000112001900000000000104350000000002070433000000000402004b00000b310000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000b2a0000413d000000000112001900000000000104350000000002080433000000000402004b00000b3e0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000b370000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000094d0450009c000000db0000213d0000000102200190000000db0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e9b0000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000f7a0000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000f7a0000013d000000400200043d000400000002001d000009530220009c000000db0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000ba40000413d00000004030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b00000c2a0000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000094c04000041000000000659004b000000000600001900000000060480190000094c055001970000094c07900197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000094d0a20009c0000083e0000213d000000000323004900000020099000390000094c0a000041000000000b39004b000000000b000019000000000b0a20190000094c033001970000094c09900197000000000c39004b000000000a008019000000000339013f0000094c0330009c00000000030b001900000000030a6019000000000303004b0000083e0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000094d02200197000000380320008c00000cc20000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000c140000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000cdc0000013d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000101043b000000800210008c00000c840000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000c710000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000c690000413d000000000500004b00000c730000613d0000000005020433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000ca10000013d000000400200043d000009530320009c000000db0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000c8e0000413d0000000004020433000000000404004b000001500000613d000000f8041002100000094c05000041000000000101004b0000000001040019000000000105601900000000040304330000095404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000504004b00000cae0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000ca70000413d00000000023400190000096a03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000094d0420009c000000db0000213d0000000103300190000000db0000c13d000000400020043f000000020200036700000bbd0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000ccc0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b00000d140000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d0d0000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000807004b00000d220000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d1b0000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000807004b00000d300000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d290000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000807004b00000d3e0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d370000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000807004b00000d4c0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d450000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000807004b00000d5a0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d530000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000d690000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000d610000413d000000000907004b00000d780000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b00000d850000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000d7e0000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b0000290000083e0000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c0000100e0000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d0000000001000414000000000232001a0000094804300197000000d10000413d0000000003000031000000000523004b000000d10000413d0000000204400367000009480510009c000004200000213d0000000002230049000009480220019700000000022403df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000013900000613d0000003f013000390000096002100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000094d0520009c000000db0000213d0000000104400190000000db0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000e110000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000e090000413d000000000400004b00000e130000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f000000050330027200000e230000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000e1b0000413d000000000604004b00000e320000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000e570000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c030000290000000000320435000000400300003900000000003104350000096d0310009c000000db0000213d0000006003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400100043d00000044021000390000096c03000041000000000032043500000024021000390000001f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000380760008c00000ecd0000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e840000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000ee70000013d000000380760008c00000f600000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000eb60000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000f7a0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000ed60000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000ef10000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000010640000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000f4a0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000107d0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000f690000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000f840000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000011250000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000fdd0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000113e0000013d0000001f0430018f000000050230027200000ffe0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ff70000413d000000000504004b0000100c0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000000301004b000011200000c13d0000010401b00039000000000112034f000000000101043b000000800210008c000011e10000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b040000290000000003340436000000210420003900000005044002720000104f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010470000413d000000000400004b000010510000613d0000000b040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012010000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000106d0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000094c0a000041000000000b83004b000000000b000019000000000b0a80190000094c088001970000094c0c300197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020093000390000094c03000041000000000a49004b000000000a000019000000000a0320190000094c044001970000094c0b900197000000000c4b004b000000000300801900000000044b013f0000094c0440009c00000000030ac019000000000303004b0000083e0000c13d000000400300043d00000020043000390000095b0a0000410000000000a40435000000210a300039000000000b070433000000000c0b004b000010b50000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000010ae0000413d0000000007ab00190000000000070435000000000a020433000000000b0a004b000010c20000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000010bb0000413d00000000027a001900000000000204350000000007060433000000000a07004b000010cf0000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000010c80000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000010de0000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010d60000413d000000000a06004b000010ed0000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000706004b000010fa0000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000010f30000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000094d0510009c000000db0000213d0000000102200190000000db0000c13d000000400010043f0000094801000041000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000020210008c000012510000c13d0000000d01000029251c1e500000040f000012550000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000112e0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000094c0a000041000000000b82004b000000000b000019000000000b0a80190000094c088001970000094c0c200197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020092000390000094c02000041000000000a49004b000000000a000019000000000a0220190000094c044001970000094c0b900197000000000c4b004b000000000200801900000000044b013f0000094c0440009c00000000020ac019000000000202004b0000083e0000c13d000000400200043d00000020042000390000095c0a0000410000000000a40435000000210a200039000000000b070433000000000c0b004b000011760000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000116f0000413d0000000007ab00190000000000070435000000000a030433000000000b0a004b000011830000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b0000117c0000413d00000000037a001900000000000304350000000007060433000000000a07004b000011900000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011890000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000119f0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000011970000413d000000000a06004b000011ae0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000706004b000011bb0000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011b40000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000094d0510009c000000db0000213d0000000103300190000000db0000c13d000000400010043f0000094801000041000009480340009c0000000003010019000000000304401900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400200043d000b00000002001d000009530220009c000000db0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000011ed0000413d0000000b030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000012710000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000123e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012360000413d000000000500004b000012400000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000128e0000013d000000010110008c000012600000c13d0000000d01000029251c18090000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000094801000041000009480320009c000000000102401900000040011002100000096e011001c70000251d0001042e000000400200043d000d00000002001d0000094f0100004100000000001204350000000401200039251c17ff0000040f0000000d0400002900000000014100490000094802000041000009480310009c0000000001028019000009480340009c000000000204401900000040022002100000006001100210000000000121019f0000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000127b0000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000012de0000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000012cb0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000012c30000413d000000000600004b000012cd0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000012fb0000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000012e80000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000013090000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013020000413d000000000134001900000000000104350000000003020433000000000403004b000013160000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000130f0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000013ab0000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000137b0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000013730000413d000000000400004b0000137d0000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000013cb0000013d0000001f0430018f00000005023002720000139b0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013940000413d000000000504004b000013a90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000013b70000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000010410008c0000141a0000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000101004b0000146d0000c13d000000400100043d000600000001001d000009530110009c000000db0000213d00000006030000290000004001300039000000400010043f000000200130003900000956020000410000000000210435000000010100003900000000001304350000146d0000013d000000380210008c000014500000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009530440009c000000db0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014380000413d00000006040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf0000000602000029000000210220003900000000001204350000146d0000013d000000400200043d000600000002001d000009530220009c000000db0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000145c0000413d00000006030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000200650008c0000083e0000413d000000000553004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000000232034f000000000202043b000000800320008c000014ed0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000014d80000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000014d00000413d000000000500004b000014da0000613d00000005050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000000503000029000000210330003900000000002304350000150d0000013d000000400300043d000500000003001d000009530330009c000000db0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014f90000413d00000005040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000400650008c0000083e0000413d000000000353004900000020054000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d0000004003400039000000000232034f000000000202043b000000800320008c0000158d0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000015780000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015700000413d000000000500004b0000157a0000613d00000004050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000015ad0000013d000000400300043d000400000003001d000009530330009c000000db0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000015990000413d00000004040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000094d0540009c0000083e0000213d000000000343004900000020051000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d000000410340008c000001500000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000164f0000813d0000014401b00039000000000112034f000000000101043b000000000101004b000016610000613d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000201043b0000000101200210000000000302004b000015fc0000613d000000090300008a000000000331004b000000d10000213d00000000322100d9000000020220008c000000d10000c13d000000010300002900000000011300190000000802100039000000000132004b000000d10000413d000000800120008c000100000002001d000016610000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000163c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016340000413d000000000500004b0000163e0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000167e0000013d000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530210009c000000db0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000166b0000413d0000000003010433000000000303004b000001500000613d0000000105000029000000f8035002100000094c04000041000000000505004b000000000304601900000000040204330000095404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000094c04000041000000000539004b000000000500001900000000050480190000094c033001970000094c06900197000000000736004b0000000004008019000000000336013f0000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000094d0a80009c0000083e0000213d000000000282004900000020099000390000094c0a000041000000000b29004b000000000b000019000000000b0a20190000094c022001970000094c09900197000000000c29004b000000000a008019000000000229013f0000094c0220009c00000000020b001900000000020a6019000000000202004b0000083e0000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000094d02200197000000380320008c000016f30000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000016dd0000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf000000210350003900000000002304350000170d0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000016fd0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b000017450000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b0000173e0000413d000000000537001900000000000504350000000b070000290000000007070433000000000807004b000017540000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000174c0000413d000000000557001900000000000504350000000a070000290000000007070433000000000807004b000017630000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000175b0000413d0000000005570019000000000005043500000009070000290000000007070433000000000807004b000017720000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000176a0000413d0000000005570019000000000005043500000007070000290000000007070433000000000807004b000017810000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017790000413d0000000005570019000000000005043500000006070000290000000007070433000000000807004b000017900000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017880000413d00000000055700190000001f0740018f0000000000050435000000020660036700000005084002720000179f0000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017970000413d000000000907004b000017ae0000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b000017bb0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000017b40000413d0000000001450019000000000001043500000005040000290000000004040433000000000504004b000017ca0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000017c20000413d0000000001140019000000000001043500000004040000290000000004040433000000000504004b000017d90000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000017d10000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400210003900000972030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f000000010220019000001e300000613d000000000201043b000000800120008c000018650000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c00001e320000213d000000010550019000001e320000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000018520000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000184a0000413d000000000500004b000018540000613d0000000005010433000000000505004b00001e380000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000018820000013d000000400100043d000009530310009c00001e320000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000186f0000413d0000000004010433000000000404004b00001e380000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000018d30000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c00001e320000213d000000010660019000001e320000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000018c00000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000018b80000413d000000000600004b000018c20000613d0000000006030433000000000606004b00001e380000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000018f00000013d000000400300043d000009530430009c00001e320000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000018dd0000413d0000000005030433000000000505004b00001e380000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c000019410000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c00001e320000213d000000010770019000001e320000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000192e0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000019260000413d000000000700004b000019300000613d0000000007040433000000000707004b00001e380000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000195e0000013d000000400400043d000009530540009c00001e320000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000194b0000413d0000000006040433000000000606004b00001e380000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c000019af0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c00001e320000213d000000010880019000001e320000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000199c0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000019940000413d000000000800004b0000199e0000613d0000000008050433000000000808004b00001e380000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000019cc0000013d000000400500043d000009530650009c00001e320000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000019b90000413d0000000007050433000000000707004b00001e380000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c00001e320000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001a2d0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c00001e320000213d000000010aa0019000001e320000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001a1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001a120000413d000000000a00004b00001a1c0000613d000000000a070433000000000a0a004b00001e380000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001a4a0000013d000000400700043d000009530870009c00001e320000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00001a370000413d0000000009070433000000000909004b00001e380000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b00001a570000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001a500000413d000000000189001900000000000104350000000008030433000000000908004b00001a640000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001a5d0000413d000000000118001900000000000104350000000003040433000000000803004b00001a710000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001a6a0000413d000000000113001900000000000104350000000003050433000000000403004b00001a7e0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001a770000413d000000000113001900000000000104350000000003060433000000000403004b00001a8b0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001a840000413d000000000113001900000000000104350000000003070433000000000403004b00001a980000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001a910000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c00001e320000213d000000010110019000001e320000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c00001e300000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b00001e300000c13d000000010160008c00001af50000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b00001b410000c13d000009530150009c00001e320000213d0000004001500039000000400010043f00000020015000390000095603000041000000000031043500000001010000390000000000150435000000000605001900001b410000013d000000380160008c00001b270000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c00001e320000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a00001b100000413d0000000001050433000000000101004b00001e380000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001b410000013d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a00001b300000413d0000000001050433000000000101004b00001e380000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a00001b4c0000413d0000000001050433000000000101004b00001e380000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b00001e300000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c00001e300000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b00001e300000c13d0000002001b0008c00001e300000413d000000000187034f000000000801043b000000800180008c00001bd60000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c00001e320000213d000000010cc0019000001e320000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001bc20000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001bba0000413d000000000100004b00001bc40000613d0000000001070433000000000101004b00001e380000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001bf20000013d000000400700043d000009530170009c00001e320000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a00001be00000413d0000000001070433000000000101004b00001e380000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b00001e300000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b00001e300000c13d0000004001d0008c00001e300000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001c6e0000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c00001e320000213d0000000103d0019000001e320000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001c5a0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001c520000413d000000000100004b00001c5c0000613d0000000001080433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001c8a0000013d000000400800043d000009530180009c00001e320000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a00001c780000413d0000000001080433000000000101004b00001e380000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b00001e300000c13d0000004101d0008c00001e380000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c00001cc50000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c00001e3e0000c13d000000400a00043d0000095301a0009c00001e320000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a00001ccf0000413d00000000010a0433000000000101004b00001e380000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c00001e300000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b00001e300000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c00001d480000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c00001e320000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a00001d320000413d00000000010b0433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001d620000013d000000400b00043d0000095301b0009c00001e320000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a00001d520000413d00000000010b0433000000000101004b00001e380000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c00001e300000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b00001e300000c13d000000400300043d00000020043000390000095b01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b00001d9c0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001d950000413d000000000bde001900000000000b0435000000000d02043300000000010d004b00001da90000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001da20000413d0000000002bd00190000000000020435000000000b06043300000000010b004b00001db60000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001daf0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001dc50000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001dbd0000413d000000000106004b00001dd40000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b00001de10000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001dda0000413d0000000002260019000000000002043500000000050a0433000000000105004b00001dee0000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001de70000413d000000000225001900000000000204350000000005070433000000000105004b00001dfb0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001df40000413d000000000225001900000000000204350000000005080433000000000105004b00001e080000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001e010000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c00001e320000213d000000010220019000001e320000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f000000010220019000001e300000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e000104300006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000102200190000024f20000613d000000000201043b000000800120008c00001eac0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000024f40000213d0000000105500190000024f40000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001e990000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001e910000413d000000000500004b00001e9b0000613d0000000005010433000000000505004b000024fa0000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001ec90000013d000000400100043d000009530310009c000024f40000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00001eb60000413d0000000004010433000000000404004b000024fa0000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c00001f1a0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000024f40000213d0000000106600190000024f40000c13d000000400050043f000000020540003900000000055304360000002106400039000000050660027200001f070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00001eff0000413d000000000600004b00001f090000613d0000000006030433000000000606004b000024fa0000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c00000000020020190000002104300039000000000024043500001f370000013d000000400300043d000009530430009c000024f40000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a00001f240000413d0000000005030433000000000505004b000024fa0000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c00001f880000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000024f40000213d0000000107700190000024f40000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001f750000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001f6d0000413d000000000700004b00001f770000613d0000000007040433000000000707004b000024fa0000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001fa50000013d000000400400043d000009530540009c000024f40000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00001f920000413d0000000006040433000000000606004b000024fa0000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c00001ff60000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000024f40000213d0000000108800190000024f40000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001fe30000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001fdb0000413d000000000800004b00001fe50000613d0000000008050433000000000808004b000024fa0000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000020130000013d000000400500043d000009530650009c000024f40000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000020000000413d0000000007050433000000000707004b000024fa0000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c000020640000413d0000008006200270000009550720009c000000000602a019000009550720009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000024f40000213d0000000109900190000024f40000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000020510000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000020490000413d000000000900004b000020530000613d0000000009060433000000000909004b000024fa0000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000020810000013d000000400600043d000009530760009c000024f40000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a0000206e0000413d0000000008060433000000000808004b000024fa0000613d000000f8082002100000094c09000041000000000202004b0000000002080019000000000209601900000000080704330000095408800197000000000228019f0000000000270435000000400700043d000009530270009c000024f40000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c000020e20000413d0000008008200270000009550920009c000000000802a019000009550920009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000024f40000213d000000010bb00190000024f40000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000020cf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000020c70000413d000000000b00004b000020d10000613d000000000b080433000000000b0b004b000024fa0000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c000000000200201900000021098000390000000000290435000020ff0000013d000000400800043d000009530980009c000024f40000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000020ec0000413d000000000a080433000000000a0a004b000024fa0000613d000000f80a2002100000094c0b000041000000000202004b00000000020a001900000000020b6019000000000a090433000009540aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000b0a004b0000210c0000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000021050000413d00000000019a001900000000000104350000000009030433000000000a09004b000021190000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b000021120000413d000000000119001900000000000104350000000003040433000000000903004b000021260000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000211f0000413d000000000113001900000000000104350000000003050433000000000403004b000021330000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b0000212c0000413d000000000113001900000000000104350000000003060433000000000403004b000021400000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000021390000413d000000000113001900000000000104350000000003070433000000000403004b0000214d0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000021460000413d000000000113001900000000000104350000000003080433000000000403004b0000215a0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000021530000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c000024f40000213d0000000101100190000024f40000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c000024f20000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b000024f20000c13d000000010160008c000021b70000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b000022030000c13d000009530150009c000024f40000213d0000004001500039000000400010043f000000200150003900000956030000410000000000310435000000010100003900000000001504350000000006050019000022030000013d000000380160008c000021e90000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c000024f40000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a000021d20000413d0000000001050433000000000101004b000024fa0000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000022030000013d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a000021f20000413d0000000001050433000000000101004b000024fa0000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a0000220e0000413d0000000001050433000000000101004b000024fa0000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b000024f20000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c000024f20000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b000024f20000c13d0000002001b0008c000024f20000413d000000000187034f000000000801043b000000800180008c000022980000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c000024f40000213d000000010cc00190000024f40000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000022840000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b0000227c0000413d000000000100004b000022860000613d0000000001070433000000000101004b000024fa0000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000022b40000013d000000400700043d000009530170009c000024f40000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a000022a20000413d0000000001070433000000000101004b000024fa0000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b000024f20000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b000024f20000c13d0000004001d0008c000024f20000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000023300000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c000024f40000213d0000000103d00190000024f40000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e1002720000231c0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b000023140000413d000000000100004b0000231e0000613d0000000001080433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c00000000010300190000000001002019000000210380003900000000001304350000234c0000013d000000400800043d000009530180009c000024f40000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a0000233a0000413d0000000001080433000000000101004b000024fa0000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b000024f20000c13d0000004101d0008c000024fa0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c000023870000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c000025000000c13d000000400a00043d0000095301a0009c000024f40000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a000023910000413d00000000010a0433000000000101004b000024fa0000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c000024f20000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b000024f20000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c0000240a0000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c000024f40000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a000023f40000413d00000000010b0433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000024240000013d000000400b00043d0000095301b0009c000024f40000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a000024140000413d00000000010b0433000000000101004b000024fa0000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c000024f20000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b000024f20000c13d000000400300043d00000020043000390000095c01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b0000245e0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b000024570000413d000000000bde001900000000000b0435000000000d02043300000000010d004b0000246b0000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000024640000413d0000000002bd00190000000000020435000000000b06043300000000010b004b000024780000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000024710000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000024870000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b0000247f0000413d000000000106004b000024960000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b000024a30000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b0000249c0000413d0000000002260019000000000002043500000000050a0433000000000105004b000024b00000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000024a90000413d000000000225001900000000000204350000000005070433000000000105004b000024bd0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000024b60000413d000000000225001900000000000204350000000005080433000000000105004b000024ca0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000024c30000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c000024f40000213d0000000102200190000024f40000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f0000000102200190000024f20000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e0001043000002515002104230000000102000039000000000001042d0000000002000019000000000001042d0000251a002104230000000102000039000000000001042d0000000002000019000000000001042d0000251c000004320000251d0001042e0000251e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052b2bf42e5ab5127f48669ab36579badd217fbd10998091dbba6028927708cf2", - "deployedBytecode": "0x0004000000000002000d00000000000200000000030100190000006003300270000009480430019700030000004103550002000000010355000009480030019d000100000000001f000000800a0000390000004000a0043f0000000101200190000000910000c13d0000000001000031000000040110008c0000083e0000413d0000000201000367000000000101043b0000094a011001970000094b0110009c0000083e0000c13d0000000001000416000000000101004b0000083e0000c13d0000000001000031000000040310008a0000094c02000041000000200430008c000000000400001900000000040240190000094c05300197000000000605004b000000000200a0190000094c0550009c000000000204c019000000000202004b0000083e0000c13d00000002020003670000000404200370000000000904043b0000094d0490009c0000083e0000213d00000000039300490000094c04000041000002600530008c000000000500001900000000050440190000094c03300197000000000603004b000000000400a0190000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000403900039000d00000003001d000000000332034f000000000303043b000000000403004b000000990000c13d000c00000009001d0000010401900039000000000112034f000000000101043b000000800210008c000000d70000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b090000290000000003390436000000210420003900000005044002720000007d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000750000413d000000000400004b0000007f0000613d0000000004090433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000001bc0000013d0000000001000416000000000101004b0000083e0000c13d00000020010000390000010000100443000001200000044300000949010000410000251d0001042e000000710430008c000000e10000c13d000001c403900039000000000332034f000000230400008a0000000004940049000b00000004001d0000000004140019000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d00000000010004140000000004320019000000000224004b0000000002000019000000010200403900000948033001970000000102200190000000d10000c13d0000000002000031000000000542004b0000041b0000813d000009700100004100000000001004350000001101000039000000040010043f00000971010000410000251e00010430000000400200043d000b00000002001d000009530220009c0000013e0000a13d000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000000020130008c000001560000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c0000028d0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000012b0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001230000413d000000000500004b0000012d0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000002aa0000013d0000000b070000290000004002700039000000400020043f0000000102000039000000000227043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000001460000413d0000000003070433000000000303004b000001b30000c13d000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000010130008c0000020d0000c13d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039000c00000009001d251c25120000040f00000001022001900000083e0000613d000000000201043b000000800120008c000002fb0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001a00000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001980000413d000000000500004b000001a20000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000003180000013d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f00000000001204350000000c01000029000000a4011000390000000201100367000000000201043b000000800120008c0000021f0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000001fa0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001f20000413d000000000500004b000001fc0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000023c0000013d000000400100043d00000044021000390000094e0300004100000000003204350000002402100039000000170300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002290000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000064022000390000000202200367000000000302043b000000800230008c000003690000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f00000002054000390000000005520436000000210640003900000005066002720000027a0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002720000413d000000000600004b0000027c0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000003860000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000002970000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000302043b000000800230008c000004320000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000002e80000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000002e00000413d000000000600004b000002ea0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c0000000003002019000000210420003900000000003404350000044f0000013d000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000003050000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000c0200002900000104022000390000000202200367000000000202043b000000800320008c0000068b0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000003560000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000034e0000413d000000000600004b000003580000613d0000000006030433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000006a80000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000003730000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000003940000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b0000038d0000413d000000000134001900000000000104350000000003020433000000000403004b000003a10000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000039a0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d0000000c0400002900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000007f00000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000704000029000000000334043600000021042000390000000504400272000004060000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003fe0000413d000000000400004b000004080000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000008100000013d000a0000000a001d000c00000009001d00000002033003670000095d0510009c000004a00000413d000000400100043d00000044021000390000096f0300004100000000003204350000002402100039000000080300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a0000043c0000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f00000000003404350000000c03000029000000c4033000390000000203300367000000000303043b000000800430008c000007140000413d0000008004300270000009550530009c000000000403a019000009550530009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000048d0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004850000413d000000000700004b0000048f0000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c000000000300201900000021054000390000000000350435000007310000013d0000000002420049000009480220019700000000022303df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000006f90000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000004cb0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004c30000413d000000000400004b000004cd0000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000004dd0000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000004d50000413d000000000604004b000004ec0000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d00000000040000310000000b0200002900000000052400190000000c0200002900000204032000390000000202000367000000000332034f000000000303043b0000094c06000041000000000753004b000000000700001900000000070680190000094c055001970000094c08300197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000001010433000900000001001d0000000d010000290000000001130019000000000312034f000000000503043b0000094d0350009c0000083e0000213d0000000503500210000000000434004900000020061000390000094c01000041000000000746004b000000000700001900000000070120190000094c044001970000094c08600197000000000948004b0000000001008019000000000448013f0000094c0440009c000000000107c019000000000101004b0000083e0000c13d000000400100043d000000200410003900000961055001980000052b0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000005230000413d000000000200004b0000052d0000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b000000000300001900000001030040390000094d0520009c000000db0000213d0000000103300190000000db0000c13d000000400020043f0000094802000041000009480340009c0000000003020019000000000304401900000040033002100000000001010433000009480410009c00000000010280190000006001100210000000000131019f0000000003000414000009480430009c0000000002034019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c030000290000083e0000613d00000000020000310000000b04000029000000000542001900000224043000390000000203000367000000000443034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000101043b000b00000001001d000000000105004b0000083e0000c13d0000000d010000290000000004140019000000000143034f000000000101043b0000094d0310009c0000083e0000213d000000000212004900000020034000390000094c04000041000000000523004b000000000500001900000000050420190000094c022001970000094c06300197000000000726004b0000000004008019000000000226013f0000094c0220009c00000000020500190000000002046019000000000202004b0000083e0000c13d0000000002000414000000000131001a0000094804300197000000d10000413d0000000003000031000000000513004b000000d10000413d0000000204400367000009480520009c000004200000213d0000000001130049000009480110019700000000011403df000000c0022002100000095e022001970000095f022001c700000000012103af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d00000948033001970003000000010355000000010220019000000ff30000613d0000003f013000390000096001100197000000400200043d0000000001120019000000000421004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f00000000013204360000001f043000390000000504400272000005b10000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005a90000413d000000000400004b000005b30000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f0000000503300272000005c30000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005bb0000413d000000000604004b000005d20000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000e570000c13d0000000c0b0000290000006402b000390000000203000367000000000523034f0000004402b00039000000000423034f0000002402b00039000000000623034f0000008402b00039000000a407b00039000000c408b00039000000e409b00039000001040ab00039000001240bb00039000000000bb3034f000000000aa3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000d02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000a0a043b000000000b0b043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c1000390000000b0d0000290000000000dc0435000001800c100039000000090d0000290000000000dc0435000001600c1000390000000000bc0435000001400b1000390000000000ab0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000962030000410000000000320435000001c0030000390000000000310435000009630310009c000000db0000213d000001e003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000900000001001d000000400100043d000b00000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000a0400002900000001022001900000083e0000613d0000000b050000290000002002500039000000000101043b00000964030000410000000000320435000000800350003900000000001304350000006001500039000009650300004100000000003104350000004001500039000009660300004100000000003104350000000000450435000009670150009c000000db0000213d0000000b04000029000000a001400039000000400010043f0000094801000041000009480320009c000000000201801900000040022002100000000003040433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000301043b000000400100043d0000004202100039000000090400002900000000004204350000002002100039000009680400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000009690310009c000000db0000213d0000008003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400300043d000009530430009c000000db0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006950000413d0000000005030433000000000505004b000001500000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000c02000029000000a4022000390000000202200367000000000202043b000000800420008c000007820000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000000db0000213d0000000107700190000000db0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000006e60000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006de0000413d000000000700004b000006e80000613d0000000007040433000000000707004b000001500000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000079f0000013d0000001f0430018f0000000502300272000007040000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006fd0000413d000000000504004b000007120000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000071e0000413d0000000006040433000000000606004b000001500000613d000000f8063002100000094c07000041000000000303004b0000000003060019000000000307601900000000060504330000095406600197000000000336019f00000000003504350000000c03000029000000a4033000390000000203300367000000000303043b000000800530008c000008400000413d0000008005300270000009550630009c000000000503a019000009550630009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000076f0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007670000413d000000000800004b000007710000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c0000000003002019000000210650003900000000003604350000085d0000013d000000400400043d000009530540009c000000db0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000078c0000413d0000000006040433000000000606004b000001500000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000c0200002900000064022000390000000202200367000000000202043b000000800520008c000008ae0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000000db0000213d0000000108800190000000db0000c13d000000400070043f0000000207600039000000000775043600000021086000390000000508800272000007dd0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000007d50000413d000000000800004b000007df0000613d0000000008050433000000000808004b000001500000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000008cb0000013d000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000007fc0000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a0000000c020000290000000004210049000001c4012000390000000202000367000600000001001d000000000112034f000000000101043b0000000003000031000500000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b000009aa0000613d00000000010000190000251e00010430000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a0000084a0000413d0000000007050433000000000707004b000001500000613d000000f8073002100000094c08000041000000000303004b0000000003070019000000000308601900000000070604330000095407700197000000000337019f00000000003604350000000c0300002900000064033000390000000203300367000000000303043b000000800630008c0000092c0000413d0000008006300270000009550730009c000000000603a019000009550730009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000000db0000213d0000000109900190000000db0000c13d000000400080043f00000002087000390000000008860436000000210970003900000005099002720000089b0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000008930000413d000000000900004b0000089d0000613d0000000009060433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c000000000300201900000021076000390000000000370435000009490000013d000000400500043d000009530650009c000000db0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000008b80000413d0000000007050433000000000707004b000001500000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c000000db0000213d0000000c0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c000009cb0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c000000db0000213d000000010aa00190000000db0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa00272000009190000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000009110000413d000000000a00004b0000091b0000613d000000000a070433000000000a0a004b000001500000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c000000000200201900000021087000390000000000280435000009e80000013d000000400600043d000009530760009c000000db0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000009360000413d0000000008060433000000000808004b000001500000613d000000f8083002100000094c09000041000000000303004b0000000003080019000000000309601900000000080704330000095408800197000000000338019f0000000000370435000000400700043d000009530370009c000000db0000213d0000000c0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000ac60000413d0000008008300270000009550930009c000000000803a019000009550930009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000000db0000213d000000010bb00190000000db0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000009970000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000098f0000413d000000000b00004b000009990000613d000000000b080433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000ae30000013d000000010410008c00000a900000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b00000bb50000c13d000000400100043d000400000001001d000009530110009c000000db0000213d00000004030000290000004001300039000000400010043f0000002001300039000009560200004100000000002104350000000101000039000000000013043500000bb50000013d000000400700043d000009530870009c000000db0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000009d50000413d0000000009070433000000000909004b000001500000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b000009f50000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b000009ee0000413d000000000189001900000000000104350000000008030433000000000908004b00000a020000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b000009fb0000413d000000000118001900000000000104350000000003040433000000000803004b00000a0f0000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00000a080000413d000000000113001900000000000104350000000003050433000000000403004b00000a1c0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00000a150000413d000000000113001900000000000104350000000003060433000000000403004b00000a290000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00000a220000413d000000000113001900000000000104350000000003070433000000000403004b00000a360000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00000a2f0000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f03100039000000200100008a000000000313016f0000000005230019000000000335004b000000000300001900000001030040390000094d0450009c000000db0000213d0000000103300190000000db0000c13d000000400050043f000000230300008a0000000c060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e690000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000ee70000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000ee70000013d000000380210008c00000b980000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000009530440009c000000db0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000aae0000413d00000004040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf00000004020000290000002102200039000000000012043500000bb50000013d000000400800043d000009530980009c000000db0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000ad00000413d000000000a080433000000000a0a004b000001500000613d000000f80a3002100000094c0b000041000000000303004b00000000030a001900000000030b6019000000000a090433000009540aa0019700000000033a019f0000000000390435000000400300043d0000002009300039000000000a010433000000000b0a004b00000af00000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b00000ae90000413d00000000019a001900000000000104350000000009020433000000000a09004b00000afd0000613d000000000a000019000000000b1a0019000000200aa00039000000000c2a0019000000000c0c04330000000000cb0435000000000b9a004b00000af60000413d000000000119001900000000000104350000000002040433000000000902004b00000b0a0000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a29004b00000b030000413d000000000112001900000000000104350000000002050433000000000402004b00000b170000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000924004b00000b100000413d000000000112001900000000000104350000000002060433000000000402004b00000b240000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000524004b00000b1d0000413d000000000112001900000000000104350000000002070433000000000402004b00000b310000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000524004b00000b2a0000413d000000000112001900000000000104350000000002080433000000000402004b00000b3e0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000524004b00000b370000413d000000000112001900000000000104350000000001310049000000200210008a00000000002304350000001f02100039000000200100008a000000000212016f0000000005320019000000000225004b000000000200001900000001020040390000094d0450009c000000db0000213d0000000102200190000000db0000c13d000000400050043f000000230200008a0000000c060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b000000000800003100000000094800190000094c0a000041000000000b96004b000000000b000019000000000b0a80190000094c099001970000094c0c600197000000000d9c004b000000000a00801900000000099c013f0000094c0990009c00000000090b001900000000090a6019000000000909004b0000083e0000c13d0000000d090000290000000009960019000000000697034f000000000606043b0000094d0a60009c0000083e0000213d000000000a68004900000020089000390000094c09000041000000000ba8004b000000000b000019000000000b0920190000094c0aa001970000094c0c800197000000000dac004b0000000009008019000000000aac013f0000094c0aa0009c00000000090bc019000000000909004b0000083e0000c13d000000010960008c00000e9b0000c13d000000000687034f000000000606043b000000010700008a0000094c08000041000000000776004b000000000700001900000000070820190000094c066001970000094c0960009c00000000080080190000094c066001670000094c0660009c00000000070860190000006006000039000000000707004b00000f7a0000c13d000009530650009c000000db0000213d0000004006500039000000400060043f00000020065000390000095607000041000000000076043500000001060000390000000000650435000000000605001900000f7a0000013d000000400200043d000400000002001d000009530220009c000000db0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000ba40000413d00000004030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000060010000390000000c0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b00000c2a0000c13d0000000603000029000000000432034f000000000300003100000005050000290000000005530019000000000904043b0000094c04000041000000000659004b000000000600001900000000060480190000094c055001970000094c07900197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d0000000b0400002900000000040404330000000a0500002900000000050504330000000906000029000000000606043300000007070000290000000007070433000000040800002900000000080804330000000d0a0000290000000009a90019000000000292034f000000000202043b0000094d0a20009c0000083e0000213d000000000323004900000020099000390000094c0a000041000000000b39004b000000000b000019000000000b0a20190000094c033001970000094c09900197000000000c39004b000000000a008019000000000339013f0000094c0330009c00000000030b001900000000030a6019000000000303004b0000083e0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000094d02200197000000380320008c00000cc20000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a00000c140000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf0000002103500039000000000023043500000cdc0000013d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000101043b000000800210008c00000c840000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000804000029000000000442016f000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f000000020430003900000000044204360000002105300039000000050550027200000c710000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000c690000413d000000000500004b00000c730000613d0000000005020433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c00000000010020190000002103200039000000000013043500000ca10000013d000000400200043d000009530320009c000000db0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000c8e0000413d0000000004020433000000000404004b000001500000613d000000f8041002100000094c05000041000000000101004b0000000001040019000000000105601900000000040304330000095404400197000000000114019f0000000000130435000000400100043d00000020031000390000000004020433000000000504004b00000cae0000613d000000000500001900000000063500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00000ca70000413d00000000023400190000096a03000041000000000032043500000000021200490000001e0320008a000000000031043500000021022000390000000803000029000000000332016f0000000002130019000000000332004b000000000300001900000001030040390000094d0420009c000000db0000213d0000000103300190000000db0000c13d000000400020043f000000020200036700000bbd0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a00000ccc0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000503000029000000000632001900000002030003670000000604000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b00000d140000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b00000d0d0000413d000000000537001900000000000504350000000b0b00002900000000070b0433000000000807004b00000d220000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d1b0000413d000000000557001900000000000504350000000a0b00002900000000070b0433000000000807004b00000d300000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d290000413d00000000055700190000000000050435000000090b00002900000000070b0433000000000807004b00000d3e0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d370000413d00000000055700190000000000050435000000070b00002900000000070b0433000000000807004b00000d4c0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d450000413d00000000055700190000000000050435000000040b00002900000000070b0433000000000807004b00000d5a0000613d000000000800001900000000095800190000002008800039000000000ab80019000000000a0a04330000000000a90435000000000978004b00000d530000413d00000000055700190000001f0740018f00000000000504350000000206600367000000050840027200000d690000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000d610000413d000000000907004b00000d780000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b00000d850000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b00000d7e0000413d000000000145001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b0000290000083e0000613d00000002020003670000000d03000029000000000332034f000000000101043b000c00000001001d000000000103043b000000710310008c0000100e0000c13d000001e401b00039000000000312034f00000000010000310000000004b10049000000230440008a000000000303043b0000094c05000041000000000643004b000000000600001900000000060580190000094c044001970000094c07300197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000003430019000000000232034f000000000202043b0000094d0420009c0000083e0000213d000000000121004900000020033000390000094c04000041000000000513004b000000000500001900000000050420190000094c011001970000094c06300197000000000716004b0000000004008019000000000116013f0000094c0110009c00000000010500190000000001046019000000000101004b0000083e0000c13d0000000001000414000000000232001a0000094804300197000000d10000413d0000000003000031000000000523004b000000d10000413d0000000204400367000009480510009c000004200000213d0000000002230049000009480220019700000000022403df000000c0011002100000095e011001970000095f011001c700000000011203af0000801002000039251c25170000040f00000000030100190000006003300270000109480030019d000009480330019700030000000103550000000102200190000013900000613d0000003f013000390000096002100197000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000094d0520009c000000db0000213d0000000104400190000000db0000c13d000000400020043f00000000023104360000001f04300039000000050440027200000e110000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000e090000413d000000000400004b00000e130000613d0000000104000031000000000443004b0000083e0000213d00000003050003670000001f0430018f000000050330027200000e230000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000e1b0000413d000000000604004b00000e320000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000e570000c13d0000000002020433000000400100043d0000004003100039000000000023043500000020021000390000000c030000290000000000320435000000400300003900000000003104350000096d0310009c000000db0000213d0000006003100039000000400030043f0000094803000041000009480420009c000000000203801900000040022002100000000001010433000009480410009c00000000010380190000006001100210000000000121019f0000000002000414000009480420009c0000000002038019000000c002200210000000000112019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400100043d00000044021000390000096c03000041000000000032043500000024021000390000001f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000380760008c00000ecd0000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e840000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000ee70000013d000000380760008c00000f600000413d0000002007600270000009480860009c00000000080600190000000008072019000009480760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000009530950009c000000db0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000eb60000413d0000000009050433000000000909004b000001500000613d00000000090804330000095409900197000000f80a70021000000000099a019f00000958099001c700000000009804350000000307700210000000f80770008900000000067601cf00000021075000390000000000670435000000000605001900000f7a0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000ed60000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000ef10000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009020433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000010640000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000f4a0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000107d0000013d000009530750009c000000db0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000f690000413d0000000008050433000000000808004b000001500000613d000000f80660021000000000080704330000095408800197000000000668019f0000094c0660016700000000006704350000000006050019000000400500043d000009530750009c000000db0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000f840000413d0000000009050433000000000909004b000001500000613d0000000009070433000009540990019700000959099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b0000094c0a000041000000000d9c004b000000000d000019000000000d0a80190000094c099001970000094c0ec00197000000000f9e004b000000000a00801900000000099e013f0000094c0990009c00000000090d001900000000090a6019000000000909004b0000083e0000c13d0000000009030433000000000a0604330000000d0d000029000000000cdc0019000000000bcb034f000000000b0b043b0000094d0db0009c0000083e0000213d0000000007b70049000000200cc000390000094c0d000041000000000e7c004b000000000e000019000000000e0d20190000094c077001970000094c0cc00197000000000f7c004b000000000d00801900000000077c013f0000094c0770009c00000000070e001900000000070d6019000000000707004b0000083e0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000094d09700197000000380790008c000011250000413d0000002007900270000009480890009c000000000709a019000009480890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000009530b70009c000000db0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a00000fdd0000413d000000000b070433000000000b0b004b000001500000613d000000000b0a0433000009540bb00197000000f80c800210000000000bbc019f0000095a0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000113e0000013d0000001f0430018f000000050230027200000ffe0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ff70000413d000000000504004b0000100c0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000000301004b000011200000c13d0000010401b00039000000000112034f000000000101043b000000800210008c000011e10000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000b00000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f00000002032000390000000b040000290000000003340436000000210420003900000005044002720000104f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000010470000413d000000000400004b000010510000613d0000000b040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000b0200002900000021022000390000000000120435000012010000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000106d0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b0000094c0a000041000000000b83004b000000000b000019000000000b0a80190000094c088001970000094c0c300197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000003830019000000000434034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020093000390000094c03000041000000000a49004b000000000a000019000000000a0320190000094c044001970000094c0b900197000000000c4b004b000000000300801900000000044b013f0000094c0440009c00000000030ac019000000000303004b0000083e0000c13d000000400300043d00000020043000390000095b0a0000410000000000a40435000000210a300039000000000b070433000000000c0b004b000010b50000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b000010ae0000413d0000000007ab00190000000000070435000000000a020433000000000b0a004b000010c20000613d000000000b000019000000000c7b0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000cab004b000010bb0000413d00000000027a001900000000000204350000000007060433000000000a07004b000010cf0000613d000000000a000019000000000b2a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000010c80000413d00000000022700190000001f0680018f000000000002043500000002079003670000000509800272000010de0000613d000000000a000019000000050ba00210000000000cb20019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010d60000413d000000000a06004b000010ed0000613d0000000509900210000000000797034f00000000099200190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000282001900000000000204350000000006050433000000000706004b000010fa0000613d000000000700001900000000082700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000010f30000413d000000000226001900000000000204350000000002320049000000200520008a00000000005304350000001f02200039000000000212016f0000000001320019000000000221004b000000000200001900000001020040390000094d0510009c000000db0000213d0000000102200190000000db0000c13d000000400010043f0000094801000041000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000020210008c000012510000c13d0000000d01000029251c1e500000040f000012550000013d000000400700043d000009530a70009c000000db0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000112e0000413d000000000a070433000000000a0a004b000001500000613d000000f809900210000000000a080433000009540aa001970000000009a9019f00000959099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b0000094c0a000041000000000b82004b000000000b000019000000000b0a80190000094c088001970000094c0c200197000000000d8c004b000000000a00801900000000088c013f0000094c0880009c00000000080b001900000000080a6019000000000808004b0000083e0000c13d0000000d080000290000000002820019000000000424034f000000000804043b0000094d0480009c0000083e0000213d000000000489004900000020092000390000094c02000041000000000a49004b000000000a000019000000000a0220190000094c044001970000094c0b900197000000000c4b004b000000000200801900000000044b013f0000094c0440009c00000000020ac019000000000202004b0000083e0000c13d000000400200043d00000020042000390000095c0a0000410000000000a40435000000210a200039000000000b070433000000000c0b004b000011760000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b0000116f0000413d0000000007ab00190000000000070435000000000a030433000000000b0a004b000011830000613d000000000b000019000000000c7b0019000000200bb00039000000000d3b0019000000000d0d04330000000000dc0435000000000cab004b0000117c0000413d00000000037a001900000000000304350000000007060433000000000a07004b000011900000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b7a004b000011890000413d00000000033700190000001f0680018f0000000000030435000000020790036700000005098002720000119f0000613d000000000a000019000000050ba00210000000000cb30019000000000bb7034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000011970000413d000000000a06004b000011ae0000613d0000000509900210000000000797034f00000000099300190000000306600210000000000a090433000000000a6a01cf000000000a6a022f000000000707043b0000010006600089000000000767022f00000000066701cf0000000006a6019f0000000000690435000000000383001900000000000304350000000006050433000000000706004b000011bb0000613d000000000700001900000000083700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000011b40000413d000000000336001900000000000304350000000003230049000000200530008a00000000005204350000001f03300039000000000313016f0000000001230019000000000331004b000000000300001900000001030040390000094d0510009c000000db0000213d0000000103300190000000db0000c13d000000400010043f0000094801000041000009480340009c0000000003010019000000000304401900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000000c0b00002900000daa0000c13d0000083e0000013d000000400200043d000b00000002001d000009530220009c000000db0000213d0000000b030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000011ed0000413d0000000b030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000a401b000390000000201100367000000000201043b000000800120008c000012710000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000123e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000012360000413d000000000500004b000012400000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000128e0000013d000000010110008c000012600000c13d0000000d01000029251c18090000040f000000400200043d00000020032000390000000c04000029000000000043043500000000001204350000094801000041000009480320009c000000000102401900000040011002100000096e011001c70000251d0001042e000000400200043d000d00000002001d0000094f0100004100000000001204350000000401200039251c17ff0000040f0000000d0400002900000000014100490000094802000041000009480310009c0000000001028019000009480340009c000000000204401900000040022002100000006001100210000000000121019f0000251e00010430000000400100043d000009530310009c000000db0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000127b0000413d0000000004010433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000006402b000390000000202200367000000000302043b000000800230008c000012de0000413d0000008002300270000009550430009c000000000203a019000009550430009c0000000004000019000000100400203900000008054001bf0000094d0620009c000000000405201900000040052002700000094d0620009c000000000205201900000004054001bf000009480620009c00000000040520190000002005200270000009480620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b000000000600001900000001060040390000094d0750009c000000db0000213d0000000106600190000000db0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000012cb0000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000012c30000413d000000000600004b000012cd0000613d0000000006020433000000000606004b000001500000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000012fb0000013d000000400200043d000009530420009c000000db0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000012e80000413d0000000005020433000000000505004b000001500000613d000000f8053002100000094c06000041000000000303004b0000000003050019000000000306601900000000050404330000095405500197000000000335019f0000000000340435000000400300043d000a00000003001d00000020033000390000000004010433000000000504004b000013090000613d000000000500001900000000063500190000002005500039000000000715001900000000070704330000000000760435000000000645004b000013020000413d000000000134001900000000000104350000000003020433000000000403004b000013160000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b0000130f0000413d000000000113001900000000000104350000000a030000290000000001310049000000200210008a00000000002304350000001f01100039000000200200008a000800000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000900000002001d0000094d0220009c000000db0000213d0000000101100190000000db0000c13d0000000901000029000000400010043f000009530110009c000000db0000213d00000000040b001900000044014000390000000201100367000000000101043b00000009050000290000004002500039000000400020043f0000002002500039000009570300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c000013ab0000413d0000008002100270000009550310009c000000000201a019000009550310009c0000000003000019000000100300203900000008043001bf0000094d0520009c000000000304201900000040042002700000094d0520009c000000000204201900000004043001bf000009480520009c00000000030420190000002004200270000009480520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000804000029000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b000000000400001900000001040040390000094d0530009c000000db0000213d0000000104400190000000db0000c13d000000400030043f000000020320003900000007040000290000000003340436000000210420003900000005044002720000137b0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000013730000413d000000000400004b0000137d0000613d00000007040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f000009560440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000070200002900000021022000390000000000120435000013cb0000013d0000001f0430018f00000005023002720000139b0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013940000413d000000000504004b000013a90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000251e00010430000000400200043d000700000002001d000009530220009c000000db0000213d00000007030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000013b70000413d00000007030000290000000003030433000000000303004b000001500000613d000000f8031002100000094c04000041000000000101004b0000000001030019000000000104601900000000030204330000095403300197000000000113019f0000000000120435000000230100008a00000000020b00190000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000300000004001d00000000044300190000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000004410019000000000142034f000000000101043b0000094d0510009c0000083e0000213d000000000513004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000010410008c0000141a0000c13d000000000132034f000000000101043b000000010200008a0000094c03000041000000000221004b000000000200001900000000020320190000094c011001970000094c0410009c00000000030080190000094c011001670000094c0110009c000000000102001900000000010360190000006002000039000600000002001d000000000101004b0000146d0000c13d000000400100043d000600000001001d000009530110009c000000db0000213d00000006030000290000004001300039000000400010043f000000200130003900000956020000410000000000210435000000010100003900000000001304350000146d0000013d000000380210008c000014500000413d0000002002100270000009480310009c00000000030100190000000003022019000009480210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000600000004001d000009530440009c000000db0000213d000000000232019f00000006040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014380000413d00000006040000290000000004040433000000000404004b000001500000613d00000000040304330000095404400197000000f805200210000000000445019f00000958044001c700000000004304350000000302200210000000f80220008900000000012101cf0000000602000029000000210220003900000000001204350000146d0000013d000000400200043d000600000002001d000009530220009c000000db0000213d00000006030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000145c0000413d00000006030000290000000003030433000000000303004b000001500000613d000000f80110021000000000030204330000095403300197000000000113019f0000094c01100167000000000012043500000000030000310000000301000029000000000513001900000000010b0019000001e4011000390000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000200650008c0000083e0000413d000000000553004900000020034000390000094c04000041000000000653004b000000000600001900000000060420190000094c055001970000094c07300197000000000857004b0000000004008019000000000557013f0000094c0550009c000000000406c019000000000404004b0000083e0000c13d000000000232034f000000000202043b000000800320008c000014ed0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000500000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000505000029000000000445043600000021053000390000000505500272000014d80000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000014d00000413d000000000500004b000014da0000613d00000005050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000000503000029000000210330003900000000002304350000150d0000013d000000400300043d000500000003001d000009530330009c000000db0000213d00000005040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000014f90000413d00000005040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000052300190000000202000367000000000412034f000000000404043b0000094c06000041000000000754004b000000000700001900000000070680190000094c055001970000094c08400197000000000958004b0000000006008019000000000558013f0000094c0550009c00000000050700190000000005066019000000000505004b0000083e0000c13d0000000d050000290000000004540019000000000542034f000000000505043b0000094d0650009c0000083e0000213d000000400650008c0000083e0000413d000000000353004900000020054000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d0000004003400039000000000232034f000000000202043b000000800320008c0000158d0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c00000000030000190000000103002039000000000334001900000041043000390000000805000029000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000405000029000000000445043600000021053000390000000505500272000015780000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000015700000413d000000000500004b0000157a0000613d00000004050000290000000005050433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000040300002900000021033000390000000000230435000015ad0000013d000000400300043d000400000003001d000009530330009c000000db0000213d00000004040000290000004003400039000000400030043f0000000103000039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000015990000413d00000004040000290000000004040433000000000404004b000001500000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f00000000002304350000000003000031000000030200002900000000042300190000000202000367000000000112034f000000000101043b0000094c05000041000000000641004b000000000600001900000000060580190000094c044001970000094c07100197000000000847004b0000000005008019000000000447013f0000094c0440009c00000000040600190000000004056019000000000404004b0000083e0000c13d0000000d040000290000000001410019000000000412034f000000000404043b0000094d0540009c0000083e0000213d000000000343004900000020051000390000094c06000041000000000735004b000000000700001900000000070620190000094c033001970000094c05500197000000000835004b0000000006008019000000000335013f0000094c0330009c00000000030700190000000003066019000000000303004b0000083e0000c13d000000410340008c000001500000413d0000006001100039000000000112034f000000000101043b000000f801100270000100000001001d0000001b0110008a000000020110008c0000164f0000813d0000014401b00039000000000112034f000000000101043b000000000101004b000016610000613d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f00000001022001900000083e0000613d000000000201043b0000000101200210000000000302004b000015fc0000613d000000090300008a000000000331004b000000d10000213d00000000322100d9000000020220008c000000d10000c13d000000010300002900000000011300190000000802100039000000000132004b000000d10000413d000000800120008c000100000002001d000016610000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c00000000010000190000000101002039000000000313001900000041013000390000000804000029000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000000db0000213d0000000105500190000000db0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000163c0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000016340000413d000000000500004b0000163e0000613d0000000005010433000000000505004b000001500000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000167e0000013d000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e00010430000000400100043d000009530210009c000000db0000213d0000004002100039000000400020043f0000000102000039000000000221043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a0000166b0000413d0000000003010433000000000303004b000001500000613d0000000105000029000000f8035002100000094c04000041000000000505004b000000000304601900000000040204330000095404400197000000000334019f000000000032043500000000020000310000000303000029000000000332001900000002080003670000000204000029000000000448034f000000000904043b0000094c04000041000000000539004b000000000500001900000000050480190000094c033001970000094c06900197000000000736004b0000000004008019000000000336013f0000094c0330009c00000000030500190000000003046019000000000303004b0000083e0000c13d0000000b0300002900000000030304330000000a0400002900000000040404330000000905000029000000000505043300000007060000290000000006060433000000060700002900000000070704330000000d0a0000290000000009a90019000000000898034f000000000808043b0000094d0a80009c0000083e0000213d000000000282004900000020099000390000094c0a000041000000000b29004b000000000b000019000000000b0a20190000094c022001970000094c09900197000000000c29004b000000000a008019000000000229013f0000094c0220009c00000000020b001900000000020a6019000000000202004b0000083e0000c13d00000000023400190000000002520019000000000262001900000000027200190000000002820019000000050300002900000000030304330000000002320019000000040300002900000000030304330000000002320019000000000301043300000000023200190000094d02200197000000380320008c000016f30000413d0000002003200270000009480420009c00000000040200190000000004032019000009480320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400500043d000009530650009c000000db0000213d000000000343019f0000004004500039000000400040043f0000000204300039000000000445043600000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b0000000000890435000000010770003a000016dd0000413d0000000006050433000000000606004b000001500000613d00000000060404330000095406600197000000f807300210000000000667019f0000095a066001c700000000006404350000000303300210000000f80330008900000000023201cf000000210350003900000000002304350000170d0000013d000000400500043d000009530350009c000000db0000213d0000004003500039000000400030043f0000000103000039000000000335043600000000040000310000000204400367000000000600001900000005076002100000000008730019000000000774034f000000000707043b0000000000780435000000010660003a000016fd0000413d0000000004050433000000000404004b000001500000613d000000f80220021000000000040304330000095404400197000000000242019f0000095902200041000000000023043500000000020000310000000303000029000000000632001900000002030003670000000204000029000000000443034f000000000404043b0000094c07000041000000000864004b000000000800001900000000080780190000094c066001970000094c09400197000000000a69004b0000000007008019000000000669013f0000094c0660009c00000000060800190000000006076019000000000606004b0000083e0000c13d0000000d060000290000000006640019000000000363034f000000000403043b0000094d0340009c0000083e0000213d000000000242004900000020066000390000094c03000041000000000726004b000000000700001900000000070320190000094c022001970000094c08600197000000000928004b0000000003008019000000000228013f0000094c0220009c00000000020700190000000002036019000000000202004b0000083e0000c13d000000400200043d00000020032000390000000007050433000000000807004b000017450000613d000000000800001900000000093800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000978004b0000173e0000413d000000000537001900000000000504350000000b070000290000000007070433000000000807004b000017540000613d0000000008000019000000000958001900000020088000390000000b0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000174c0000413d000000000557001900000000000504350000000a070000290000000007070433000000000807004b000017630000613d0000000008000019000000000958001900000020088000390000000a0a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000175b0000413d0000000005570019000000000005043500000009070000290000000007070433000000000807004b000017720000613d000000000800001900000000095800190000002008800039000000090a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b0000176a0000413d0000000005570019000000000005043500000007070000290000000007070433000000000807004b000017810000613d000000000800001900000000095800190000002008800039000000070a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017790000413d0000000005570019000000000005043500000006070000290000000007070433000000000807004b000017900000613d000000000800001900000000095800190000002008800039000000060a000029000000000aa80019000000000a0a04330000000000a90435000000000978004b000017880000413d00000000055700190000001f0740018f0000000000050435000000020660036700000005084002720000179f0000613d0000000009000019000000050a900210000000000ba50019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017970000413d000000000907004b000017ae0000613d0000000508800210000000000686034f00000000088500190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000445001900000000000404350000000005010433000000000605004b000017bb0000613d000000000600001900000000074600190000002006600039000000000816001900000000080804330000000000870435000000000756004b000017b40000413d0000000001450019000000000001043500000005040000290000000004040433000000000504004b000017ca0000613d0000000005000019000000000615001900000020055000390000000507000029000000000775001900000000070704330000000000760435000000000645004b000017c20000413d0000000001140019000000000001043500000004040000290000000004040433000000000504004b000017d90000613d0000000005000019000000000615001900000020055000390000000407000029000000000775001900000000070704330000000000760435000000000645004b000017d10000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f011000390000000804000029000000000441016f0000000001240019000000000441004b000000000400001900000001040040390000094d0510009c000000db0000213d0000000104400190000000db0000c13d000000400010043f0000094801000041000009480430009c000000000301801900000040033002100000000002020433000009480420009c00000000020180190000006002200210000000000232019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f00000001022001900000083e0000613d000000000101043b000012550000013d000000400210003900000972030000410000000000320435000000200210003900000013030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f000000010220019000001e300000613d000000000201043b000000800120008c000018650000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c00001e320000213d000000010550019000001e320000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000018520000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000184a0000413d000000000500004b000018540000613d0000000005010433000000000505004b00001e380000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000018820000013d000000400100043d000009530310009c00001e320000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a0000186f0000413d0000000004010433000000000404004b00001e380000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c000018d30000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c00001e320000213d000000010660019000001e320000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000018c00000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000018b80000413d000000000600004b000018c20000613d0000000006030433000000000606004b00001e380000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000018f00000013d000000400300043d000009530430009c00001e320000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000018dd0000413d0000000005030433000000000505004b00001e380000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000a0022000390000000202200367000000000202043b000000800420008c000019410000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c00001e320000213d000000010770019000001e320000c13d000000400060043f00000002065000390000000006640436000000210750003900000005077002720000192e0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000019260000413d000000000700004b000019300000613d0000000007040433000000000707004b00001e380000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000000002504350000195e0000013d000000400400043d000009530540009c00001e320000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a0000194b0000413d0000000006040433000000000606004b00001e380000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f0000000000250435000000040200002900000060022000390000000202200367000000000202043b000000800520008c000019af0000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c00001e320000213d000000010880019000001e320000c13d000000400070043f00000002076000390000000007750436000000210860003900000005088002720000199c0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000019940000413d000000000800004b0000199e0000613d0000000008050433000000000808004b00001e380000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000019cc0000013d000000400500043d000009530650009c00001e320000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000019b90000413d0000000007050433000000000707004b00001e380000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000400600043d000009530260009c00001e320000213d000000040900002900000040029000390000000202200367000000000202043b0000004007600039000000400070043f0000002007600039000009570800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000120029000390000000202200367000000000202043b000000800720008c00001a2d0000413d0000008007200270000009550820009c000000000702a019000009550820009c0000000008000019000000100800203900000008098001bf0000094d0a70009c000000000809201900000040097002700000094d0a70009c000000000709201900000004098001bf000009480a70009c00000000080920190000002009700270000009480a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a0040390000094d0b90009c00001e320000213d000000010aa0019000001e320000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200001a1a0000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00001a120000413d000000000a00004b00001a1c0000613d000000000a070433000000000a0a004b00001e380000613d000000000a090433000009540aa00197000000f80b800210000000000aab019f000009560aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500001a4a0000013d000000400700043d000009530870009c00001e320000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00001a370000413d0000000009070433000000000909004b00001e380000613d000000f8092002100000094c0a000041000000000202004b000000000209001900000000020a601900000000090804330000095409900197000000000229019f0000000000280435000000400200043d00000020082000390000000009010433000000000a09004b00001a570000613d000000000a000019000000000b8a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b9a004b00001a500000413d000000000189001900000000000104350000000008030433000000000908004b00001a640000613d0000000009000019000000000a1900190000002009900039000000000b390019000000000b0b04330000000000ba0435000000000a89004b00001a5d0000413d000000000118001900000000000104350000000003040433000000000803004b00001a710000613d000000000800001900000000091800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000938004b00001a6a0000413d000000000113001900000000000104350000000003050433000000000403004b00001a7e0000613d000000000400001900000000081400190000002004400039000000000954001900000000090904330000000000980435000000000834004b00001a770000413d000000000113001900000000000104350000000003060433000000000403004b00001a8b0000613d000000000400001900000000051400190000002004400039000000000864001900000000080804330000000000850435000000000534004b00001a840000413d000000000113001900000000000104350000000003070433000000000403004b00001a980000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b00001a910000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c00001e320000213d000000010110019000001e320000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c00001e300000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b00001e300000c13d000000010160008c00001af50000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b00001b410000c13d000009530150009c00001e320000213d0000004001500039000000400010043f00000020015000390000095603000041000000000031043500000001010000390000000000150435000000000605001900001b410000013d000000380160008c00001b270000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c00001e320000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a00001b100000413d0000000001050433000000000101004b00001e380000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf00000021035000390000000000130435000000000605001900001b410000013d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a00001b300000413d0000000001050433000000000101004b00001e380000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c00001e320000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a00001b4c0000413d0000000001050433000000000101004b00001e380000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b00001e300000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c00001e300000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b00001e300000c13d0000002001b0008c00001e300000413d000000000187034f000000000801043b000000800180008c00001bd60000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c00001e320000213d000000010cc0019000001e320000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d10027200001bc20000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b00001bba0000413d000000000100004b00001bc40000613d0000000001070433000000000101004b00001e380000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c000000000103001900000000010020190000002103700039000000000013043500001bf20000013d000000400700043d000009530170009c00001e320000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a00001be00000413d0000000001070433000000000101004b00001e380000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b00001e300000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b00001e300000c13d0000004001d0008c00001e300000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c00001c6e0000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c00001e320000213d0000000103d0019000001e320000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e10027200001c5a0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b00001c520000413d000000000100004b00001c5c0000613d0000000001080433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c000000000103001900000000010020190000002103800039000000000013043500001c8a0000013d000000400800043d000009530180009c00001e320000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a00001c780000413d0000000001080433000000000101004b00001e380000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c00001e300000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b00001e300000c13d0000004101d0008c00001e380000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c00001cc50000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c00001e3e0000c13d000000400a00043d0000095301a0009c00001e320000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a00001ccf0000413d00000000010a0433000000000101004b00001e380000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b00001e300000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c00001e300000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b00001e300000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c00001d480000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c00001e320000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a00001d320000413d00000000010b0433000000000101004b00001e380000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b00039000000000013043500001d620000013d000000400b00043d0000095301b0009c00001e320000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a00001d520000413d00000000010b0433000000000101004b00001e380000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b00001e300000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c00001e300000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b00001e300000c13d000000400300043d00000020043000390000095b01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b00001d9c0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b00001d950000413d000000000bde001900000000000b0435000000000d02043300000000010d004b00001da90000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b00001da20000413d0000000002bd00190000000000020435000000000b06043300000000010b004b00001db60000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b00001daf0000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c90027200001dc50000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b00001dbd0000413d000000000106004b00001dd40000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b00001de10000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b00001dda0000413d0000000002260019000000000002043500000000050a0433000000000105004b00001dee0000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b00001de70000413d000000000225001900000000000204350000000005070433000000000105004b00001dfb0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b00001df40000413d000000000225001900000000000204350000000005080433000000000105004b00001e080000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b00001e010000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c00001e320000213d000000010220019000001e320000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f000000010220019000001e300000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e000104300006000000000002000400000001001d0000095101000041000000000010043900000948010000410000000002000414000009480320009c0000000001024019000000c00110021000000952011001c70000800b02000039251c25120000040f0000000102200190000024f20000613d000000000201043b000000800120008c00001eac0000413d0000008001200270000009550320009c000000000102a019000009550320009c0000000003000019000000100300203900000008043001bf0000094d0510009c000000000304201900000040041002700000094d0510009c000000000104201900000004043001bf000009480510009c00000000030420190000002004100270000009480510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000094d0640009c000024f40000213d0000000105500190000024f40000c13d000000400040043f000000020430003900000000044104360000002105300039000000050550027200001e990000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001e910000413d000000000500004b00001e9b0000613d0000000005010433000000000505004b000024fa0000613d00000000050404330000095405500197000000f806300210000000000556019f000009560550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c00000000020020190000002103100039000000000023043500001ec90000013d000000400100043d000009530310009c000024f40000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00001eb60000413d0000000004010433000000000404004b000024fa0000613d000000f8042002100000094c05000041000000000202004b0000000002040019000000000205601900000000040304330000095404400197000000000224019f0000000000230435000000040200002900000100022000390000000202200367000000000202043b000000800320008c00001f1a0000413d0000008003200270000009550420009c000000000302a019000009550420009c0000000004000019000000100400203900000008054001bf0000094d0630009c000000000405201900000040053002700000094d0630009c000000000305201900000004054001bf000009480630009c00000000040520190000002005300270000009480630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b000000000600001900000001060040390000094d0750009c000024f40000213d0000000106600190000024f40000c13d000000400050043f000000020540003900000000055304360000002106400039000000050660027200001f070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00001eff0000413d000000000600004b00001f090000613d0000000006030433000000000606004b000024fa0000613d00000000060504330000095406600197000000f807400210000000000667019f000009560660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c00000000020020190000002104300039000000000024043500001f370000013d000000400300043d000009530430009c000024f40000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a00001f240000413d0000000005030433000000000505004b000024fa0000613d000000f8052002100000094c06000041000000000202004b0000000002050019000000000206601900000000050404330000095405500197000000000225019f00000000002404350000000402000029000000c0022000390000000202200367000000000202043b000000800420008c00001f880000413d0000008004200270000009550520009c000000000402a019000009550520009c0000000005000019000000100500203900000008065001bf0000094d0740009c000000000506201900000040064002700000094d0740009c000000000406201900000004065001bf000009480740009c00000000050620190000002006400270000009480740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b000000000700001900000001070040390000094d0860009c000024f40000213d0000000107700190000024f40000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200001f750000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00001f6d0000413d000000000700004b00001f770000613d0000000007040433000000000707004b000024fa0000613d00000000070604330000095407700197000000f808500210000000000778019f000009560770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500001fa50000013d000000400400043d000009530540009c000024f40000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00001f920000413d0000000006040433000000000606004b000024fa0000613d000000f8062002100000094c07000041000000000202004b0000000002060019000000000207601900000000060504330000095406600197000000000226019f00000000002504350000000402000029000000a0022000390000000202200367000000000202043b000000800520008c00001ff60000413d0000008005200270000009550620009c000000000502a019000009550620009c0000000006000019000000100600203900000008076001bf0000094d0850009c000000000607201900000040075002700000094d0850009c000000000507201900000004076001bf000009480850009c00000000060720190000002007500270000009480850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b000000000800001900000001080040390000094d0970009c000024f40000213d0000000108800190000024f40000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200001fe30000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00001fdb0000413d000000000800004b00001fe50000613d0000000008050433000000000808004b000024fa0000613d00000000080704330000095408800197000000f809600210000000000889019f000009560880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c000000000200201900000021065000390000000000260435000020130000013d000000400500043d000009530650009c000024f40000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a000020000000413d0000000007050433000000000707004b000024fa0000613d000000f8072002100000094c08000041000000000202004b0000000002070019000000000208601900000000070604330000095407700197000000000227019f0000000000260435000000040200002900000060022000390000000202200367000000000202043b000000800620008c000020640000413d0000008006200270000009550720009c000000000602a019000009550720009c0000000007000019000000100700203900000008087001bf0000094d0960009c000000000708201900000040086002700000094d0960009c000000000608201900000004087001bf000009480960009c00000000070820190000002008600270000009480960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b000000000900001900000001090040390000094d0a80009c000024f40000213d0000000109900190000024f40000c13d000000400080043f0000000208700039000000000886043600000021097000390000000509900272000020510000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000020490000413d000000000900004b000020530000613d0000000009060433000000000909004b000024fa0000613d00000000090804330000095409900197000000f80a70021000000000099a019f000009560990004100000000009804350000000307700210000000f80770008900000000027201cf000000ff0770008c000000000200201900000021076000390000000000270435000020810000013d000000400600043d000009530760009c000024f40000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a0000206e0000413d0000000008060433000000000808004b000024fa0000613d000000f8082002100000094c09000041000000000202004b0000000002080019000000000209601900000000080704330000095408800197000000000228019f0000000000270435000000400700043d000009530270009c000024f40000213d000000040a0000290000004002a000390000000202200367000000000202043b0000004008700039000000400080043f000000200870003900000957090000410000000000980435000000150800003900000000008704350000002108700039000000600220021000000000002804350000012002a000390000000202200367000000000202043b000000800820008c000020e20000413d0000008008200270000009550920009c000000000802a019000009550920009c00000000090000190000001009002039000000080a9001bf0000094d0b80009c00000000090a2019000000400a8002700000094d0b80009c00000000080a2019000000040a9001bf000009480b80009c00000000090a2019000000200a800270000009480b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b0040390000094d0ca0009c000024f40000213d000000010bb00190000024f40000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb00272000020cf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000020c70000413d000000000b00004b000020d10000613d000000000b080433000000000b0b004b000024fa0000613d000000000b0a0433000009540bb00197000000f80c900210000000000bbc019f000009560bb000410000000000ba04350000000309900210000000f80990008900000000029201cf000000ff0990008c000000000200201900000021098000390000000000290435000020ff0000013d000000400800043d000009530980009c000024f40000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000020ec0000413d000000000a080433000000000a0a004b000024fa0000613d000000f80a2002100000094c0b000041000000000202004b00000000020a001900000000020b6019000000000a090433000009540aa0019700000000022a019f0000000000290435000000400200043d0000002009200039000000000a010433000000000b0a004b0000210c0000613d000000000b000019000000000c9b0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000cab004b000021050000413d00000000019a001900000000000104350000000009030433000000000a09004b000021190000613d000000000a000019000000000b1a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b9a004b000021120000413d000000000119001900000000000104350000000003040433000000000903004b000021260000613d0000000009000019000000000a1900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b0000211f0000413d000000000113001900000000000104350000000003050433000000000403004b000021330000613d000000000400001900000000091400190000002004400039000000000a540019000000000a0a04330000000000a90435000000000934004b0000212c0000413d000000000113001900000000000104350000000003060433000000000403004b000021400000613d000000000400001900000000051400190000002004400039000000000964001900000000090904330000000000950435000000000534004b000021390000413d000000000113001900000000000104350000000003070433000000000403004b0000214d0000613d000000000400001900000000051400190000002004400039000000000674001900000000060604330000000000650435000000000534004b000021460000413d000000000113001900000000000104350000000003080433000000000403004b0000215a0000613d000000000400001900000000051400190000002004400039000000000684001900000000060604330000000000650435000000000534004b000021530000413d000000000113001900000000000104350000000001210049000000200310008a00000000003204350000001f01100039000000200300008a000200000003001d000000000131016f0000000005210019000000000115004b000000000100001900000001010040390000094d0350009c000024f40000213d0000000101100190000024f40000c13d000000400050043f0000001f0100008a00000004030000290000000004310049000001c0013000390000000207000367000100000001001d000000000117034f000000000601043b000000000800003100000000014800190000094c09000041000000000a16004b000000000a000019000000000a0980190000094c011001970000094c0b600197000000000c1b004b000000000900801900000000011b013f0000094c0110009c00000000010a00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001160019000000000617034f000000000606043b0000094d0960009c000024f20000213d000000000968004900000020081000390000094c01000041000000000a98004b000000000a000019000000000a0120190000094c099001970000094c0b800197000000000c9b004b000000000100801900000000099b013f0000094c0990009c00000000010ac019000000000101004b000024f20000c13d000000010160008c000021b70000c13d000000000187034f000000000101043b000000010300008a0000094c06000041000000000331004b000000000300001900000000030620190000094c011001970000094c0710009c00000000060080190000094c011001670000094c0110009c000000000103001900000000010660190000006006000039000000000101004b000022030000c13d000009530150009c000024f40000213d0000004001500039000000400010043f000000200150003900000956030000410000000000310435000000010100003900000000001504350000000006050019000022030000013d000000380160008c000021e90000413d0000002001600270000009480360009c00000000030600190000000003012019000009480160009c0000000001000019000000040100203900000002071001bf0000ffff0830008c000000000107201900000010073002700000000003072019000000ff0330008c00000000070000190000000107002039000009530350009c000024f40000213d000000000771019f0000004001500039000000400010043f000000020170003900000000081504360000000001000031000000020910036700000000010000190000000503100210000000000a380019000000000339034f000000000303043b00000000003a0435000000010110003a000021d20000413d0000000001050433000000000101004b000024fa0000613d00000000010804330000095401100197000000f803700210000000000113019f00000958011001c700000000001804350000000301700210000000f80110008900000000011601cf000000210350003900000000001304350000000006050019000022030000013d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000000000715043600000000010000310000000208100367000000000100001900000005031002100000000009370019000000000338034f000000000303043b0000000000390435000000010110003a000021f20000413d0000000001050433000000000101004b000024fa0000613d000000f80160021000000000030704330000095403300197000000000113019f0000094c0110016700000000001704350000000006050019000000400500043d000009530150009c000024f40000213d0000004001500039000000400010043f0000000101000039000300000001001d0000000007150436000000000100003100000002081003670000000001000019000000050a100210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010110003a0000220e0000413d0000000001050433000000000101004b000024fa0000613d0000000001070433000009540110019700000959011001c70000000000170435000000000800003100000000014800190000000403000029000001e00a3000390000000207000367000000000ba7034f000000000b0b043b0000094c0c000041000000000d1b004b000000000d000019000000000d0c80190000094c011001970000094c0eb00197000000000f1e004b000000000c00801900000000011e013f0000094c0110009c00000000010d001900000000010c6019000000000101004b000024f20000c13d000000040100002900000000011b0019000000000b17034f000000000b0b043b0000094d0cb0009c000024f20000213d000000000cb8004900000020081000390000094c01000041000000000dc8004b000000000d000019000000000d0120190000094c0cc001970000094c0e800197000000000fce004b0000000001008019000000000cce013f0000094c0cc0009c00000000010dc019000000000101004b000024f20000c13d0000002001b0008c000024f20000413d000000000187034f000000000801043b000000800180008c000022980000413d0000008001800270000009550780009c000000000108a019000009550780009c00000000070000190000001007002039000000080b7001bf0000094d0c10009c00000000070b2019000000400b1002700000094d0c10009c00000000010b2019000000040b7001bf000009480c10009c00000000070b2019000000200b100270000009480c10009c00000000010b2019000000020b7001bf0000ffff0c10008c00000000070b2019000000100b10027000000000010b2019000000ff0110008c00000000010000190000000101002039000000000b1700190000004101b000390000000203000029000000000131016f000000400700043d0000000001170019000000000c71004b000000000c000019000000010c0040390000094d0d10009c000024f40000213d000000010cc00190000024f40000c13d000000400010043f0000000201b00039000000000c1704360000002101b00039000000050d100272000022840000613d0000000001000031000000020e100367000000000f0000190000000501f0021000000000031c001900000000011e034f000000000101043b0000000000130435000000010ff000390000000001df004b0000227c0000413d000000000100004b000022860000613d0000000001070433000000000101004b000024fa0000613d00000000010c04330000095401100197000000f803b00210000000000113019f000009560110004100000000001c04350000000301b00210000000f80110008900000000031801cf000000ff0110008c0000000001030019000000000100201900000021037000390000000000130435000022b40000013d000000400700043d000009530170009c000024f40000213d0000004001700039000000400010043f0000000301000029000000000b1704360000000001000031000000020c10036700000000010000190000000503100210000000000d3b001900000000033c034f000000000303043b00000000003d0435000000010110003a000022a20000413d0000000001070433000000000101004b000024fa0000613d000000f8018002100000094c03000041000000000808004b000000000103601900000000030b04330000095403300197000000000113019f00000000001b0435000000000c00003100000000014c001900000002080003670000000003a8034f000000000b03043b0000094c03000041000000000d1b004b000000000d000019000000000d0380190000094c011001970000094c0eb00197000000000f1e004b000000000300801900000000011e013f0000094c0110009c00000000010d00190000000001036019000000000101004b000024f20000c13d0000000401000029000000000b1b00190000000001b8034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003b000390000094c0c000041000000000e13004b000000000e000019000000000e0c20190000094c011001970000094c03300197000000000f13004b000000000c008019000000000113013f0000094c0110009c00000000010e001900000000010c6019000000000101004b000024f20000c13d0000004001d0008c000024f20000413d0000004001b00039000000000118034f000000000b01043b0000008001b0008c000023300000413d0000008001b002700000095503b0009c00000000010ba0190000095503b0009c0000000003000019000000100300203900000008083001bf0000094d0c10009c000000000308201900000040081002700000094d0c10009c000000000108201900000004083001bf000009480c10009c00000000030820190000002008100270000009480c10009c000000000108201900000002083001bf0000ffff0c10008c000000000308201900000010081002700000000001082019000000ff0110008c00000000010000190000000101002039000000000c1300190000004101c000390000000203000029000000000131016f000000400800043d0000000001180019000000000381004b000000000d000019000000010d0040390000094d0310009c000024f40000213d0000000103d00190000024f40000c13d000000400010043f0000000201c00039000000000d1804360000002101c00039000000050e1002720000231c0000613d0000000001000031000000020f1003670000000001000019000000050310021000000000093d001900000000033f034f000000000303043b000000000039043500000001011000390000000003e1004b000023140000413d000000000100004b0000231e0000613d0000000001080433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803c00210000000000113019f000009560110004100000000001d04350000000301c00210000000f80110008900000000031b01cf000000ff0110008c00000000010300190000000001002019000000210380003900000000001304350000234c0000013d000000400800043d000009530180009c000024f40000213d0000004001800039000000400010043f0000000301000029000000000c1804360000000001000031000000020d1003670000000001000019000000050310021000000000093c001900000000033d034f000000000303043b0000000000390435000000010110003a0000233a0000413d0000000001080433000000000101004b000024fa0000613d000000f801b002100000094c0300004100000000090b004b000000000103601900000000030c04330000095403300197000000000113019f00000000001c0435000000000c00003100000000014c0019000000020b0003670000000003ab034f000000000a03043b0000094c0300004100000000091a004b000000000900001900000000090380190000094c011001970000094c0da00197000000000e1d004b000000000300801900000000011d013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d0000000401000029000000000a1a00190000000001ab034f000000000d01043b0000094d01d0009c000024f20000213d0000000001dc00490000002003a000390000094c09000041000000000c13004b000000000c000019000000000c0920190000094c011001970000094c03300197000000000e13004b0000000009008019000000000113013f0000094c0110009c00000000010c00190000000001096019000000000101004b000024f20000c13d0000004101d0008c000024fa0000413d0000006001a0003900000000011b034f000000000b000415000000060bb0008a000000200bb000c90000094c0c000041000000000101043b000000f8011002700000001b0310008c000023870000613d000000000b000415000000050bb0008a000000200bb000c90000095b0c0000410000001c0110008c000025000000c13d000000400a00043d0000095301a0009c000024f40000213d0000004001a00039000000400010043f0000000301000029000000000d1a04360000000001000031000000020e1003670000000001000019000000050310021000000000093d001900000000033e034f000000000303043b0000000000390435000000010110003a000023910000413d00000000010a0433000000000101004b000024fa0000613d00000000010d043300000954011001970000000001c1019f00000000001d04350000002001b0011a00000000010a001f000000000b00003100000000014b0019000000020e000367000000010300002900000000033e034f000000000f03043b0000094c0300004100000000091f004b000000000900001900000000090380190000094c011001970000094c0cf00197000000000d1c004b000000000300801900000000011c013f0000094c0110009c00000000010900190000000001036019000000000101004b000024f20000c13d000000000c020433000000000d060433000000040100002900000000011f001900000000031e034f000000000e03043b0000094d03e0009c000024f20000213d0000000003eb004900000020011000390000094c09000041000000000b31004b000000000b000019000000000b0920190000094c033001970000094c01100197000000000f31004b0000000009008019000000000131013f0000094c0110009c00000000010b00190000000001096019000000000101004b000024f20000c13d0000000001cd00190000000001e1001900000000030504330000000001310019000000000307043300000000013100190000000003080433000000000131001900000000030a043300000000013100190000094d0c1001970000003801c0008c0000240a0000413d0000002001c002700000094803c0009c00000000030c001900000000030120190000094801c0009c0000000001000019000000040100203900000002091001bf0000ffff0b30008c000000000109201900000010093002700000000003092019000000ff0330008c00000000090000190000000109002039000000400b00043d0000095303b0009c000024f40000213d000000000991019f0000004001b00039000000400010043f0000000201900039000000000d1b04360000000001000031000000020e10036700000000010000190000000503100210000000000f3d001900000000033e034f000000000303043b00000000003f0435000000010110003a000023f40000413d00000000010b0433000000000101004b000024fa0000613d00000000010d04330000095401100197000000f803900210000000000113019f0000095a011001c700000000001d04350000000301900210000000f80110008900000000011c01cf0000002103b000390000000000130435000024240000013d000000400b00043d0000095301b0009c000024f40000213d0000004001b00039000000400010043f000000030100002900000000091b04360000000001000031000000020d10036700000000010000190000000503100210000000000e39001900000000033d034f000000000303043b00000000003e0435000000010110003a000024140000413d00000000010b0433000000000101004b000024fa0000613d000000f801c0021000000000030904330000095403300197000000000131019f00000959011000410000000000190435000000000c00003100000000014c001900000002040003670000000103000029000000000334034f000000000303043b0000094c09000041000000000d13004b000000000d000019000000000d0980190000094c011001970000094c0e300197000000000f1e004b000000000900801900000000011e013f0000094c0110009c00000000010d00190000000001096019000000000101004b000024f20000c13d00000004010000290000000001130019000000000314034f000000000903043b0000094d0390009c000024f20000213d00000000039c0049000000200c1000390000094c0100004100000000043c004b000000000400001900000000040120190000094c033001970000094c0dc00197000000000e3d004b000000000100801900000000033d013f0000094c0330009c000000000104c019000000000101004b000024f20000c13d000000400300043d00000020043000390000095c01000041000400000004001d0000000000140435000000210d300039000000000e0b043300000000010e004b0000245e0000613d0000000001000019000000000fd1001900000020011000390000000004b10019000000000404043300000000004f04350000000004e1004b000024570000413d000000000bde001900000000000b0435000000000d02043300000000010d004b0000246b0000613d00000000010000190000000004b100190000002001100039000000000e210019000000000e0e04330000000000e404350000000004d1004b000024640000413d0000000002bd00190000000000020435000000000b06043300000000010b004b000024780000613d000000000100001900000000042100190000002001100039000000000d610019000000000d0d04330000000000d404350000000004b1004b000024710000413d00000000022b00190000001f0690018f0000000000020435000000020bc00367000000050c900272000024870000613d00000000010000190000000504100210000000000d42001900000000044b034f000000000404043b00000000004d043500000001011000390000000004c1004b0000247f0000413d000000000106004b000024960000613d0000000501c0021000000000041b034f00000000011200190000000306600210000000000b010433000000000b6b01cf000000000b6b022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004b4019f0000000000410435000000000292001900000000000204350000000006050433000000000106004b000024a30000613d000000000100001900000000042100190000002001100039000000000951001900000000090904330000000000940435000000000461004b0000249c0000413d0000000002260019000000000002043500000000050a0433000000000105004b000024b00000613d0000000001000019000000000421001900000020011000390000000006a1001900000000060604330000000000640435000000000451004b000024a90000413d000000000225001900000000000204350000000005070433000000000105004b000024bd0000613d000000000100001900000000042100190000002001100039000000000671001900000000060604330000000000640435000000000451004b000024b60000413d000000000225001900000000000204350000000005080433000000000105004b000024ca0000613d000000000100001900000000042100190000002001100039000000000681001900000000060604330000000000640435000000000451004b000024c30000413d000000000125001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000202000029000000000221016f0000000001320019000000000221004b000000000200001900000001020040390000094d0410009c000024f40000213d0000000102200190000024f40000c13d000000400010043f00000948010000410000000404000029000009480240009c0000000002010019000000000204401900000040022002100000000003030433000009480430009c00000000030180190000006003300210000000000223019f0000000003000414000009480430009c0000000001034019000000c001100210000000000121019f0000095c011001c70000801002000039251c25120000040f0000000102200190000024f20000613d000000000101043b000000000001042d00000000010000190000251e00010430000009700100004100000000001004350000004101000039000000040010043f00000971010000410000251e00010430000009700100004100000000001004350000003201000039000000040010043f00000971010000410000251e00010430000000400100043d00000044021000390000096b03000041000000000032043500000024021000390000000f0300003900000000003204350000094f0200004100000000002104350000000402100039000000200300003900000000003204350000094802000041000009480310009c0000000001028019000000400110021000000950011001c70000251e0001043000002515002104230000000102000039000000000001042d0000000002000019000000000001042d0000251a002104230000000102000039000000000001042d0000000002000019000000000001042d0000251c000004320000251d0001042e0000251e00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d7000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff456e636f64696e6720756e737570706f7274656420747800000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f8080000000000000000000000000000000000000000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052b2bf42e5ab5127f48669ab36579badd217fbd10998091dbba6028927708cf2", + "bytecode": "0x000200000000000200110000000000020001000000010355000000000301001900000060053002700000079b0050019d0000008004000039000000400040043f0000079b0350019700000001022001900000006f0000c13d000000040230008c0000009f0000413d000000000201043b0000079d022001970000079e0220009c0000009f0000c13d0000000002000416000000000202004b0000009f0000c13d000000040230008a000000200620008c0000009f0000413d0000000406100370000000000d06043b0000079f06d0009c0000009f0000213d0000000002d20049000007a006000041000002600720008c00000000070000190000000007064019000007a002200197000000000802004b000000000600a019000007a00220009c000000000607c019000000000206004b0000009f0000c13d000000040cd000390000000002c1034f000000000202043b000000000602004b000000770000c13d000000000231034f0000010005c00039000000000451034f000000000404043b000000800640008c000000a10000413d0000008006400270000007a80740009c000000000604a019000007a80740009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a000000c108600039000000000778016f000000400070043f0000000207600039000000800070043f000000210760003900000005077002720000005d0000613d00000000080000190000000509800210000000000a92034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b000000550000413d000000000700004b0000005f0000613d000000800700043d000000000707004b000001c10000613d000000a00700043d000007a707700197000000f808600210000000000778019f000007a907700041000000a00070043f0000000306600210000000f80660008900000000046401cf000000ff0660008c0000000004002019000000a10040043f000000ae0000013d0000000001000416000000000101004b0000009f0000c13d0000002001000039000001000010044300000120000004430000079c0100004100001e690001042e000000710620008c000000fb0000c13d000001c402d00039000000000221034f0000000006d30049000000230660008a000000000202043b000007a007000041000000000862004b00000000080000190000000008078019000007a006600197000007a009200197000000000a69004b0000000007008019000000000669013f000007a00660009c000000000708c019000000000607004b0000009f0000c13d0000000002c20019000000000621034f000000000606043b0000079f0760009c0000009f0000213d00000000076300490000002002200039000007a008000041000000000972004b00000000090000190000000009082019000007a007700197000007a00a200197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b000002c10000613d000000000100001900001e6a00010430000000f806400210000007a007000041000000000404004b000000000706c019000000c004000039000000400040043f0000000104000039000000800040043f0000000004200350000000000404043b000007a704400197000000000474019f000000a00040043f000d0000000d001d000c0000000c001d000000400400043d000000600550008a000000000651034f000000000606043b000000800760008c000001570000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000884043600000021097000390000000509900272000000e90000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000000e10000413d000000000900004b000000eb0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107400039000001d70000013d000000020120008c0000015d0000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c000002db0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001450000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000013d0000413d000000000700004b000001470000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000002ee0000013d000007a60740009c000001b90000a13d000007c30100004100000000001004350000004101000039000001c40000013d000000010120008c000001c70000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000033c0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001a70000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000019f0000413d000000000700004b000001a90000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c000000000400201900000021053000390000034f0000013d0000004007400039000000400070043f000000010700003a00000000077404360000000008200350000000000808043b0000000000870435000001d10000c13d000007c30100004100000000001004350000003201000039000000040010043f000007c40100004100001e6a00010430000007a101000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000007a201000041000000c40010043f000007a30100004100001e6a00010430000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400550008a000000000651034f000000400500043d000000000606043b000000800760008c000002230000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000002110000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002090000413d000000000900004b000002130000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000002330000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000010700003a00000000077504360000000008200350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400b00043d0000002006b000390000000007040433000000000807004b000002410000613d000000000800001900000000096800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000978004b0000023a0000413d000000000467001900000000000404350000000006050433000000000706004b0000024e0000613d000000000700001900000000084700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000002470000413d000000000446001900000000000404350000000004b40049000000200540008a00000000005b04350000001f04400039000a0020000000920000000a0440017f00090000000b001d0000000005b40019000000000445004b00000000040000190000000104004039000b00000005001d0000079f0550009c000001590000213d0000000104400190000001590000c13d0000000b04000029000000400040043f000007a60440009c000001590000213d0000000d070000290000004404700039000000000441034f000000000404043b0000000b080000290000004005800039000000400050043f0000002005800039000007aa060000410000000000650435000000150500003900000000005804350000006004400210000000210580003900000000004504350000012404700039000000000541034f000000400600043d000800000006001d000000000505043b000000800650008c000005510000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c000000010660203900000041076000390000000a0770017f0000000807700029000000080870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000808000029000000000778043600000021086000390000000508800272000002ad0000613d0000000009000019000000050a900210000000000ba70019000000000aa2034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000002a50000413d000000000800004b000002af0000613d00000008080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000008060000290000002106600039000005630000013d000000000726001a0000000006000414000018670000413d000000000373004b000018670000413d000d0000000d001d000c0000000c001d000007b00360009c000003fb0000413d0000004401400039000007bf020000410000000000210435000000240140003900000008020000390000000000210435000007a10100004100000000001404350000000401400039000000200200003900000000002104350000079b010000410000079b0240009c00000000040180190000004001400210000007b6011001c700001e6a00010430000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c0000039d0000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000032a0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003220000413d000000000900004b0000032c0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000003ae0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c000004d80000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000038b0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003830000413d000000000900004b0000038d0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000004e90000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000400760008a000000000671034f000000000606043b000000800860008c000005aa0000413d0000008008600270000007a80960009c000000000806a019000007a80960009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000003e90000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000003e10000413d000000000a00004b000003eb0000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000005bb0000013d0000079b02200197000000000121034f00000000027500490000079b0220019700000000012103df000000c002600210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b053001970000000102200190000005360000613d0000003f02500039000007b302200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000079f0420009c000001590000213d0000000103300190000001590000c13d000000400020043f0000000004560436000000010200036700000000030000310000001f075000390000000507700272000004270000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000041f0000413d000000000700004b000004290000613d0000001f0750018f0000000505500272000004350000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b0000042d0000413d000000000807004b000004440000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000c590000c13d0000000d060000290000000001630049000000230510008a000b02040060003d0000000b01200360000000000101043b000007a006000041000000000751004b00000000070000190000000007068019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d0000000004040433000a00000004001d0000000001510019000000000412034f000000000504043b0000079f0450009c0000009f0000213d000000050450021000000000034300490000002006100039000007a001000041000000000736004b00000000070000190000000007012019000007a003300197000007a008600197000000000938004b0000000001008019000000000338013f000007a00330009c000000000107c019000000000101004b0000009f0000c13d000000400100043d0000002003100039000007b405500198000004800000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000004780000413d000000000200004b000004820000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000079f0520009c000001590000213d0000000104400190000001590000c13d000000400020043f0000079b020000410000079b0430009c0000000003028019000000400330021000000000010104330000079b0410009c00000000010280190000006001100210000000000131019f00000000030004140000079b0430009c0000000003028019000000c002300210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c0a0000290000000d030000290000009f0000613d00000000020000310000000003320049000000230530008a0000000b0300002900000020043000390000000103000367000000000443034f000000000404043b000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000101043b000b00000001001d000000000106004b0000009f0000c13d0000000001a40019000000000413034f000000000404043b0000079f0540009c0000009f0000213d00000000054200490000002001100039000007a006000041000000000751004b00000000070000190000000007062019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000514001a0000000004000414000018670000413d000000000652004b000018670000413d000007b00640009c00000b610000413d000000400400043d000002ca0000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000600660008a000000000761034f000000000707043b000000800870008c000006080000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000005240000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000051c0000413d000000000a00004b000005260000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108500039000006190000013d0000001f0350018f0000000502500272000005410000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000053a0000413d000000000403004b0000054f0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000600150021000001e6a000104300000000806000029000007a60660009c000001590000213d00000008070000290000004006700039000000400060043f000000010600003a00000000066704360000000007200350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f00000000005604350000000c0b0000290000000005b30049000000a006400039000000000461034f000000000404043b0000001f0550008a000007a007500197000007a008400197000007a009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000854004b0000000009004019000007a00770009c000000000a09c01900000000070a004b0000009f0000c13d0000000008b40019000000000781034f000000000707043b0000079f0970009c0000009f0000213d00000000097300490000002008800039000007a00a000041000000000b98004b000000000b000019000000000b0a2019000007a009900197000007a00c800197000000000d9c004b000000000a00801900000000099c013f000007a00990009c000000000a0bc01900000000090a004b0000009f0000c13d000000010970008c000007ab0000c13d000000000281034f000000000202043b000000010700008a000007a008000041000000000772004b00000000070000190000000007082019000007a002200197000007a00920009c0000000008008019000007a002200167000007a00220009c000000000807c019000700600000003d000000000208004b000007e70000c13d000000400200043d000700000002001d000007a60220009c000001590000213d00000007080000290000004002800039000000400020043f0000002002800039000007a907000041000000000072043500000001020000390000000000280435000007e70000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a600210000007a00b000041000000000606004b000000000b0ac019000007a7069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c000006660000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000005f60000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000005ee0000413d000000000b00004b000005f80000613d000000000b060433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109600039000006770000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c000006c50000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000006540000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000064c0000413d000000000b00004b000006560000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000006d60000013d000007a60960009c000001590000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d000b0040007000920000000b09100360000000000909043b000000800a90008c000007360000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000006b20000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b000006aa0000413d000000000700004b000006b40000613d0000000007080433000000000707004b000001c10000613d00000000070b0433000007a707700197000000f80ca0021000000000077c019f000007a90770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c000000000900201900000021078000390000000000970435000007480000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000b00000006001d000000800a60008c0000089f0000413d0000000b06000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000007230000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b0000071b0000413d000000000600004b000007250000613d0000000006080433000000000606004b000001c10000613d00000000060b0433000007a706600197000000f80ca0021000000000066c019f000007a90660004100000000006b04350000000306a00210000000f8066000890000000b0a6001ef000000ff0660008c000000000a00201900000021068000390000000000a60435000008b20000013d000007a60780009c000001590000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba0435000001c10000613d000000f807900210000007a00c000041000000000909004b000000000c07c019000007a707b001970000000007c7019f00000000007a0435000000400a00043d000007a607a0009c000001590000213d0000000b0c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000b00000007001d000000800b70008c000009560000413d0000000b07000029000000800b700270000007a80c70009c000000000b07a019000007a80c70009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000a00000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000a07000029000000020c700039000000000cc90436000000210d700039000000050dd00272000007970000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b0000078f0000413d000000000700004b000007990000613d0000000007090433000000000707004b000001c10000613d00000000070c0433000007a7077001970000000a0d000029000000f80bd0021000000000077b019f000007a90770004100000000007c04350000000307d00210000000f8077000890000000b0b7001ef000000ff0770008c000000000b00201900000021079000390000000000b70435000009690000013d000000400800043d000700000008001d000000380870008c000007d60000413d00000020097002700000079b0870009c000000000907a0190000079b0870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000070a000029000007a60aa0009c000001590000213d000000000898019f000000070a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000002200350000000000202043b0000000000290435000001c10000613d000007a702200197000000f80a80021000000000022a019f000007ab022001c700000000002904350000000302800210000000f80220015f00000000022701cf000000070700002900000021077000390000000000270435000007e70000013d0000000708000029000007a60880009c000001590000213d00000007090000290000004008900039000000400080043f000000010800003a00000000088904360000000002200350000000000202043b0000000000280435000001c10000613d000000f807700210000007a702200197000000000272019f000007a0022001670000000000280435000000800260008a000000000621034f0000006002000039000000000606043b000000000606004b000008480000c13d000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d00000009060000290000000006060433000000800700043d0000000b08000029000000000808043300000008090000290000000009090433000000070a000029000000000a0a04330000000005540019000000000451034f000000000404043b0000079f0b40009c0000009f0000213d000000000b4300490000002005500039000007a00c000041000000000db5004b000000000d000019000000000d0c2019000007a00bb00197000007a00e500197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000006760019000000000686001900000000069600190000000006a60019000000000646001900000000070204330000000006760019000000400700043d0000079f06600197000000380860008c00000a530000413d00000020096002700000079b0860009c000000000906a0190000079b0860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000931034f000000020380003a00000000033704360000000009900350000000000909043b0000000000930435000001c10000613d000007a709900197000000f80a80021000000000099a019f000007ad099001c700000000009304350000000303800210000000f80330015f00000000033601cf0000002106700039000000000036043500000a630000013d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400400043d000000000201043b000000800120008c00000a1a0000413d0000008001200270000007a80320009c000000000102a019000007a80320009c0000000003000019000000100300203900000008053001bf0000079f0610009c000000000503a01900000040031002700000079f0610009c000000000301a01900000004015001bf0000079b0630009c000000000105a01900000020063002700000079b0530009c000000000603a01900000002051001bf0000ffff0360008c000000000501a0190000001001600270000000000106a019000000ff0110008c000000010550203900000041015000390000000a0110017f0000000001140019000000000341004b000000000300001900000001030040390000079f0610009c000001590000213d0000000103300190000001590000c13d000000400010043f0000000201500039000000000614043600000001010003670000000003000031000000210750003900000005077002720000088d0000613d000000000831034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000008850000413d000000000700004b0000088f0000613d0000000007040433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000a2d0000013d000007a60680009c000001590000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba0435000001c10000613d0000000b0d000029000000f806d00210000007a00c000041000000000d0d004b000000000c06c019000007a706b001970000000006c6019f00000000006a0435000000400600043d000000200a600039000000000b030433000000000c0b004b000008bf0000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000008b80000413d0000000003ab00190000000000030435000000000a040433000000000b0a004b000008cc0000613d000000000b000019000000000c3b0019000000200bb00039000000000d4b0019000000000d0d04330000000000dc0435000000000cab004b000008c50000413d00000000033a001900000000000304350000000004050433000000000a04004b000008d90000613d000000000a000019000000000b3a0019000000200aa00039000000000c5a0019000000000c0c04330000000000cb0435000000000b4a004b000008d20000413d000000000334001900000000000304350000000004070433000000000504004b000008e60000613d0000000005000019000000000a3500190000002005500039000000000b750019000000000b0b04330000000000ba0435000000000a45004b000008df0000413d000000000334001900000000000304350000000004090433000000000504004b000008f30000613d000000000500001900000000073500190000002005500039000000000a950019000000000a0a04330000000000a70435000000000745004b000008ec0000413d000000000334001900000000000304350000000004080433000000000504004b000009000000613d000000000500001900000000073500190000002005500039000000000985001900000000090904330000000000970435000000000745004b000008f90000413d000000000334001900000000000304350000000003630049000000200430008a00000000004604350000001f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000079f0570009c000001590000213d0000000104400190000001590000c13d000000400070043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000c6b0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000ce70000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a909000041000000000098043500000001080000390000000000870435000000000807001900000ce70000013d000007a60790009c000001590000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb0435000001c10000613d0000000b0e000029000000f807e00210000007a00d000041000000000e0e004b000000000d07c019000007a707c001970000000007d7019f00000000007b0435000000400700043d000000200b700039000000000c030433000000000d0c004b000009760000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b0000096f0000413d0000000003bc00190000000000030435000000000b040433000000000c0b004b000009830000613d000000000c000019000000000d3c0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dbc004b0000097c0000413d00000000033b001900000000000304350000000004050433000000000b04004b000009900000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b000009890000413d000000000334001900000000000304350000000004060433000000000504004b0000099d0000613d0000000005000019000000000b3500190000002005500039000000000c650019000000000c0c04330000000000cb0435000000000b45004b000009960000413d000000000334001900000000000304350000000004080433000000000504004b000009aa0000613d000000000500001900000000063500190000002005500039000000000b850019000000000b0b04330000000000b60435000000000645004b000009a30000413d0000000003340019000000000003043500000000040a0433000000000504004b000009b70000613d0000000005000019000000000635001900000020055000390000000008a5001900000000080804330000000000860435000000000645004b000009b00000413d000000000334001900000000000304350000000004090433000000000504004b000009c40000613d000000000500001900000000063500190000002005500039000000000895001900000000080804330000000000860435000000000645004b000009bd0000413d000000000334001900000000000304350000000003730049000000200430008a00000000004704350000001f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000079f0560009c000001590000213d0000000104400190000001590000c13d000000400060043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000cae0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000d870000c13d000007a60860009c000001590000213d0000004008600039000000400080043f0000002008600039000007a909000041000000000098043500000001080000390000000000860435000000000806001900000d870000013d000007a60140009c000001590000213d0000004001400039000000400010043f000000010100003a000000000514043600000000030000310000000101000367000000000631034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807200210000007a008000041000000000202004b000000000807c019000007a702600197000000000282019f0000000000250435000000400200043d00000020052000390000000006040433000000000706004b00000a3b0000613d000000000700001900000000085700190000002007700039000000000947001900000000090904330000000000980435000000000867004b00000a340000413d0000000004560019000007c005000041000000000054043500000000042400490000001e0540008a000000000052043500000021044000390000000a0540017f0000000004250019000000000554004b000000000500001900000001050040390000079f0640009c000001590000213d0000000105500190000001590000c13d0000000d06000029000001c405600039000000400040043f000000000451034f0000000005630049000000230550008a000000000404043b000007ed0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000831034f000000010300003a00000000033704360000000008800350000000000808043b0000000000830435000001c10000613d000007a708800197000000f806600210000000000686019f000007ac066000410000000000630435000000400300043d00000020063000390000000008070433000000000908004b00000a700000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00000a690000413d00000000076800190000000000070435000000800800043d000000000908004b00000a7d0000613d0000000009000019000000000a790019000000a00b900039000000000b0b04330000000000ba04350000002009900039000000000a89004b00000a760000413d00000000077800190000000000070435000000090c00002900000000080c0433000000000908004b00000a8b0000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a840000413d000000000778001900000000000704350000000b0c00002900000000080c0433000000000908004b00000a990000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a920000413d00000000077800190000000000070435000000080c00002900000000080c0433000000000908004b00000aa70000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aa00000413d00000000077800190000000000070435000000070c00002900000000080c0433000000000908004b00000ab50000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aae0000413d000000000551034f00000000017800190000001f0740018f0000000000010435000000050840027200000ac40000613d0000000009000019000000050a900210000000000ba10019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000abc0000413d000000000907004b00000ad30000613d0000000508800210000000000585034f00000000088100190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f0000000000580435000000000141001900000000000104350000000004020433000000000504004b00000ae00000613d000000000500001900000000071500190000002005500039000000000825001900000000080804330000000000870435000000000745004b00000ad90000413d000000000114001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000a0210017f0000000001320019000000000221004b000000000200001900000001020040390000079f0410009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0260009c0000000006018019000000400260021000000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c030000290000000d020000290000009f0000613d000d00000002001d0000000102000367000c00000003001d000000000332034f000000000101043b000b00000001001d000000000103043b000000710310008c00000d220000c13d0000000c09000029000001e001900039000000000312034f00000000010000310000000d0410006a000000230440008a000000000303043b000007a005000041000000000643004b00000000060000190000000006058019000007a004400197000007a007300197000000000847004b0000000005008019000000000447013f000007a00440009c000000000506c019000000000405004b0000009f0000c13d0000000003930019000000000232034f000000000202043b0000079f0420009c0000009f0000213d00000000042100490000002001300039000007a003000041000000000541004b00000000050000190000000005032019000007a004400197000007a006100197000000000746004b0000000003008019000000000446013f000007a00440009c000000000305c019000000000303004b0000009f0000c13d1e681dc60000040f000000400200043d00000040032000390000000000130435000000400100003900000000011204360000000b030000290000000000310435000007c50320009c000001590000213d0000006003200039000000400030043f0000079b030000410000079b0410009c0000000001038019000000400110021000000000020204330000079b0420009c00000000020380190000006002200210000000000112019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000000400200043d00000020032000390000000b04000029000000000043043500000000001204350000079b010000410000079b0320009c00000000020180190000004001200210000007c6011001c700001e690001042e0000079b01100197000000000113034f00000000025200490000079b0220019700000000012103df000000c002400210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b04300197000000010220019000000c930000613d0000003f02400039000007b302200197000000400500043d0000000002250019000000000352004b000000000300001900000001030040390000079f0620009c000001590000213d0000000103300190000001590000c13d000000400020043f000000000245043600000001030003670000001f06400039000000050660027200000b8c0000613d000000000730036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00000b840000413d000000000600004b00000b8e0000613d0000001f0640018f000000050440027200000b9a0000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000847004b00000b920000413d000000000706004b00000ba90000613d0000000504400210000000000141034f00000000044200190000000306600210000000000704043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001404350000000001050433000000200110008c00000c590000c13d0000000d0b0000290000006401b00039000000000113034f0000004404b00039000000000543034f0000002404b00039000000000443034f0000012406b00039000000000663034f0000010407b00039000000000773034f000000e408b00039000000000883034f000000c409b00039000000000993034f000000a40ab00039000000000aa3034f000000840bb00039000000000bb3034f0000000c03300360000000000303043b000000000404043b000000000505043b000000000c01043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a0021000390000000b0d0000290000000000d2043500000180021000390000000a0d0000290000000000d2043500000160021000390000000000620435000001400210003900000000007204350000012002100039000000000082043500000100021000390000000000920435000000e0021000390000000000a20435000000c0021000390000000000b20435000000a0021000390000000000c204350000008002100039000000000052043500000060021000390000000000420435000000400210003900000000003204350000002002100039000007b7030000410000000000320435000001c0030000390000000000310435000007b80310009c000001590000213d000001e003100039000000400030043f0000079b040000410000079b0320009c0000000002048019000000400220021000000000010104330000079b0310009c00000000010480190000006001100210000000000121019f00000000020004140000079b0320009c0000000002048019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000007a401000041000000000010043900000000010004140000079b0210009c0000079b01008041000000c001100210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d0000000b040000290000002002400039000000000101043b000007b9030000410000000000320435000000800340003900000000001304350000006001400039000007ba0300004100000000003104350000004001400039000007bb03000041000000000031043500000080010000390000000000140435000007bc0140009c000001590000213d0000000b04000029000000a001400039000000400010043f0000079b010000410000079b0320009c0000000002018019000000400220021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000007bd0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000007be0310009c000001590000213d0000008003100039000000400030043f0000079b030000410000079b0420009c0000000002038019000000400220021000000000010104330000079b0410009c00000000010380190000006001100210000000000121019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f00000afe0000013d000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000380840008c00000cd60000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021097000390000000000890435000000000807001900000ce70000013d0000001f0340018f000000050240027200000c9e0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000c970000413d000000000503004b00000cac0000613d00000003033002100000000502200210000000000502043300000000053501cf000000000535022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000600140021000001e6a00010430000000380840008c00000d760000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a60009c000001590000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021096000390000000000890435000000000806001900000d870000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008070019000000400700043d000007a60970009c000001590000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000e1e0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000e2b0000013d000000000301004b00000dc20000c13d000000400100043d000a00000001001d0000000c010000290000010004100039000000000142034f000000000301043b000000800130008c00000e900000413d0000008001300270000007a80530009c000000000103a019000007a80530009c0000000005000019000000100500203900000008065001bf0000079f0710009c000000000605a01900000040051002700000079f0710009c000000000501a01900000004016001bf0000079b0750009c000000000106a01900000020065002700000079b0750009c000000000605a01900000002051001bf0000ffff0760008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004106500039000000000116016f0000000a011000290000000a0610006c000000000600001900000001060040390000079f0710009c000001590000213d0000000106600190000001590000c13d000000400010043f00000002015000390000000a06000029000000000616043600000000010000310000002107500039000000050770027200000d620000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000d5a0000413d000000000700004b00000d640000613d0000000a070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000000a05000029000000210550003900000ea40000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008060019000000400600043d000007a60960009c000001590000213d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000f4d0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000f5a0000013d000000020210008c00000ef10000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c00000fd00000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000e0c0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000e040000413d000000000700004b00000e0e0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000210530003900000fe30000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007ae0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000e3b0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000e340000413d000000000abc001900000000000a0435000000000b060433000000000c0b004b00000e480000613d000000000c000019000000000dac0019000000200cc00039000000000e6c0019000000000e0e04330000000000ed0435000000000dbc004b00000e410000413d0000000006ab00190000000000060435000000000a080433000000000b0a004b00000e550000613d000000000b000019000000000c6b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000e4e0000413d000000000551034f00000000016a00190000001f0640018f0000000000010435000000050840027200000e640000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000e5c0000413d000000000a06004b00000e730000613d0000000508800210000000000585034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004070433000000000504004b00000e800000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00000e790000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d000000010330019000000fbe0000613d000001590000013d0000000a01000029000007a60110009c000001590000213d0000000a050000290000004001500039000000400010043f000000010100003a00000000051504360000000001000031000000000612034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807300210000007a008000041000000000303004b000000000807c019000007a703600197000000000383019f0000000000350435000000400300043d000000600440008a000000000542034f000000000505043b000000800650008c000010310000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007730019000000000837004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f000000020760003900000000077304360000002108600039000000050880027200000edf0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ed70000413d000000000800004b00000ee10000613d0000000008030433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106300039000010420000013d000000010110008c00000fc90000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000108f0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000f3b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f330000413d000000000700004b00000f3d0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000010a20000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007af0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000f6a0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000f630000413d000000000abc001900000000000a0435000000000b070433000000000c0b004b00000f770000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b00000f700000413d0000000007ab00190000000000070435000000000a080433000000000b0a004b00000f840000613d000000000b000019000000000c7b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000f7d0000413d000000000551034f00000000017a00190000001f0740018f0000000000010435000000050840027200000f930000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000f8b0000413d000000000a07004b00000fa20000613d0000000508800210000000000585034f00000000088100190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004060433000000000504004b00000faf0000613d000000000500001900000000071500190000002005500039000000000865001900000000080804330000000000870435000000000745004b00000fa80000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d0000000103300190000001590000c13d000000400010043f0000079b010000410000079b0390009c0000000009018019000000400390021000000000020204330000079b0420009c00000000020180190000006002200210000000000232019f00000af90000013d000000400100043d0000004402100039000007c10300004100000000003204350000002402100039000000130300003900000c5f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000010f00000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008850436000000210970003900000005099002720000101f0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010170000413d000000000900004b000010210000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000011010000013d000007a60630009c000001590000213d0000004006300039000000400060043f000000000712034f000000010600003a00000000066304360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400440008a000000000542034f000000400400043d000000000505043b000000800650008c0000114e0000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000107d0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000010750000413d000000000800004b0000107f0000613d0000000008040433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000021064000390000115f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000011ef0000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000010de0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010d60000413d000000000900004b000010e00000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000012000000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000400440008a000000000741034f000000000707043b000000800870008c0000124d0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000113c0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000011340000413d000000000a00004b0000113e0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c000000000700201900000021086000390000125e0000013d000007a60640009c000001590000213d0000004006400039000000400060043f000000000712034f000000010600003a00000000066404360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400500043d000900000005001d00000020055000390000000006030433000000000706004b0000116e0000613d000000000700001900000000085700190000002007700039000000000937001900000000090904330000000000980435000000000867004b000011670000413d000000000356001900000000000304350000000005040433000000000605004b0000117b0000613d000000000600001900000000073600190000002006600039000000000846001900000000080804330000000000870435000000000756004b000011740000413d0000000003350019000000000003043500000009050000290000000003530049000000200430008a00000000004504350000001f033000390007002000000092000000070330017f0000000004530019000000000334004b00000000030000190000000103004039000800000004001d0000079f0440009c000001590000213d0000000103300190000001590000c13d0000000803000029000000400030043f000007a60330009c000001590000213d0000000d060000290000004403600039000000000332034f000000000303043b00000008070000290000004004700039000000400040043f0000002004700039000007aa050000410000000000540435000000150400003900000000004704350000006003300210000000210470003900000000003404350000012403600039000000000432034f000000400500043d000600000005001d000000000404043b000000800540008c000013090000413d0000008005400270000007a80640009c000000000504a019000007a80640009c0000000006000019000000100600203900000008076001bf0000079f0850009c000000000706a01900000040065002700000079f0850009c000000000605a01900000004087001bf0000079b0560009c000000000807a01900000020076002700000079b0560009c000000000706a01900000002058001bf0000ffff0670008c000000000508a0190000001006700270000000000607a019000000ff0660008c00000001055020390000004106500039000000070660017f0000000606600029000000060760006c000000000700001900000001070040390000079f0860009c000001590000213d0000000107700190000001590000c13d000000400060043f00000002065000390000000607000029000000000667043600000021075000390000000507700272000011db0000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000011d30000413d000000000700004b000011dd0000613d00000006070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000060500002900000021055000390000131c0000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000600440008a000000000741034f000000000707043b000000800870008c000012ab0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000123b0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000012330000413d000000000a00004b0000123d0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108600039000012bc0000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000200440008a000000000841034f000000000808043b000000800980008c000013630000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012990000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012910000413d000000000b00004b0000129b0000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013740000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400440008a000000000841034f000000000808043b000000800980008c000013c20000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012f70000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012ef0000413d000000000b00004b000012f90000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013d30000013d0000000605000029000007a60550009c000001590000213d00000006070000290000004005700039000000400050043f000000000612034f000000010500003a00000000055704360000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f00000000004504350000000c0a0000290000000006a10049000000a004300039000000000342034f000000000503043b0000001f0360008a000007a006300197000007a007500197000007a008000041000000000967004b00000000090000190000000009084019000000000667013f000000000735004b0000000008004019000007a00660009c000000000908c019000000000609004b0000009f0000c13d0000000006a50019000000000562034f000000000505043b0000079f0750009c0000009f0000213d00000000075100490000002006600039000007a008000041000000000976004b00000000090000190000000009082019000007a007700197000007a00a600197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b0000009f0000c13d000000010750008c000015600000c13d000000000562034f000000000505043b000000010600008a000007a007000041000000000665004b00000000060000190000000006072019000007a005500197000007a00850009c0000000007008019000007a005500167000007a00550009c000000000706c019000500600000003d000000000507004b000016630000c13d000000400500043d000500000005001d000007a60550009c000001590000213d00000005070000290000004005700039000000400050043f0000002005700039000007a906000041000000000065043500000001050000390000000000570435000016630000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d00090040004000920000000909100360000000000909043b000000800a90008c000014330000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000013af0000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000013a70000413d000000000400004b000013b10000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f80440008900000000094901cf000000ff0440008c000000000900201900000021048000390000000000940435000014450000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200840008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c004400039000000000441034f000000400800043d000000000404043b000900000004001d000000800a40008c000014a80000413d0000000904000029000000800a400270000007a80b40009c000000000a04a019000007a80b40009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000014200000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000014180000413d000000000400004b000014220000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f804400089000000090a4001ef000000ff0440008c000000000a00201900000021048000390000000000a40435000014bb0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000f804900210000007a00c000041000000000909004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400a00043d000007a604a0009c000001590000213d000000090c0000290000002004c0008a000000000441034f000000000404043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060044002100000002109a000390000000000490435000000c004c00039000000000441034f000000400900043d000000000404043b000900000004001d000000800b40008c0000158c0000413d0000000904000029000000800b400270000007a80c40009c000000000b04a019000007a80c40009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000204e001bf0000ffff0cd0008c00000000040ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000104402039000000200c00008a000800000004001d000000410d400039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000804000029000000020c400039000000000cc90436000000210d400039000000050dd00272000014940000613d000000000e21034f000000000f0000190000000504f00210000000000b4c001900000000044e034f000000000404043b00000000004b0435000000010ff000390000000004df004b0000148c0000413d000000000400004b000014960000613d0000000004090433000000000404004b000001c10000613d00000000040c0433000007a704400197000000080d000029000000f80bd0021000000000044b019f000007a90440004100000000004c04350000000304d00210000000f804400089000000090b4001ef000000ff0440008c000000000b00201900000021049000390000000000b404350000159f0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000090d000029000000f804d00210000007a00c000041000000000d0d004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400400043d000000200a400039000000000b030433000000000c0b004b000014c80000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000014c10000413d0000000003ab00190000000000030435000000000a050433000000000b0a004b000014d50000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000cab004b000014ce0000413d00000000033a001900000000000304350000000005060433000000000a05004b000014e20000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b5a004b000014db0000413d000000000335001900000000000304350000000005070433000000000605004b000014ef0000613d0000000006000019000000000a3600190000002006600039000000000b760019000000000b0b04330000000000ba0435000000000a56004b000014e80000413d000000000335001900000000000304350000000005090433000000000605004b000014fc0000613d000000000600001900000000073600190000002006600039000000000a960019000000000a0a04330000000000a70435000000000756004b000014f50000413d000000000335001900000000000304350000000005080433000000000605004b000015090000613d000000000600001900000000073600190000002006600039000000000986001900000000090904330000000000970435000000000756004b000015020000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c0000173d0000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000179e0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000179e0000013d000000400600043d000500000006001d000000380650008c000016510000413d00000020075002700000079b0650009c000000000705a0190000079b0650009c0000000008000019000000040800203900000002068001bf0000ffff0970008c000000000608a0190000001008700270000000000807a019000000ff0780008c000000000700001900000001070020390000000508000029000007a60880009c000001590000213d000000000676019f00000005090000290000004007900039000000400070043f000000000812034f000000020760003a00000000077904360000000008800350000000000808043b0000000000870435000001c10000613d000007a708800197000000f809600210000000000889019f000007ab088001c700000000008704350000000306600210000000f80660015f00000000056501cf000000050600002900000021066000390000000000560435000016630000013d000007a60490009c000001590000213d0000004004900039000000400040043f000000000421034f000000010b00003a000000000bb904360000000004400350000000000c04043b0000000000cb0435000001c10000613d000000090e000029000000f804e00210000007a00d000041000000000e0e004b000000000d04c019000007a704c001970000000004d4019f00000000004b0435000000400400043d000000200b400039000000000c030433000000000d0c004b000015ac0000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b000015a50000413d0000000003bc00190000000000030435000000000b050433000000000c0b004b000015b90000613d000000000c000019000000000d3c0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000dbc004b000015b20000413d00000000033b001900000000000304350000000005060433000000000b05004b000015c60000613d000000000b000019000000000c3b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c5b004b000015bf0000413d000000000335001900000000000304350000000005070433000000000605004b000015d30000613d0000000006000019000000000b3600190000002006600039000000000c760019000000000c0c04330000000000cb0435000000000b56004b000015cc0000413d000000000335001900000000000304350000000005080433000000000605004b000015e00000613d000000000600001900000000073600190000002006600039000000000b860019000000000b0b04330000000000b70435000000000756004b000015d90000413d0000000003350019000000000003043500000000050a0433000000000605004b000015ed0000613d0000000006000019000000000736001900000020066000390000000008a6001900000000080804330000000000870435000000000756004b000015e60000413d000000000335001900000000000304350000000005090433000000000605004b000015fa0000613d000000000600001900000000073600190000002006600039000000000896001900000000080804330000000000870435000000000756004b000015f30000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c000017650000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000187d0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000187d0000013d0000000506000029000007a60660009c000001590000213d00000005080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f805500210000007a707700197000000000557019f000007a00550016700000000005604350000002004400039000000000442034f000000000404043b000007a005000041000000000634004b00000000060000190000000006058019000007a003300197000007a007400197000000000837004b0000000005008019000000000337013f000007a00330009c000000000506c019000000000305004b0000000c030000290000009f0000c13d0000000004340019000000000342034f000000000303043b0000079f0530009c0000009f0000213d000000200530008c0000009f0000413d00000000053100490000002004400039000007a006000041000000000754004b00000000070000190000000007062019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000542034f000000400600043d000400000006001d000000000505043b000000800650008c000016d80000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000407700029000000040870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000408000029000000000778043600000021086000390000000508800272000016c40000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000016bc0000413d000000000800004b000016c60000613d00000004080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000004060000290000002106600039000016eb0000013d0000000406000029000007a60660009c000001590000213d00000004080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400530008c0000009f0000413d000000400500043d000300000005001d0000002004400039000000000542034f000000000505043b000000800650008c000018290000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000307700029000000030870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000017290000613d000000000112034f0000000009000019000000050a900210000000000ba70019000000000aa1034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017210000413d000000000100004b0000172b0000613d00000003010000290000000001010433000000000101004b000001c10000613d0000000001070433000007a701100197000000f808600210000000000118019f000007a90110004100000000001704350000000301600210000000f80110008900000000051501cf000000ff0110008c0000000005002019000000030100002900000021011000390000183c0000013d000000380850008c0000178d0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000179e0000013d000000380850008c0000186c0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000187d0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000700000006001d000000000f6704360000000006d003500008000000060353000000000606043b000900000006001d00000000006f0435000001c10000613d0000000906000029000007a706600197000600000006001d000007ac0b6001c70000000000bf0435000000200bc00039000000000bb1034f000000000c0b043b000007a00b000041000000000f9c004b000000000f000019000000000f0b8019000007a009900197000007a00ec00197000000000a9e004b000000000b00801900000000099e013f000007a00990009c000000000b0fc01900000000090b004b0000000c060000290000009f0000c13d00000000096c0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000c2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000500000006001d000000800a60008c000000200f200039000019080000413d0000000506000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0ea0009c000000000c0ba019000000400ba002700000079f0ea0009c000000000b0aa019000000040ec001bf0000079b0ab0009c000000000e0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ae001bf0000ffff0bc0008c000000000a0ea019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000410ba00039000000000b3b016f000000000cb20019000000000b2c004b000000000e000019000000010e0040390000079f0bc0009c000001590000213d000000010be00190000001590000c13d0000004000c0043f000000020ba000390000000000b20435000000210ba00039000000050eb00272000018160000613d000000000c000019000000050bc002100000000009bf0019000000000bbd034f000000000b0b043b0000000000b90435000000010cc000390000000009ec004b0000180e0000413d000000000600004b000018180000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ba0021000000000099b019f000007a90990004100000000009f04350000000309a00210000000f809900089000000050a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019190000013d0000000306000029000007a60660009c000001590000213d00000003070000290000004006700039000000400060043f000000000612034f000000010100003a00000000011704360000000006600350000000000606043b0000000000610435000001c10000613d000000f807500210000007a008000041000000000505004b000000000807c019000007a705600197000000000585019f0000000000510435000000410130008c000001c10000413d0000002001400039000000000112034f000000000101043b000000f801100270000200000001001d0000001b0110008a000000020110008c00001d060000813d0000000d01000029000101440010003d0000000101200360000000000101043b000000000101004b00001a920000613d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000000201043b0000000101200210000000000302004b000018630000613d000000090300008a000000000331004b000018670000213d00000000322100d9000000020220008c000018670000c13d00000002011000290000000803100039000000020130006c0000196e0000813d000007c30100004100000000001004350000001101000039000001c40000013d000000000001042f000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000900000006001d000000000a6704360000000006d003500007000000060353000000000606043b000800000006001d00000000006a0435000001c10000613d0000000806000029000007a706600197000500000006001d000007ac0f6001c70000000000fa0435000000200ac00039000000000aa1034f000000000a0a043b000007a00c000041000000000f9a004b000000000f000019000000000f0c8019000007a009900197000007a00ea00197000000000b9e004b000000000c00801900000000099e013f000007a00990009c000000000c0fc01900000000090c004b0000000c060000290000009f0000c13d00000000096a0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000e2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000600000006001d000000800a60008c000000200f200039000019ba0000413d0000000606000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080eb001bf0000079f0ca0009c000000000e0ba019000000400ba002700000079f0ca0009c000000000b0aa019000000040ae001bf0000079b0cb0009c000000000a0ea019000000200cb002700000079b0eb0009c000000000c0ba019000000020ba001bf0000ffff0ec0008c000000000b0aa019000000100ac00270000000000a0ca019000000ff0aa0008c000000010bb02039000000410ab00039000000000a3a016f000000000aa20019000000000c2a004b000000000e000019000000010e0040390000079f0ca0009c000001590000213d000000010ce00190000001590000c13d0000004000a0043f000000020ab000390000000000a20435000000210ab00039000000050aa00272000018f50000613d000000000e000019000000050ce002100000000009cf0019000000000ccd034f000000000c0c043b0000000000c90435000000010ee000390000000009ae004b000018ed0000413d000000000600004b000018f70000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ab0021000000000099a019f000007a90990004100000000009f04350000000309b00210000000f809900089000000060a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019cb0000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000090600002900000000006f043500000007060000290000000000620435000000000906004b000001c10000613d0000000506000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000609a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000900000006001d000000800a60008c000000200e90003900001a200000413d0000000906000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040fc001bf0000079b0ab0009c000000000f0ca019000000200cb002700000079b0ab0009c000000000c0ba0190000000206f001bf0000ffff0bc0008c00000000060fa019000000100bc00270000000000b0ca019000000ff0bb0008c0000000106602039000600000006001d000000410b600039000000000b3b016f000000000cb90019000000000b9c004b000000000f000019000000010f0040390000079f0bc0009c000001590000213d000000010bf00190000001590000c13d0000004000c0043f0000000606000029000000020b6000390000000000b90435000000210b600039000000050cb002720000195a0000613d000000000f000019000000050bf00210000000000abe0019000000000bbd034f000000000b0b043b0000000000ba0435000000010ff00039000000000acf004b000019520000413d000000000600004b0000195c0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000090ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001a330000013d000000800130008c000200000003001d00001a920000413d0000008001300270000007a80230009c000000000103a019000007a80230009c0000000002000019000000100200203900000008042001bf0000079f0510009c000000000402a01900000040021002700000079f0510009c000000000201a01900000004014001bf0000079b0520009c000000000104a01900000020042002700000079b0520009c000000000402a01900000002051001bf0000ffff0240008c000000000501a0190000001001400270000000000104a019000000ff0110008c00000001055020390000004101500039000000070210017f000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000079f0620009c000001590000213d0000000104400190000001590000c13d000000400020043f000000020250003900000000062104360000000102000367000000000400003100000021075000390000000507700272000019a70000613d000000000842034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000199f0000413d000000000700004b000019a90000613d0000000007010433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105100039000000000035043500001aa80000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000080600002900000000006f043500000009060000290000000000620435000000000906004b000001c10000613d0000000606000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000509a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000800000006001d000000800a60008c000000200e90003900001b110000413d0000000806000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040ac001bf0000079b0fb0009c000000000a0ca019000000200cb002700000079b0fb0009c000000000c0ba0190000000206a001bf0000ffff0fc0008c00000000060aa019000000100ac00270000000000a0ca019000000ff0aa0008c0000000106602039000600000006001d000000410a600039000000000a3a016f000000000aa90019000000000c9a004b000000000c000019000000010c0040390000079f0fa0009c000001590000213d000000010cc00190000001590000c13d0000004000a0043f0000000606000029000000020a6000390000000000a90435000000210a600039000000050aa0027200001a0c0000613d000000000c000019000000050fc00210000000000bfe0019000000000ffd034f000000000f0f043b0000000000fb0435000000010cc00039000000000bac004b00001a040000413d000000000600004b00001a0e0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000080ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001b240000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f000000070b0000290000000000b90435000000080600035f000000000a06043b0000000000ae0435000000000b0b004b000001c10000613d0000000906000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000ba1034f000000000a000415000000110aa0008a000000200aa000c9000007a00d000041000000000b0b043b000000f80cb002700000001b0bc0008c00001a470000613d000000000a000415000000100aa0008a000000200aa000c9000007ae0d0000410000001c0bc0008c00001d060000c13d000000400c00043d000007a60bc0009c000001590000213d000000400bc000390000004000b0043f000000070b000029000000000ebc0436000000080600035f000000000f06043b0000000000fe0435000000000b0b004b000001c10000613d000007a70bf00197000000000bdb019f0000000000be0435000000000b040433000000000d080433000000050aa00270000000000a0c001f000000000a5d0019000000000aba0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f06a00197000900000006001d000000380b60008c0006004000d0003d000c002000d0003d00001b810000413d0000000906000029000000200f6002700000079b0b60009c000000000f06a0190000079b0b60009c000000000e000019000000040e002039000000020be001bf0000ffff0af0008c000000000b0ea019000000100af00270000000000a0fa019000000ff0aa0008c000000000f000019000000010f002039000007a60ad0009c000001590000213d000000000bfb019f0000000606000029000000400060043f000000020ab0003a0000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000001c10000613d000007a70af00197000000f80eb00210000000000aae019f000007ad0aa001c70000000c060000290000000000a60435000000030ab00210000000f80aa0015f000000090aa001ef000000210bd000390000000000ab043500001b940000013d000000400100043d000007a60210009c000001590000213d0000004002100039000000400020043f000000010200003a000000000321043600000000040000310000000102000367000000000542034f0000000005500350000000000505043b0000000000530435000001c10000613d0000000208000029000000f806800210000007a007000041000000000808004b000000000706c019000007a705500197000000000575019f000000000053043500000001030000290000008003300039000000000332034f0000000d0540006a000000230550008a000000000303043b000007a006000041000000000753004b00000000070000190000000007068019000007a005500197000007a008300197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c060000290000009f0000c13d0000000a050000290000000005050433000000090700002900000000070704330000000808000029000000000808043300000006090000290000000009090433000000050a000029000000000a0a04330000000006630019000000000362034f000000000303043b0000079f0b30009c0000009f0000213d000000000b3400490000002006600039000007a00c000041000000000db6004b000000000d000019000000000d0c2019000007a00bb00197000007a00e600197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000005570019000000000585001900000000059500190000000005a50019000000000535001900000004070000290000000007070433000000000575001900000003070000290000000007070433000000000575001900000000070104330000000005750019000000400700043d0000079f05500197000000380850008c0000004009700039000000000842034f000000200470003900001c390000413d000000200b5002700000079b0a50009c000000000b05a0190000079b0a50009c000000000c000019000000040c002039000000020ac001bf0000ffff0db0008c000000000a0ca019000000100cb00270000000000c0ba019000000ff0bc0008c000000000b000019000000010b002039000007a60c70009c000001590000213d000000000aba019f000000400090043f0000000209a0003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f809a00210000000000889019f000007ad088001c700000000008404350000000304a00210000000f80440015f00000000044501cf0000002105700039000000000045043500001c470000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f00000009060000290000000000690435000000070a00035f000000000a0a043b0000000000ae0435000000000b06004b000001c10000613d0000000806000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000aa1034f000000000b0004150000000f0bb0008a000000200bb000c9000007a00d000041000000000a0a043b000000f80aa002700000001b0ca0008c00001b380000613d000000000b0004150000000e0bb0008a000000200bb000c9000007ae0d0000410000001c0aa0008c00001d060000c13d000000400c00043d000007a60ac0009c000001590000213d000000400ac000390000004000a0043f0000000906000029000000000a6c0436000000070e00035f000000000e0e043b00080000000e001d0000000000ea0435000000000e06004b000001c10000613d0000000806000029000707a70060019b000000070dd001af0000000000da0435000000000a040433000000000d080433000000050bb00270000000000b0c001f000000000b5d0019000000000aab0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f0fa00197000000380af0008c0006004000d0003d000c002000d0003d00001d0d0000413d000000200ef002700000079b0af0009c000000000e0fa0190000079b0af0009c00000000060000190000000406002039000000020a6001bf0000ffff0be0008c000000000a06a019000000100be00270000000000b0ea019000000ff0bb0008c000000000e000019000000010e002039000007a60bd0009c000001590000213d000000000aea019f0000000606000029000000400060043f00000008060000290000000c0b00002900000000006b0435000000020ba0003a0000000000bd0435000001c10000613d000000f80ba00210000000070bb001af000007ad0bb001c70000000c060000290000000000b60435000000030aa00210000000f80aa0015f000000000aaf01cf000000210bd000390000000000ab043500001d1d0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f000000070a0000290000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000000000a0a004b000001c10000613d000007a70af001970000000906000029000000f80b600210000000000aab019f000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007ae0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001ba60000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001b9f0000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001bb30000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001bac0000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001bc00000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001bb90000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001bcf0000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001bc70000413d000000000a06004b00001bde0000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001beb0000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001be40000413d0000000001140019000000000001043500000000040c0433000000000504004b00001bf80000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001bf10000413d000000000114001900000000000104350000000004020433000000000504004b00001c050000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001bfe0000413d000000000114001900000000000104350000000002090433000000000402004b00001c120000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001c0b0000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d00001dc10000013d000007a60a70009c000001590000213d000000400090043f000000010900003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f805500210000000000585019f000007ac055000410000000000540435000000400400043d00000020054000390000000008070433000000000908004b00001c540000613d0000000009000019000000000a5900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00001c4d0000413d000000000758001900000000000704350000000a080000290000000008080433000000000908004b00001c620000613d0000000009000019000000000a79001900000020099000390000000a0b900029000000000b0b04330000000000ba0435000000000a89004b00001c5b0000413d0000000007780019000000000007043500000009080000290000000008080433000000000908004b00001c700000613d0000000009000019000000000a7900190000002009900039000000090b900029000000000b0b04330000000000ba0435000000000a89004b00001c690000413d0000000007780019000000000007043500000008080000290000000008080433000000000908004b00001c7e0000613d0000000009000019000000000a7900190000002009900039000000080b900029000000000b0b04330000000000ba0435000000000a89004b00001c770000413d0000000007780019000000000007043500000006080000290000000008080433000000000908004b00001c8c0000613d0000000009000019000000000a7900190000002009900039000000060b900029000000000b0b04330000000000ba0435000000000a89004b00001c850000413d0000000007780019000000000007043500000005080000290000000008080433000000000908004b00001c9a0000613d0000000009000019000000000a7900190000002009900039000000050b900029000000000b0b04330000000000ba0435000000000a89004b00001c930000413d000000000662034f00000000027800190000001f0730018f0000000000020435000000050830027200001ca90000613d0000000009000019000000050a900210000000000ba20019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00001ca10000413d000000000907004b00001cb80000613d0000000508800210000000000686034f00000000088200190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000232001900000000000204350000000003010433000000000603004b00001cc50000613d000000000600001900000000072600190000002006600039000000000816001900000000080804330000000000870435000000000736004b00001cbe0000413d0000000001230019000000000001043500000004020000290000000002020433000000000302004b00001cd30000613d000000000300001900000000061300190000002003300039000000040730002900000000070704330000000000760435000000000623004b00001ccc0000413d0000000001120019000000000001043500000003020000290000000002020433000000000302004b00001ce10000613d000000000300001900000000061300190000002003300039000000030730002900000000070704330000000000760435000000000623004b00001cda0000413d000000000112001900000000000104350000000001410049000000200210008a00000000002404350000001f01100039000000070210017f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0250009c0000000005018019000000400250021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000b560000013d000000400100043d0000004402100039000007c203000041000000000032043500000024021000390000000f0300003900000c5f0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f00000008060000290000000c0a00002900000000006a0435000000090600002900000000006d0435000000000a06004b000001c10000613d000000f80af00210000000070aa001af000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007af0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001d2f0000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001d280000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001d3c0000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001d350000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001d490000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001d420000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001d580000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001d500000413d000000000a06004b00001d670000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001d740000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001d6d0000413d0000000001140019000000000001043500000000040c0433000000000504004b00001d810000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001d7a0000413d000000000114001900000000000104350000000004020433000000000504004b00001d8e0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001d870000413d000000000114001900000000000104350000000002090433000000000402004b00001d9b0000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001d940000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000000020004150000000a02200069000000000200000200000b560000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000079b02100197000000010150019000001e1f0000c13d0000000001000031000000000541004b00001e1f0000413d0000000102200367000007b00530009c00001e230000813d00000000014100490000079b0110019700000000011203df000000c002300210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b03300197000000010220019000001e2a0000613d0000003f02300039000007b304200197000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000079f0640009c00001e450000213d000000010550019000001e450000c13d000000400040043f00000000043204360000001f05300039000000050550027200001dfd0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001df50000413d000000000500004b00001dff0000613d0000001f0530018f000000050330027200001e0b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00001e030000413d000000000605004b00001e1a0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c00001e4b0000c13d0000000001040433000000000001042d000007c3010000410000000000100435000000110100003900001e480000013d000000400100043d0000004402100039000007bf0300004100000000003204350000002402100039000000080300003900001e510000013d0000001f0430018f000000050230027200001e350000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00001e2e0000413d000000000504004b00001e430000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000001e6a00010430000007c30100004100000000001004350000004101000039000000040010043f000007c40100004100001e6a00010430000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000000001042f00001e61002104230000000102000039000000000001042d0000000002000019000000000001042d00001e66002104230000000102000039000000000001042d0000000002000019000000000001042d00001e680000043200001e690001042e00001e6a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000456e636f64696e6720756e737570706f7274656420747800000000000000000000000000000000000000000000000000000000640000008000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c69642064617461000000000000000000000000000000000000000064000000000000000000000000848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f4f766572666c6f770000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac46880ebec771717dc70f9688fe43e58ce01ef6ff73d4b4fb82cf87c76e3a51", + "deployedBytecode": "0x000200000000000200110000000000020001000000010355000000000301001900000060053002700000079b0050019d0000008004000039000000400040043f0000079b0350019700000001022001900000006f0000c13d000000040230008c0000009f0000413d000000000201043b0000079d022001970000079e0220009c0000009f0000c13d0000000002000416000000000202004b0000009f0000c13d000000040230008a000000200620008c0000009f0000413d0000000406100370000000000d06043b0000079f06d0009c0000009f0000213d0000000002d20049000007a006000041000002600720008c00000000070000190000000007064019000007a002200197000000000802004b000000000600a019000007a00220009c000000000607c019000000000206004b0000009f0000c13d000000040cd000390000000002c1034f000000000202043b000000000602004b000000770000c13d000000000231034f0000010005c00039000000000451034f000000000404043b000000800640008c000000a10000413d0000008006400270000007a80740009c000000000604a019000007a80740009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a000000c108600039000000000778016f000000400070043f0000000207600039000000800070043f000000210760003900000005077002720000005d0000613d00000000080000190000000509800210000000000a92034f000000000a0a043b000000a0099000390000000000a904350000000108800039000000000978004b000000550000413d000000000700004b0000005f0000613d000000800700043d000000000707004b000001c10000613d000000a00700043d000007a707700197000000f808600210000000000778019f000007a907700041000000a00070043f0000000306600210000000f80660008900000000046401cf000000ff0660008c0000000004002019000000a10040043f000000ae0000013d0000000001000416000000000101004b0000009f0000c13d0000002001000039000001000010044300000120000004430000079c0100004100001e690001042e000000710620008c000000fb0000c13d000001c402d00039000000000221034f0000000006d30049000000230660008a000000000202043b000007a007000041000000000862004b00000000080000190000000008078019000007a006600197000007a009200197000000000a69004b0000000007008019000000000669013f000007a00660009c000000000708c019000000000607004b0000009f0000c13d0000000002c20019000000000621034f000000000606043b0000079f0760009c0000009f0000213d00000000076300490000002002200039000007a008000041000000000972004b00000000090000190000000009082019000007a007700197000007a00a200197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b000002c10000613d000000000100001900001e6a00010430000000f806400210000007a007000041000000000404004b000000000706c019000000c004000039000000400040043f0000000104000039000000800040043f0000000004200350000000000404043b000007a704400197000000000474019f000000a00040043f000d0000000d001d000c0000000c001d000000400400043d000000600550008a000000000651034f000000000606043b000000800760008c000001570000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000884043600000021097000390000000509900272000000e90000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000000e10000413d000000000900004b000000eb0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107400039000001d70000013d000000020120008c0000015d0000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c000002db0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001450000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000013d0000413d000000000700004b000001470000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000002ee0000013d000007a60740009c000001b90000a13d000007c30100004100000000001004350000004101000039000001c40000013d000000010120008c000001c70000c13d000d0000000d001d000c0000000c001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000033c0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f000000020150003900000000061304360000000101000367000000000200003100000021075000390000000507700272000001a70000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000019f0000413d000000000700004b000001a90000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c000000000400201900000021053000390000034f0000013d0000004007400039000000400070043f000000010700003a00000000077404360000000008200350000000000808043b0000000000870435000001d10000c13d000007c30100004100000000001004350000003201000039000000040010043f000007c40100004100001e6a00010430000007a101000041000000800010043f0000002001000039000000840010043f0000001701000039000000a40010043f000007a201000041000000c40010043f000007a30100004100001e6a00010430000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400550008a000000000651034f000000400500043d000000000606043b000000800760008c000002230000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000002110000613d000000000a000019000000050ba00210000000000cb80019000000000bb2034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002090000413d000000000900004b000002130000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000002330000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000010700003a00000000077504360000000008200350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400b00043d0000002006b000390000000007040433000000000807004b000002410000613d000000000800001900000000096800190000002008800039000000000a480019000000000a0a04330000000000a90435000000000978004b0000023a0000413d000000000467001900000000000404350000000006050433000000000706004b0000024e0000613d000000000700001900000000084700190000002007700039000000000957001900000000090904330000000000980435000000000867004b000002470000413d000000000446001900000000000404350000000004b40049000000200540008a00000000005b04350000001f04400039000a0020000000920000000a0440017f00090000000b001d0000000005b40019000000000445004b00000000040000190000000104004039000b00000005001d0000079f0550009c000001590000213d0000000104400190000001590000c13d0000000b04000029000000400040043f000007a60440009c000001590000213d0000000d070000290000004404700039000000000441034f000000000404043b0000000b080000290000004005800039000000400050043f0000002005800039000007aa060000410000000000650435000000150500003900000000005804350000006004400210000000210580003900000000004504350000012404700039000000000541034f000000400600043d000800000006001d000000000505043b000000800650008c000005510000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c000000010660203900000041076000390000000a0770017f0000000807700029000000080870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000808000029000000000778043600000021086000390000000508800272000002ad0000613d0000000009000019000000050a900210000000000ba70019000000000aa2034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000002a50000413d000000000800004b000002af0000613d00000008080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000008060000290000002106600039000005630000013d000000000726001a0000000006000414000018670000413d000000000373004b000018670000413d000d0000000d001d000c0000000c001d000007b00360009c000003fb0000413d0000004401400039000007bf020000410000000000210435000000240140003900000008020000390000000000210435000007a10100004100000000001404350000000401400039000000200200003900000000002104350000079b010000410000079b0240009c00000000040180190000004001400210000007b6011001c700001e6a00010430000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c0000039d0000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000032a0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003220000413d000000000900004b0000032c0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000003ae0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400400043d0000000d050000290000010406500039000000000561034f000000000505043b000000800750008c000004d80000413d0000008007500270000007a80850009c000000000705a019000007a80850009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008840019000000000948004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008840436000000210970003900000005099002720000038b0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000003830000413d000000000900004b0000038d0000613d0000000009040433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000057501cf000000ff0770008c00000000050020190000002107400039000004e90000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000400760008a000000000671034f000000000606043b000000800860008c000005aa0000413d0000008008600270000007a80960009c000000000806a019000007a80960009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000003e90000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000003e10000413d000000000a00004b000003eb0000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000005bb0000013d0000079b02200197000000000121034f00000000027500490000079b0220019700000000012103df000000c002600210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b053001970000000102200190000005360000613d0000003f02500039000007b302200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000079f0420009c000001590000213d0000000103300190000001590000c13d000000400020043f0000000004560436000000010200036700000000030000310000001f075000390000000507700272000004270000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000041f0000413d000000000700004b000004290000613d0000001f0750018f0000000505500272000004350000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b0000042d0000413d000000000807004b000004440000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000c590000c13d0000000d060000290000000001630049000000230510008a000b02040060003d0000000b01200360000000000101043b000007a006000041000000000751004b00000000070000190000000007068019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d0000000004040433000a00000004001d0000000001510019000000000412034f000000000504043b0000079f0450009c0000009f0000213d000000050450021000000000034300490000002006100039000007a001000041000000000736004b00000000070000190000000007012019000007a003300197000007a008600197000000000938004b0000000001008019000000000338013f000007a00330009c000000000107c019000000000101004b0000009f0000c13d000000400100043d0000002003100039000007b405500198000004800000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000004780000413d000000000200004b000004820000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000079f0520009c000001590000213d0000000104400190000001590000c13d000000400020043f0000079b020000410000079b0430009c0000000003028019000000400330021000000000010104330000079b0410009c00000000010280190000006001100210000000000131019f00000000030004140000079b0430009c0000000003028019000000c002300210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c0a0000290000000d030000290000009f0000613d00000000020000310000000003320049000000230530008a0000000b0300002900000020043000390000000103000367000000000443034f000000000404043b000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000101043b000b00000001001d000000000106004b0000009f0000c13d0000000001a40019000000000413034f000000000404043b0000079f0540009c0000009f0000213d00000000054200490000002001100039000007a006000041000000000751004b00000000070000190000000007062019000007a005500197000007a008100197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000514001a0000000004000414000018670000413d000000000652004b000018670000413d000007b00640009c00000b610000413d000000400400043d000002ca0000013d000007a60740009c000001590000213d0000004007400039000000400070043f000000000821034f000000010700003a00000000077404360000000008800350000000000808043b0000000000870435000001c10000613d000000f809500210000007a00a000041000000000505004b000000000a09c019000007a7058001970000000005a5019f0000000000570435000000400500043d000000600660008a000000000761034f000000000707043b000000800870008c000006080000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000005240000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000051c0000413d000000000a00004b000005260000613d000000000a050433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108500039000006190000013d0000001f0350018f0000000502500272000005410000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000053a0000413d000000000403004b0000054f0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f0000000000120435000000600150021000001e6a000104300000000806000029000007a60660009c000001590000213d00000008070000290000004006700039000000400060043f000000010600003a00000000066704360000000007200350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f00000000005604350000000c0b0000290000000005b30049000000a006400039000000000461034f000000000404043b0000001f0550008a000007a007500197000007a008400197000007a009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000854004b0000000009004019000007a00770009c000000000a09c01900000000070a004b0000009f0000c13d0000000008b40019000000000781034f000000000707043b0000079f0970009c0000009f0000213d00000000097300490000002008800039000007a00a000041000000000b98004b000000000b000019000000000b0a2019000007a009900197000007a00c800197000000000d9c004b000000000a00801900000000099c013f000007a00990009c000000000a0bc01900000000090a004b0000009f0000c13d000000010970008c000007ab0000c13d000000000281034f000000000202043b000000010700008a000007a008000041000000000772004b00000000070000190000000007082019000007a002200197000007a00920009c0000000008008019000007a002200167000007a00220009c000000000807c019000700600000003d000000000208004b000007e70000c13d000000400200043d000700000002001d000007a60220009c000001590000213d00000007080000290000004002800039000000400020043f0000002002800039000007a907000041000000000072043500000001020000390000000000280435000007e70000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a600210000007a00b000041000000000606004b000000000b0ac019000007a7069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c000006660000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000005f60000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000005ee0000413d000000000b00004b000005f80000613d000000000b060433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109600039000006770000013d000007a60850009c000001590000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c000006c50000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000006540000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b0000064c0000413d000000000b00004b000006560000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000006d60000013d000007a60960009c000001590000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d000b0040007000920000000b09100360000000000909043b000000800a90008c000007360000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000006b20000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b000006aa0000413d000000000700004b000006b40000613d0000000007080433000000000707004b000001c10000613d00000000070b0433000007a707700197000000f80ca0021000000000077c019f000007a90770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c000000000900201900000021078000390000000000970435000007480000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000b00000006001d000000800a60008c0000089f0000413d0000000b06000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000007230000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b0000071b0000413d000000000600004b000007250000613d0000000006080433000000000606004b000001c10000613d00000000060b0433000007a706600197000000f80ca0021000000000066c019f000007a90660004100000000006b04350000000306a00210000000f8066000890000000b0a6001ef000000ff0660008c000000000a00201900000021068000390000000000a60435000008b20000013d000007a60780009c000001590000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba0435000001c10000613d000000f807900210000007a00c000041000000000909004b000000000c07c019000007a707b001970000000007c7019f00000000007a0435000000400a00043d000007a607a0009c000001590000213d0000000b0c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000b00000007001d000000800b70008c000009560000413d0000000b07000029000000800b700270000007a80c70009c000000000b07a019000007a80c70009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000a00000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000a07000029000000020c700039000000000cc90436000000210d700039000000050dd00272000007970000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b0000078f0000413d000000000700004b000007990000613d0000000007090433000000000707004b000001c10000613d00000000070c0433000007a7077001970000000a0d000029000000f80bd0021000000000077b019f000007a90770004100000000007c04350000000307d00210000000f8077000890000000b0b7001ef000000ff0770008c000000000b00201900000021079000390000000000b70435000009690000013d000000400800043d000700000008001d000000380870008c000007d60000413d00000020097002700000079b0870009c000000000907a0190000079b0870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000070a000029000007a60aa0009c000001590000213d000000000898019f000000070a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000002200350000000000202043b0000000000290435000001c10000613d000007a702200197000000f80a80021000000000022a019f000007ab022001c700000000002904350000000302800210000000f80220015f00000000022701cf000000070700002900000021077000390000000000270435000007e70000013d0000000708000029000007a60880009c000001590000213d00000007090000290000004008900039000000400080043f000000010800003a00000000088904360000000002200350000000000202043b0000000000280435000001c10000613d000000f807700210000007a702200197000000000272019f000007a0022001670000000000280435000000800260008a000000000621034f0000006002000039000000000606043b000000000606004b000008480000c13d000007a006000041000000000754004b00000000070000190000000007068019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c050000290000009f0000c13d00000009060000290000000006060433000000800700043d0000000b08000029000000000808043300000008090000290000000009090433000000070a000029000000000a0a04330000000005540019000000000451034f000000000404043b0000079f0b40009c0000009f0000213d000000000b4300490000002005500039000007a00c000041000000000db5004b000000000d000019000000000d0c2019000007a00bb00197000007a00e500197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000006760019000000000686001900000000069600190000000006a60019000000000646001900000000070204330000000006760019000000400700043d0000079f06600197000000380860008c00000a530000413d00000020096002700000079b0860009c000000000906a0190000079b0860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000931034f000000020380003a00000000033704360000000009900350000000000909043b0000000000930435000001c10000613d000007a709900197000000f80a80021000000000099a019f000007ad099001c700000000009304350000000303800210000000f80330015f00000000033601cf0000002106700039000000000036043500000a630000013d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400400043d000000000201043b000000800120008c00000a1a0000413d0000008001200270000007a80320009c000000000102a019000007a80320009c0000000003000019000000100300203900000008053001bf0000079f0610009c000000000503a01900000040031002700000079f0610009c000000000301a01900000004015001bf0000079b0630009c000000000105a01900000020063002700000079b0530009c000000000603a01900000002051001bf0000ffff0360008c000000000501a0190000001001600270000000000106a019000000ff0110008c000000010550203900000041015000390000000a0110017f0000000001140019000000000341004b000000000300001900000001030040390000079f0610009c000001590000213d0000000103300190000001590000c13d000000400010043f0000000201500039000000000614043600000001010003670000000003000031000000210750003900000005077002720000088d0000613d000000000831034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000008850000413d000000000700004b0000088f0000613d0000000007040433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c0000000002002019000000210540003900000a2d0000013d000007a60680009c000001590000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba0435000001c10000613d0000000b0d000029000000f806d00210000007a00c000041000000000d0d004b000000000c06c019000007a706b001970000000006c6019f00000000006a0435000000400600043d000000200a600039000000000b030433000000000c0b004b000008bf0000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000008b80000413d0000000003ab00190000000000030435000000000a040433000000000b0a004b000008cc0000613d000000000b000019000000000c3b0019000000200bb00039000000000d4b0019000000000d0d04330000000000dc0435000000000cab004b000008c50000413d00000000033a001900000000000304350000000004050433000000000a04004b000008d90000613d000000000a000019000000000b3a0019000000200aa00039000000000c5a0019000000000c0c04330000000000cb0435000000000b4a004b000008d20000413d000000000334001900000000000304350000000004070433000000000504004b000008e60000613d0000000005000019000000000a3500190000002005500039000000000b750019000000000b0b04330000000000ba0435000000000a45004b000008df0000413d000000000334001900000000000304350000000004090433000000000504004b000008f30000613d000000000500001900000000073500190000002005500039000000000a950019000000000a0a04330000000000a70435000000000745004b000008ec0000413d000000000334001900000000000304350000000004080433000000000504004b000009000000613d000000000500001900000000073500190000002005500039000000000985001900000000090904330000000000970435000000000745004b000008f90000413d000000000334001900000000000304350000000003630049000000200430008a00000000004604350000001f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000079f0570009c000001590000213d0000000104400190000001590000c13d000000400070043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000c6b0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000ce70000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a909000041000000000098043500000001080000390000000000870435000000000807001900000ce70000013d000007a60790009c000001590000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb0435000001c10000613d0000000b0e000029000000f807e00210000007a00d000041000000000e0e004b000000000d07c019000007a707c001970000000007d7019f00000000007b0435000000400700043d000000200b700039000000000c030433000000000d0c004b000009760000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b0000096f0000413d0000000003bc00190000000000030435000000000b040433000000000c0b004b000009830000613d000000000c000019000000000d3c0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dbc004b0000097c0000413d00000000033b001900000000000304350000000004050433000000000b04004b000009900000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b000009890000413d000000000334001900000000000304350000000004060433000000000504004b0000099d0000613d0000000005000019000000000b3500190000002005500039000000000c650019000000000c0c04330000000000cb0435000000000b45004b000009960000413d000000000334001900000000000304350000000004080433000000000504004b000009aa0000613d000000000500001900000000063500190000002005500039000000000b850019000000000b0b04330000000000b60435000000000645004b000009a30000413d0000000003340019000000000003043500000000040a0433000000000504004b000009b70000613d0000000005000019000000000635001900000020055000390000000008a5001900000000080804330000000000860435000000000645004b000009b00000413d000000000334001900000000000304350000000004090433000000000504004b000009c40000613d000000000500001900000000063500190000002005500039000000000895001900000000080804330000000000860435000000000645004b000009bd0000413d000000000334001900000000000304350000000003730049000000200430008a00000000004704350000001f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000079f0560009c000001590000213d0000000104400190000001590000c13d000000400060043f0000000d05000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000007a008000041000000000954004b00000000090000190000000009088019000007a005500197000007a00a400197000000000b5a004b000000000800801900000000055a013f000007a00550009c000000000809c019000000000508004b0000000c050000290000009f0000c13d0000000005540019000000000451034f000000000404043b0000079f0840009c0000009f0000213d00000000084200490000002005500039000007a009000041000000000a85004b000000000a000019000000000a092019000007a008800197000007a00b500197000000000c8b004b000000000900801900000000088b013f000007a00880009c00000000090ac019000000000809004b0000009f0000c13d000000010840008c00000cae0000c13d000000000851034f000000000808043b000000010900008a000007a00a000041000000000998004b000000000900001900000000090a2019000007a008800197000007a00b80009c000000000a008019000007a008800167000007a00880009c000000000a09c019000000600800003900000000090a004b00000d870000c13d000007a60860009c000001590000213d0000004008600039000000400080043f0000002008600039000007a909000041000000000098043500000001080000390000000000860435000000000806001900000d870000013d000007a60140009c000001590000213d0000004001400039000000400010043f000000010100003a000000000514043600000000030000310000000101000367000000000631034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807200210000007a008000041000000000202004b000000000807c019000007a702600197000000000282019f0000000000250435000000400200043d00000020052000390000000006040433000000000706004b00000a3b0000613d000000000700001900000000085700190000002007700039000000000947001900000000090904330000000000980435000000000867004b00000a340000413d0000000004560019000007c005000041000000000054043500000000042400490000001e0540008a000000000052043500000021044000390000000a0540017f0000000004250019000000000554004b000000000500001900000001050040390000079f0640009c000001590000213d0000000105500190000001590000c13d0000000d06000029000001c405600039000000400040043f000000000451034f0000000005630049000000230550008a000000000404043b000007ed0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000831034f000000010300003a00000000033704360000000008800350000000000808043b0000000000830435000001c10000613d000007a708800197000000f806600210000000000686019f000007ac066000410000000000630435000000400300043d00000020063000390000000008070433000000000908004b00000a700000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00000a690000413d00000000076800190000000000070435000000800800043d000000000908004b00000a7d0000613d0000000009000019000000000a790019000000a00b900039000000000b0b04330000000000ba04350000002009900039000000000a89004b00000a760000413d00000000077800190000000000070435000000090c00002900000000080c0433000000000908004b00000a8b0000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a840000413d000000000778001900000000000704350000000b0c00002900000000080c0433000000000908004b00000a990000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000a920000413d00000000077800190000000000070435000000080c00002900000000080c0433000000000908004b00000aa70000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aa00000413d00000000077800190000000000070435000000070c00002900000000080c0433000000000908004b00000ab50000613d0000000009000019000000000a7900190000002009900039000000000bc90019000000000b0b04330000000000ba0435000000000a89004b00000aae0000413d000000000551034f00000000017800190000001f0740018f0000000000010435000000050840027200000ac40000613d0000000009000019000000050a900210000000000ba10019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00000abc0000413d000000000907004b00000ad30000613d0000000508800210000000000585034f00000000088100190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f0000000000580435000000000141001900000000000104350000000004020433000000000504004b00000ae00000613d000000000500001900000000071500190000002005500039000000000825001900000000080804330000000000870435000000000745004b00000ad90000413d000000000114001900000000000104350000000001310049000000200210008a00000000002304350000001f011000390000000a0210017f0000000001320019000000000221004b000000000200001900000001020040390000079f0410009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0260009c0000000006018019000000400260021000000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000000c030000290000000d020000290000009f0000613d000d00000002001d0000000102000367000c00000003001d000000000332034f000000000101043b000b00000001001d000000000103043b000000710310008c00000d220000c13d0000000c09000029000001e001900039000000000312034f00000000010000310000000d0410006a000000230440008a000000000303043b000007a005000041000000000643004b00000000060000190000000006058019000007a004400197000007a007300197000000000847004b0000000005008019000000000447013f000007a00440009c000000000506c019000000000405004b0000009f0000c13d0000000003930019000000000232034f000000000202043b0000079f0420009c0000009f0000213d00000000042100490000002001300039000007a003000041000000000541004b00000000050000190000000005032019000007a004400197000007a006100197000000000746004b0000000003008019000000000446013f000007a00440009c000000000305c019000000000303004b0000009f0000c13d1e681dc60000040f000000400200043d00000040032000390000000000130435000000400100003900000000011204360000000b030000290000000000310435000007c50320009c000001590000213d0000006003200039000000400030043f0000079b030000410000079b0410009c0000000001038019000000400110021000000000020204330000079b0420009c00000000020380190000006002200210000000000112019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000000400200043d00000020032000390000000b04000029000000000043043500000000001204350000079b010000410000079b0320009c00000000020180190000004001200210000007c6011001c700001e690001042e0000079b01100197000000000113034f00000000025200490000079b0220019700000000012103df000000c002400210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b04300197000000010220019000000c930000613d0000003f02400039000007b302200197000000400500043d0000000002250019000000000352004b000000000300001900000001030040390000079f0620009c000001590000213d0000000103300190000001590000c13d000000400020043f000000000245043600000001030003670000001f06400039000000050660027200000b8c0000613d000000000730036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b00000b840000413d000000000600004b00000b8e0000613d0000001f0640018f000000050440027200000b9a0000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000847004b00000b920000413d000000000706004b00000ba90000613d0000000504400210000000000141034f00000000044200190000000306600210000000000704043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001404350000000001050433000000200110008c00000c590000c13d0000000d0b0000290000006401b00039000000000113034f0000004404b00039000000000543034f0000002404b00039000000000443034f0000012406b00039000000000663034f0000010407b00039000000000773034f000000e408b00039000000000883034f000000c409b00039000000000993034f000000a40ab00039000000000aa3034f000000840bb00039000000000bb3034f0000000c03300360000000000303043b000000000404043b000000000505043b000000000c01043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b000000000606043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a0021000390000000b0d0000290000000000d2043500000180021000390000000a0d0000290000000000d2043500000160021000390000000000620435000001400210003900000000007204350000012002100039000000000082043500000100021000390000000000920435000000e0021000390000000000a20435000000c0021000390000000000b20435000000a0021000390000000000c204350000008002100039000000000052043500000060021000390000000000420435000000400210003900000000003204350000002002100039000007b7030000410000000000320435000001c0030000390000000000310435000007b80310009c000001590000213d000001e003100039000000400030043f0000079b040000410000079b0320009c0000000002048019000000400220021000000000010104330000079b0310009c00000000010480190000006001100210000000000121019f00000000020004140000079b0320009c0000000002048019000000c002200210000000000112019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b000a00000001001d000000400100043d000b00000001001d000007a401000041000000000010043900000000010004140000079b0210009c0000079b01008041000000c001100210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d0000000b040000290000002002400039000000000101043b000007b9030000410000000000320435000000800340003900000000001304350000006001400039000007ba0300004100000000003104350000004001400039000007bb03000041000000000031043500000080010000390000000000140435000007bc0140009c000001590000213d0000000b04000029000000a001400039000000400010043f0000079b010000410000079b0320009c0000000002018019000000400220021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000301043b000000400100043d00000042021000390000000a0400002900000000004204350000002002100039000007bd0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000007be0310009c000001590000213d0000008003100039000000400030043f0000079b030000410000079b0420009c0000000002038019000000400220021000000000010104330000079b0410009c00000000010380190000006001100210000000000121019f00000000020004140000079b0420009c0000000002038019000000c002200210000000000112019f00000afe0000013d000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000380840008c00000cd60000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a70009c000001590000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021097000390000000000890435000000000807001900000ce70000013d0000001f0340018f000000050240027200000c9e0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000c970000413d000000000503004b00000cac0000613d00000003033002100000000502200210000000000502043300000000053501cf000000000535022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000600140021000001e6a00010430000000380840008c00000d760000413d00000020094002700000079b0840009c000000000904a0190000079b0840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000007a60a60009c000001590000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000007a70aa00197000000f80b800210000000000aab019f000007ab0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf00000021096000390000000000890435000000000806001900000d870000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008070019000000400700043d000007a60970009c000001590000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000e1e0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000e2b0000013d000000000301004b00000dc20000c13d000000400100043d000a00000001001d0000000c010000290000010004100039000000000142034f000000000301043b000000800130008c00000e900000413d0000008001300270000007a80530009c000000000103a019000007a80530009c0000000005000019000000100500203900000008065001bf0000079f0710009c000000000605a01900000040051002700000079f0710009c000000000501a01900000004016001bf0000079b0750009c000000000106a01900000020065002700000079b0750009c000000000605a01900000002051001bf0000ffff0760008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004106500039000000000116016f0000000a011000290000000a0610006c000000000600001900000001060040390000079f0710009c000001590000213d0000000106600190000001590000c13d000000400010043f00000002015000390000000a06000029000000000616043600000000010000310000002107500039000000050770027200000d620000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000d5a0000413d000000000700004b00000d640000613d0000000a070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000000a05000029000000210550003900000ea40000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a400210000007a7099001970000000009a9019f000007a00990016700000000009804350000000008060019000000400600043d000007a60960009c000001590000213d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b90435000001c10000613d000007a702b00197000007ac0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000079f09900197000000380d90008c00000f4d0000413d000000200d9002700000079b0c90009c000000000d09a0190000079b0c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000007a60ea0009c000001590000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba0435000001c10000613d000000f80bc0021000000000022b019f000007ad022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a00039000000000029043500000f5a0000013d000000020210008c00000ef10000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c00000fd00000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000e0c0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000e040000413d000000000700004b00000e0e0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000210530003900000fe30000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007ae0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000e3b0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000e340000413d000000000abc001900000000000a0435000000000b060433000000000c0b004b00000e480000613d000000000c000019000000000dac0019000000200cc00039000000000e6c0019000000000e0e04330000000000ed0435000000000dbc004b00000e410000413d0000000006ab00190000000000060435000000000a080433000000000b0a004b00000e550000613d000000000b000019000000000c6b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000e4e0000413d000000000551034f00000000016a00190000001f0640018f0000000000010435000000050840027200000e640000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000e5c0000413d000000000a06004b00000e730000613d0000000508800210000000000585034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004070433000000000504004b00000e800000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00000e790000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d000000010330019000000fbe0000613d000001590000013d0000000a01000029000007a60110009c000001590000213d0000000a050000290000004001500039000000400010043f000000010100003a00000000051504360000000001000031000000000612034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807300210000007a008000041000000000303004b000000000807c019000007a703600197000000000383019f0000000000350435000000400300043d000000600440008a000000000542034f000000000505043b000000800650008c000010310000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007730019000000000837004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f000000020760003900000000077304360000002108600039000000050880027200000edf0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ed70000413d000000000800004b00000ee10000613d0000000008030433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106300039000010420000013d000000010110008c00000fc90000c13d0000000001000415000a00000001001d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000400300043d000000000401043b000000800140008c0000108f0000413d0000008001400270000007a80240009c000000000104a019000007a80240009c0000000002000019000000100200203900000008052001bf0000079f0610009c000000000502a01900000040021002700000079f0610009c000000000201a01900000004015001bf0000079b0620009c000000000105a01900000020062002700000079b0520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000079f0610009c000001590000213d0000000102200190000001590000c13d000000400010043f00000002015000390000000006130436000000010100036700000000020000310000002107500039000000050770027200000f3b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f330000413d000000000700004b00000f3d0000613d0000000007030433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000010a20000013d000007a60da0009c000001590000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b000001c10000613d000000f809900210000000000229019f000007ac0220004100000000002d0435000000400200043d0000002009200039000007af0b0000410000000000b90435000000210b200039000000000c0a0433000000000d0c004b00000f6a0000613d000000000d000019000000000ebd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ecd004b00000f630000413d000000000abc001900000000000a0435000000000b070433000000000c0b004b00000f770000613d000000000c000019000000000dac0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dbc004b00000f700000413d0000000007ab00190000000000070435000000000a080433000000000b0a004b00000f840000613d000000000b000019000000000c7b0019000000200bb00039000000000d8b0019000000000d0d04330000000000dc0435000000000cab004b00000f7d0000413d000000000551034f00000000017a00190000001f0740018f0000000000010435000000050840027200000f930000613d000000000a000019000000050ba00210000000000cb10019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000f8b0000413d000000000a07004b00000fa20000613d0000000508800210000000000585034f00000000088100190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f0000000000580435000000000141001900000000000104350000000004060433000000000504004b00000faf0000613d000000000500001900000000071500190000002005500039000000000865001900000000080804330000000000870435000000000745004b00000fa80000413d000000000114001900000000000104350000000001210049000000200410008a00000000004204350000001f01100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000079f0410009c000001590000213d0000000103300190000001590000c13d000000400010043f0000079b010000410000079b0390009c0000000009018019000000400390021000000000020204330000079b0420009c00000000020180190000006002200210000000000232019f00000af90000013d000000400100043d0000004402100039000007c10300004100000000003204350000002402100039000000130300003900000c5f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000010f00000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f00000002087000390000000008850436000000210970003900000005099002720000101f0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010170000413d000000000900004b000010210000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000011010000013d000007a60630009c000001590000213d0000004006300039000000400060043f000000000712034f000000010600003a00000000066304360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400440008a000000000542034f000000400400043d000000000505043b000000800650008c0000114e0000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000107d0000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000010750000413d000000000800004b0000107f0000613d0000000008040433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000021064000390000115f0000013d000007a60130009c000001590000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000101000367000000000621034f0000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f0000000000450435000000400500043d0000000d040000290000010404400039000000000641034f000000000606043b000000800760008c000011ef0000413d0000008007600270000007a80860009c000000000706a019000007a80860009c0000000008000019000000100800203900000008098001bf0000079f0a70009c000000000908a01900000040087002700000079f0a70009c000000000807a019000000040a9001bf0000079b0780009c000000000a09a01900000020098002700000079b0780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008850019000000000958004b000000000900001900000001090040390000079f0a80009c000001590000213d0000000109900190000001590000c13d000000400080043f0000000208700039000000000885043600000021097000390000000509900272000010de0000613d000000000a21034f000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b000010d60000413d000000000900004b000010e00000613d0000000009050433000000000909004b000001c10000613d0000000009080433000007a709900197000000f80a70021000000000099a019f000007a90990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107500039000012000000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000400440008a000000000741034f000000000707043b000000800870008c0000124d0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000113c0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000011340000413d000000000a00004b0000113e0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c000000000700201900000021086000390000125e0000013d000007a60640009c000001590000213d0000004006400039000000400060043f000000000712034f000000010600003a00000000066404360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400500043d000900000005001d00000020055000390000000006030433000000000706004b0000116e0000613d000000000700001900000000085700190000002007700039000000000937001900000000090904330000000000980435000000000867004b000011670000413d000000000356001900000000000304350000000005040433000000000605004b0000117b0000613d000000000600001900000000073600190000002006600039000000000846001900000000080804330000000000870435000000000756004b000011740000413d0000000003350019000000000003043500000009050000290000000003530049000000200430008a00000000004504350000001f033000390007002000000092000000070330017f0000000004530019000000000334004b00000000030000190000000103004039000800000004001d0000079f0440009c000001590000213d0000000103300190000001590000c13d0000000803000029000000400030043f000007a60330009c000001590000213d0000000d060000290000004403600039000000000332034f000000000303043b00000008070000290000004004700039000000400040043f0000002004700039000007aa050000410000000000540435000000150400003900000000004704350000006003300210000000210470003900000000003404350000012403600039000000000432034f000000400500043d000600000005001d000000000404043b000000800540008c000013090000413d0000008005400270000007a80640009c000000000504a019000007a80640009c0000000006000019000000100600203900000008076001bf0000079f0850009c000000000706a01900000040065002700000079f0850009c000000000605a01900000004087001bf0000079b0560009c000000000807a01900000020076002700000079b0560009c000000000706a01900000002058001bf0000ffff0670008c000000000508a0190000001006700270000000000607a019000000ff0660008c00000001055020390000004106500039000000070660017f0000000606600029000000060760006c000000000700001900000001070040390000079f0860009c000001590000213d0000000107700190000001590000c13d000000400060043f00000002065000390000000607000029000000000667043600000021075000390000000507700272000011db0000613d000000000812034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000011d30000413d000000000700004b000011dd0000613d00000006070000290000000007070433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c0000000004002019000000060500002900000021055000390000131c0000013d000007a60750009c000001590000213d0000004007500039000000400070043f000000000821034f000000010700003a00000000077504360000000008800350000000000808043b0000000000870435000001c10000613d000000f809600210000007a00a000041000000000606004b000000000a09c019000007a7068001970000000006a6019f0000000000670435000000400600043d000000600440008a000000000741034f000000000707043b000000800870008c000012ab0000413d0000008008700270000007a80970009c000000000807a019000007a80970009c00000000090000190000001009002039000000080a9001bf0000079f0b80009c000000000a09a01900000040098002700000079f0b80009c000000000908a019000000040ba001bf0000079b0890009c000000000b0aa019000000200a9002700000079b0890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009960019000000000a69004b000000000a000019000000010a0040390000079f0b90009c000001590000213d000000010aa00190000001590000c13d000000400090043f00000002098000390000000009960436000000210a800039000000050aa002720000123b0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000012330000413d000000000a00004b0000123d0000613d000000000a060433000000000a0a004b000001c10000613d000000000a090433000007a70aa00197000000f80b800210000000000aab019f000007a90aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c00000000070020190000002108600039000012bc0000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000200440008a000000000841034f000000000808043b000000800980008c000013630000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012990000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012910000413d000000000b00004b0000129b0000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013740000013d000007a60860009c000001590000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b0000000000980435000001c10000613d000000f80a700210000007a00b000041000000000707004b000000000b0ac019000007a7079001970000000007b7019f0000000000780435000000400700043d000000400440008a000000000841034f000000000808043b000000800980008c000013c20000413d0000008009800270000007a80a80009c000000000908a019000007a80a80009c000000000a000019000000100a002039000000080ba001bf0000079f0c90009c000000000b0aa019000000400a9002700000079f0c90009c000000000a09a019000000040cb001bf0000079b09a0009c000000000c0ba019000000200ba002700000079b09a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000079f0ca0009c000001590000213d000000010bb00190000001590000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb00272000012f70000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000012ef0000413d000000000b00004b000012f90000613d000000000b070433000000000b0b004b000001c10000613d000000000b0a0433000007a70bb00197000000f80c900210000000000bbc019f000007a90bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c00000000080020190000002109700039000013d30000013d0000000605000029000007a60550009c000001590000213d00000006070000290000004005700039000000400050043f000000000612034f000000010500003a00000000055704360000000006600350000000000606043b0000000000650435000001c10000613d000000f807400210000007a008000041000000000404004b000000000807c019000007a704600197000000000484019f00000000004504350000000c0a0000290000000006a10049000000a004300039000000000342034f000000000503043b0000001f0360008a000007a006300197000007a007500197000007a008000041000000000967004b00000000090000190000000009084019000000000667013f000000000735004b0000000008004019000007a00660009c000000000908c019000000000609004b0000009f0000c13d0000000006a50019000000000562034f000000000505043b0000079f0750009c0000009f0000213d00000000075100490000002006600039000007a008000041000000000976004b00000000090000190000000009082019000007a007700197000007a00a600197000000000b7a004b000000000800801900000000077a013f000007a00770009c000000000809c019000000000708004b0000009f0000c13d000000010750008c000015600000c13d000000000562034f000000000505043b000000010600008a000007a007000041000000000665004b00000000060000190000000006072019000007a005500197000007a00850009c0000000007008019000007a005500167000007a00550009c000000000706c019000500600000003d000000000507004b000016630000c13d000000400500043d000500000005001d000007a60550009c000001590000213d00000005070000290000004005700039000000400050043f0000002005700039000007a906000041000000000065043500000001050000390000000000570435000016630000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400800043d00090040004000920000000909100360000000000909043b000000800a90008c000014330000413d000000800a900270000007a80b90009c000000000a09a019000007a80b90009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000013af0000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000013a70000413d000000000400004b000013b10000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f80440008900000000094901cf000000ff0440008c000000000900201900000021048000390000000000940435000014450000013d000007a60970009c000001590000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a90435000001c10000613d000000f80b800210000007a00c000041000000000808004b000000000c0bc019000007a708a001970000000008c8019f0000000000890435000000400900043d000007a60890009c000001590000213d000000200840008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000007aa0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c004400039000000000441034f000000400800043d000000000404043b000900000004001d000000800a40008c000014a80000413d0000000904000029000000800a400270000007a80b40009c000000000a04a019000007a80b40009c000000000b000019000000100b002039000000080cb001bf0000079f0da0009c000000000c0ba019000000400ba002700000079f0da0009c000000000b0aa019000000040dc001bf0000079b0ab0009c000000000d0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000079f0db0009c000001590000213d000000010cc00190000001590000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc00272000014200000613d000000000d21034f000000000e000019000000050fe002100000000004fb0019000000000ffd034f000000000f0f043b0000000000f40435000000010ee000390000000004ce004b000014180000413d000000000400004b000014220000613d0000000004080433000000000404004b000001c10000613d00000000040b0433000007a704400197000000f80ca0021000000000044c019f000007a90440004100000000004b04350000000304a00210000000f804400089000000090a4001ef000000ff0440008c000000000a00201900000021048000390000000000a40435000014bb0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000f804900210000007a00c000041000000000909004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400a00043d000007a604a0009c000001590000213d000000090c0000290000002004c0008a000000000441034f000000000404043b0000004009a00039000000400090043f0000002009a00039000007aa0b0000410000000000b90435000000150900003900000000009a043500000060044002100000002109a000390000000000490435000000c004c00039000000000441034f000000400900043d000000000404043b000900000004001d000000800b40008c0000158c0000413d0000000904000029000000800b400270000007a80c40009c000000000b04a019000007a80c40009c000000000c000019000000100c002039000000080dc001bf0000079f0eb0009c000000000d0ca019000000400cb002700000079f0eb0009c000000000c0ba019000000040ed001bf0000079b0bc0009c000000000e0da019000000200dc002700000079b0bc0009c000000000d0ca0190000000204e001bf0000ffff0cd0008c00000000040ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000104402039000000200c00008a000800000004001d000000410d400039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000079f0ec0009c000001590000213d000000010dd00190000001590000c13d0000004000c0043f0000000804000029000000020c400039000000000cc90436000000210d400039000000050dd00272000014940000613d000000000e21034f000000000f0000190000000504f00210000000000b4c001900000000044e034f000000000404043b00000000004b0435000000010ff000390000000004df004b0000148c0000413d000000000400004b000014960000613d0000000004090433000000000404004b000001c10000613d00000000040c0433000007a704400197000000080d000029000000f80bd0021000000000044b019f000007a90440004100000000004c04350000000304d00210000000f804400089000000090b4001ef000000ff0440008c000000000b00201900000021049000390000000000b404350000159f0000013d000007a60480009c000001590000213d0000004004800039000000400040043f000000000421034f000000010a00003a000000000aa804360000000004400350000000000b04043b0000000000ba0435000001c10000613d000000090d000029000000f804d00210000007a00c000041000000000d0d004b000000000c04c019000007a704b001970000000004c4019f00000000004a0435000000400400043d000000200a400039000000000b030433000000000c0b004b000014c80000613d000000000c000019000000000dac0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dbc004b000014c10000413d0000000003ab00190000000000030435000000000a050433000000000b0a004b000014d50000613d000000000b000019000000000c3b0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000cab004b000014ce0000413d00000000033a001900000000000304350000000005060433000000000a05004b000014e20000613d000000000a000019000000000b3a0019000000200aa00039000000000c6a0019000000000c0c04330000000000cb0435000000000b5a004b000014db0000413d000000000335001900000000000304350000000005070433000000000605004b000014ef0000613d0000000006000019000000000a3600190000002006600039000000000b760019000000000b0b04330000000000ba0435000000000a56004b000014e80000413d000000000335001900000000000304350000000005090433000000000605004b000014fc0000613d000000000600001900000000073600190000002006600039000000000a960019000000000a0a04330000000000a70435000000000756004b000014f50000413d000000000335001900000000000304350000000005080433000000000605004b000015090000613d000000000600001900000000073600190000002006600039000000000986001900000000090904330000000000970435000000000756004b000015020000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c0000173d0000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000179e0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000179e0000013d000000400600043d000500000006001d000000380650008c000016510000413d00000020075002700000079b0650009c000000000705a0190000079b0650009c0000000008000019000000040800203900000002068001bf0000ffff0970008c000000000608a0190000001008700270000000000807a019000000ff0780008c000000000700001900000001070020390000000508000029000007a60880009c000001590000213d000000000676019f00000005090000290000004007900039000000400070043f000000000812034f000000020760003a00000000077904360000000008800350000000000808043b0000000000870435000001c10000613d000007a708800197000000f809600210000000000889019f000007ab088001c700000000008704350000000306600210000000f80660015f00000000056501cf000000050600002900000021066000390000000000560435000016630000013d000007a60490009c000001590000213d0000004004900039000000400040043f000000000421034f000000010b00003a000000000bb904360000000004400350000000000c04043b0000000000cb0435000001c10000613d000000090e000029000000f804e00210000007a00d000041000000000e0e004b000000000d04c019000007a704c001970000000004d4019f00000000004b0435000000400400043d000000200b400039000000000c030433000000000d0c004b000015ac0000613d000000000d000019000000000ebd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ecd004b000015a50000413d0000000003bc00190000000000030435000000000b050433000000000c0b004b000015b90000613d000000000c000019000000000d3c0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000dbc004b000015b20000413d00000000033b001900000000000304350000000005060433000000000b05004b000015c60000613d000000000b000019000000000c3b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c5b004b000015bf0000413d000000000335001900000000000304350000000005070433000000000605004b000015d30000613d0000000006000019000000000b3600190000002006600039000000000c760019000000000c0c04330000000000cb0435000000000b56004b000015cc0000413d000000000335001900000000000304350000000005080433000000000605004b000015e00000613d000000000600001900000000073600190000002006600039000000000b860019000000000b0b04330000000000b70435000000000756004b000015d90000413d0000000003350019000000000003043500000000050a0433000000000605004b000015ed0000613d0000000006000019000000000736001900000020066000390000000008a6001900000000080804330000000000870435000000000756004b000015e60000413d000000000335001900000000000304350000000005090433000000000605004b000015fa0000613d000000000600001900000000073600190000002006600039000000000896001900000000080804330000000000870435000000000756004b000015f30000413d000000000335001900000000000304350000000003430049000000200530008a00000000005404350000001f05300039000000200300008a000000000535016f0000000007450019000000000557004b000000000500001900000001050040390000079f0670009c000001590000213d0000000105500190000001590000c13d000000400070043f0000000c0d0000290000000006d200490000000d05000029000001c40c5000390000000005c1034f000000000505043b0000001f0960008a000007a006900197000007a008500197000007a00a000041000000000b68004b000000000b000019000000000b0a4019000000000668013f000000000895004b000000000a004019000007a00660009c000000000b0ac01900000000060b004b0000009f0000c13d0000000006d50019000000000561034f000000000505043b0000079f0850009c0000009f0000213d00000000085200490000002006600039000007a00a000041000000000b86004b000000000b000019000000000b0a2019000007a008800197000d00000006001d000007a00d600197000000000e8d004b000000000a00801900000000088d013f000007a00880009c000000000a0bc01900000000080a004b0000009f0000c13d000000010850008c000017650000c13d0000000d08100360000000000808043b000000010a00008a000007a00b000041000000000aa8004b000000000a000019000000000a0b2019000007a008800197000007a00d80009c000000000b008019000007a008800167000007a00880009c000000000b0ac0190000006008000039000000000a0b004b0000187d0000c13d000007a60870009c000001590000213d0000004008700039000000400080043f0000002008700039000007a90a0000410000000000a804350000000108000039000000000087043500000000080700190000187d0000013d0000000506000029000007a60660009c000001590000213d00000005080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f805500210000007a707700197000000000557019f000007a00550016700000000005604350000002004400039000000000442034f000000000404043b000007a005000041000000000634004b00000000060000190000000006058019000007a003300197000007a007400197000000000837004b0000000005008019000000000337013f000007a00330009c000000000506c019000000000305004b0000000c030000290000009f0000c13d0000000004340019000000000342034f000000000303043b0000079f0530009c0000009f0000213d000000200530008c0000009f0000413d00000000053100490000002004400039000007a006000041000000000754004b00000000070000190000000007062019000007a005500197000007a008400197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000009f0000c13d000000000542034f000000400600043d000400000006001d000000000505043b000000800650008c000016d80000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000407700029000000040870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000408000029000000000778043600000021086000390000000508800272000016c40000613d000000000912034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000016bc0000413d000000000800004b000016c60000613d00000004080000290000000008080433000000000808004b000001c10000613d0000000008070433000007a708800197000000f809600210000000000889019f000007a90880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c000000000500201900000004060000290000002106600039000016eb0000013d0000000406000029000007a60660009c000001590000213d00000004080000290000004006800039000000400060043f000000000712034f000000010600003a00000000066804360000000007700350000000000707043b0000000000760435000001c10000613d000000f808500210000007a009000041000000000505004b000000000908c019000007a705700197000000000595019f0000000000560435000000400530008c0000009f0000413d000000400500043d000300000005001d0000002004400039000000000542034f000000000505043b000000800650008c000018290000413d0000008006500270000007a80750009c000000000605a019000007a80750009c0000000007000019000000100700203900000008087001bf0000079f0960009c000000000807a01900000040076002700000079f0960009c000000000706a01900000004098001bf0000079b0670009c000000000908a01900000020087002700000079b0670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000070770017f0000000307700029000000030870006c000000000800001900000001080040390000079f0970009c000001590000213d0000000108800190000001590000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000017290000613d000000000112034f0000000009000019000000050a900210000000000ba70019000000000aa1034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000017210000413d000000000100004b0000172b0000613d00000003010000290000000001010433000000000101004b000001c10000613d0000000001070433000007a701100197000000f808600210000000000118019f000007a90110004100000000001704350000000301600210000000f80110008900000000051501cf000000ff0110008c0000000005002019000000030100002900000021011000390000183c0000013d000000380850008c0000178d0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000179e0000013d000000380850008c0000186c0000413d000000200a5002700000079b0850009c000000000a05a0190000079b0850009c000000000b000019000000040b0020390000000208b001bf0000ffff0da0008c00000000080ba019000000100ba00270000000000b0aa019000000ff0ab0008c000000000a000019000000010a002039000007a60b70009c000001590000213d0000000008a8019f000000400a7000390000004000a0043f000000000b21034f000000020a80003a000000000aa70436000000000bb00350000000000b0b043b0000000000ba0435000001c10000613d000007a70bb00197000000f80d800210000000000bbd019f000007ab0bb001c70000000000ba04350000000308800210000000f80880015f00000000088501cf000000210a70003900000000008a043500000000080700190000187d0000013d000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000700000006001d000000000f6704360000000006d003500008000000060353000000000606043b000900000006001d00000000006f0435000001c10000613d0000000906000029000007a706600197000600000006001d000007ac0b6001c70000000000bf0435000000200bc00039000000000bb1034f000000000c0b043b000007a00b000041000000000f9c004b000000000f000019000000000f0b8019000007a009900197000007a00ec00197000000000a9e004b000000000b00801900000000099e013f000007a00990009c000000000b0fc01900000000090b004b0000000c060000290000009f0000c13d00000000096c0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000c2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000500000006001d000000800a60008c000000200f200039000019080000413d0000000506000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0ea0009c000000000c0ba019000000400ba002700000079f0ea0009c000000000b0aa019000000040ec001bf0000079b0ab0009c000000000e0ca019000000200cb002700000079b0ab0009c000000000c0ba019000000020ae001bf0000ffff0bc0008c000000000a0ea019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000410ba00039000000000b3b016f000000000cb20019000000000b2c004b000000000e000019000000010e0040390000079f0bc0009c000001590000213d000000010be00190000001590000c13d0000004000c0043f000000020ba000390000000000b20435000000210ba00039000000050eb00272000018160000613d000000000c000019000000050bc002100000000009bf0019000000000bbd034f000000000b0b043b0000000000b90435000000010cc000390000000009ec004b0000180e0000413d000000000600004b000018180000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ba0021000000000099b019f000007a90990004100000000009f04350000000309a00210000000f809900089000000050a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019190000013d0000000306000029000007a60660009c000001590000213d00000003070000290000004006700039000000400060043f000000000612034f000000010100003a00000000011704360000000006600350000000000606043b0000000000610435000001c10000613d000000f807500210000007a008000041000000000505004b000000000807c019000007a705600197000000000585019f0000000000510435000000410130008c000001c10000413d0000002001400039000000000112034f000000000101043b000000f801100270000200000001001d0000001b0110008a000000020110008c00001d060000813d0000000d01000029000101440010003d0000000101200360000000000101043b000000000101004b00001a920000613d000007a40100004100000000001004390000079b0100004100000000020004140000079b0320009c0000000002018019000000c001200210000007a5011001c70000800b020000391e681e5e0000040f00000001022001900000186b0000613d000000000201043b0000000101200210000000000302004b000018630000613d000000090300008a000000000331004b000018670000213d00000000322100d9000000020220008c000018670000c13d00000002011000290000000803100039000000020130006c0000196e0000813d000007c30100004100000000001004350000001101000039000001c40000013d000000000001042f000007a60870009c000001590000213d0000004008700039000000400080043f000000000a21034f000000010800003a0000000008870436000000000aa00350000000000a0a043b0000000000a80435000001c10000613d000000f80b500210000007a70aa00197000000000aba019f000007a00aa001670000000000a804350000000008070019000000400700043d000007a60a70009c000001590000213d000000400a7000390000004000a0043f000000000d21034f000000010600003a000900000006001d000000000a6704360000000006d003500007000000060353000000000606043b000800000006001d00000000006a0435000001c10000613d0000000806000029000007a706600197000500000006001d000007ac0f6001c70000000000fa0435000000200ac00039000000000aa1034f000000000a0a043b000007a00c000041000000000f9a004b000000000f000019000000000f0c8019000007a009900197000007a00ea00197000000000b9e004b000000000c00801900000000099e013f000007a00990009c000000000c0fc01900000000090c004b0000000c060000290000009f0000c13d00000000096a0019000000000a91034f00000000060a043b000c00000006001d0000079f0a60009c0000009f0000213d0000000c06000029000000200a60008c0000009f0000413d0000000c0220006a0000002006900039000007a009000041000000000a26004b000000000a000019000000000a092019000007a002200197000400000006001d000007a00b600197000000000e2b004b000000000900801900000000022b013f000007a00220009c00000000090ac019000000000209004b0000009f0000c13d0000000409100360000000400200043d000000000609043b000600000006001d000000800a60008c000000200f200039000019ba0000413d0000000606000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080eb001bf0000079f0ca0009c000000000e0ba019000000400ba002700000079f0ca0009c000000000b0aa019000000040ae001bf0000079b0cb0009c000000000a0ea019000000200cb002700000079b0eb0009c000000000c0ba019000000020ba001bf0000ffff0ec0008c000000000b0aa019000000100ac00270000000000a0ca019000000ff0aa0008c000000010bb02039000000410ab00039000000000a3a016f000000000aa20019000000000c2a004b000000000e000019000000010e0040390000079f0ca0009c000001590000213d000000010ce00190000001590000c13d0000004000a0043f000000020ab000390000000000a20435000000210ab00039000000050aa00272000018f50000613d000000000e000019000000050ce002100000000009cf0019000000000ccd034f000000000c0c043b0000000000c90435000000010ee000390000000009ae004b000018ed0000413d000000000600004b000018f70000613d0000000009020433000000000909004b000001c10000613d00000000090f0433000007a709900197000000f80ab0021000000000099a019f000007a90990004100000000009f04350000000309b00210000000f809900089000000060a9001ef000000ff0990008c000000000a00201900000021092000390000000000a90435000019cb0000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000090600002900000000006f043500000007060000290000000000620435000000000906004b000001c10000613d0000000506000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000609a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000900000006001d000000800a60008c000000200e90003900001a200000413d0000000906000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040fc001bf0000079b0ab0009c000000000f0ca019000000200cb002700000079b0ab0009c000000000c0ba0190000000206f001bf0000ffff0bc0008c00000000060fa019000000100bc00270000000000b0ca019000000ff0bb0008c0000000106602039000600000006001d000000410b600039000000000b3b016f000000000cb90019000000000b9c004b000000000f000019000000010f0040390000079f0bc0009c000001590000213d000000010bf00190000001590000c13d0000004000c0043f0000000606000029000000020b6000390000000000b90435000000210b600039000000050cb002720000195a0000613d000000000f000019000000050bf00210000000000abe0019000000000bbd034f000000000b0b043b0000000000ba0435000000010ff00039000000000acf004b000019520000413d000000000600004b0000195c0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000090ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001a330000013d000000800130008c000200000003001d00001a920000413d0000008001300270000007a80230009c000000000103a019000007a80230009c0000000002000019000000100200203900000008042001bf0000079f0510009c000000000402a01900000040021002700000079f0510009c000000000201a01900000004014001bf0000079b0520009c000000000104a01900000020042002700000079b0520009c000000000402a01900000002051001bf0000ffff0240008c000000000501a0190000001001400270000000000104a019000000ff0110008c00000001055020390000004101500039000000070210017f000000400100043d0000000002210019000000000412004b000000000400001900000001040040390000079f0620009c000001590000213d0000000104400190000001590000c13d000000400020043f000000020250003900000000062104360000000102000367000000000400003100000021075000390000000507700272000019a70000613d000000000842034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000199f0000413d000000000700004b000019a90000613d0000000007010433000000000707004b000001c10000613d0000000007060433000007a707700197000000f808500210000000000778019f000007a90770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105100039000000000035043500001aa80000013d000007a60920009c000001590000213d0000004009200039000000400090043f000000080600002900000000006f043500000009060000290000000000620435000000000906004b000001c10000613d0000000606000029000000f809600210000007a00a000041000000000b06004b000000000a09c0190000000509a001af00000000009f04350000000c06000029000000400960008c0000009f0000413d000000400900043d0000000406000029000500200060003d000000050a10036000000000060a043b000800000006001d000000800a60008c000000200e90003900001b110000413d0000000806000029000000800a600270000007a80b60009c000000000a06a019000007a80b60009c000000000b000019000000100b002039000000080cb001bf0000079f0fa0009c000000000c0ba019000000400ba002700000079f0fa0009c000000000b0aa019000000040ac001bf0000079b0fb0009c000000000a0ca019000000200cb002700000079b0fb0009c000000000c0ba0190000000206a001bf0000ffff0fc0008c00000000060aa019000000100ac00270000000000a0ca019000000ff0aa0008c0000000106602039000600000006001d000000410a600039000000000a3a016f000000000aa90019000000000c9a004b000000000c000019000000010c0040390000079f0fa0009c000001590000213d000000010cc00190000001590000c13d0000004000a0043f0000000606000029000000020a6000390000000000a90435000000210a600039000000050aa0027200001a0c0000613d000000000c000019000000050fc00210000000000bfe0019000000000ffd034f000000000f0f043b0000000000fb0435000000010cc00039000000000bac004b00001a040000413d000000000600004b00001a0e0000613d000000000a090433000000000a0a004b000001c10000613d000000000a0e0433000007a70aa001970000000606000029000000f80b600210000000000aab019f000007a90aa000410000000000ae0435000000030a600210000000f80aa00089000000080ba001ef000000ff0aa0008c000000000b002019000000210a9000390000000000ba043500001b240000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f000000070b0000290000000000b90435000000080600035f000000000a06043b0000000000ae0435000000000b0b004b000001c10000613d0000000906000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000ba1034f000000000a000415000000110aa0008a000000200aa000c9000007a00d000041000000000b0b043b000000f80cb002700000001b0bc0008c00001a470000613d000000000a000415000000100aa0008a000000200aa000c9000007ae0d0000410000001c0bc0008c00001d060000c13d000000400c00043d000007a60bc0009c000001590000213d000000400bc000390000004000b0043f000000070b000029000000000ebc0436000000080600035f000000000f06043b0000000000fe0435000000000b0b004b000001c10000613d000007a70bf00197000000000bdb019f0000000000be0435000000000b040433000000000d080433000000050aa00270000000000a0c001f000000000a5d0019000000000aba0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f06a00197000900000006001d000000380b60008c0006004000d0003d000c002000d0003d00001b810000413d0000000906000029000000200f6002700000079b0b60009c000000000f06a0190000079b0b60009c000000000e000019000000040e002039000000020be001bf0000ffff0af0008c000000000b0ea019000000100af00270000000000a0fa019000000ff0aa0008c000000000f000019000000010f002039000007a60ad0009c000001590000213d000000000bfb019f0000000606000029000000400060043f000000020ab0003a0000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000001c10000613d000007a70af00197000000f80eb00210000000000aae019f000007ad0aa001c70000000c060000290000000000a60435000000030ab00210000000f80aa0015f000000090aa001ef000000210bd000390000000000ab043500001b940000013d000000400100043d000007a60210009c000001590000213d0000004002100039000000400020043f000000010200003a000000000321043600000000040000310000000102000367000000000542034f0000000005500350000000000505043b0000000000530435000001c10000613d0000000208000029000000f806800210000007a007000041000000000808004b000000000706c019000007a705500197000000000575019f000000000053043500000001030000290000008003300039000000000332034f0000000d0540006a000000230550008a000000000303043b000007a006000041000000000753004b00000000070000190000000007068019000007a005500197000007a008300197000000000958004b0000000006008019000000000558013f000007a00550009c000000000607c019000000000506004b0000000c060000290000009f0000c13d0000000a050000290000000005050433000000090700002900000000070704330000000808000029000000000808043300000006090000290000000009090433000000050a000029000000000a0a04330000000006630019000000000362034f000000000303043b0000079f0b30009c0000009f0000213d000000000b3400490000002006600039000007a00c000041000000000db6004b000000000d000019000000000d0c2019000007a00bb00197000007a00e600197000000000fbe004b000000000c008019000000000bbe013f000007a00bb0009c000000000c0dc019000000000b0c004b0000009f0000c13d0000000005570019000000000585001900000000059500190000000005a50019000000000535001900000004070000290000000007070433000000000575001900000003070000290000000007070433000000000575001900000000070104330000000005750019000000400700043d0000079f05500197000000380850008c0000004009700039000000000842034f000000200470003900001c390000413d000000200b5002700000079b0a50009c000000000b05a0190000079b0a50009c000000000c000019000000040c002039000000020ac001bf0000ffff0db0008c000000000a0ca019000000100cb00270000000000c0ba019000000ff0bc0008c000000000b000019000000010b002039000007a60c70009c000001590000213d000000000aba019f000000400090043f0000000209a0003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f809a00210000000000889019f000007ad088001c700000000008404350000000304a00210000000f80440015f00000000044501cf0000002105700039000000000045043500001c470000013d000007a60a90009c000001590000213d000000400a9000390000004000a0043f00000009060000290000000000690435000000070a00035f000000000a0a043b0000000000ae0435000000000b06004b000001c10000613d0000000806000029000000f80b600210000007a00c000041000000000d06004b000000000c0bc019000007a70aa00197000000000aca019f0000000000ae04350000000c06000029000000410a60008c000001c10000413d0000000506000029000000200a600039000000000aa1034f000000000b0004150000000f0bb0008a000000200bb000c9000007a00d000041000000000a0a043b000000f80aa002700000001b0ca0008c00001b380000613d000000000b0004150000000e0bb0008a000000200bb000c9000007ae0d0000410000001c0aa0008c00001d060000c13d000000400c00043d000007a60ac0009c000001590000213d000000400ac000390000004000a0043f0000000906000029000000000a6c0436000000070e00035f000000000e0e043b00080000000e001d0000000000ea0435000000000e06004b000001c10000613d0000000806000029000707a70060019b000000070dd001af0000000000da0435000000000a040433000000000d080433000000050bb00270000000000b0c001f000000000b5d0019000000000aab0019000000000b070433000000000aba0019000000000b020433000000000aba0019000000000b090433000000000aba0019000000000b0c0433000000000aba0019000000400d00043d0000079f0fa00197000000380af0008c0006004000d0003d000c002000d0003d00001d0d0000413d000000200ef002700000079b0af0009c000000000e0fa0190000079b0af0009c00000000060000190000000406002039000000020a6001bf0000ffff0be0008c000000000a06a019000000100be00270000000000b0ea019000000ff0bb0008c000000000e000019000000010e002039000007a60bd0009c000001590000213d000000000aea019f0000000606000029000000400060043f00000008060000290000000c0b00002900000000006b0435000000020ba0003a0000000000bd0435000001c10000613d000000f80ba00210000000070bb001af000007ad0bb001c70000000c060000290000000000b60435000000030aa00210000000f80aa0015f000000000aaf01cf000000210bd000390000000000ab043500001d1d0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f000000070a0000290000000000ad0435000000080600035f000000000f06043b0000000c060000290000000000f60435000000000a0a004b000001c10000613d000007a70af001970000000906000029000000f80b600210000000000aab019f000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007ae0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001ba60000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001b9f0000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001bb30000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001bac0000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001bc00000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001bb90000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001bcf0000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001bc70000413d000000000a06004b00001bde0000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001beb0000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001be40000413d0000000001140019000000000001043500000000040c0433000000000504004b00001bf80000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001bf10000413d000000000114001900000000000104350000000004020433000000000504004b00001c050000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001bfe0000413d000000000114001900000000000104350000000002090433000000000402004b00001c120000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001c0b0000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d00001dc10000013d000007a60a70009c000001590000213d000000400090043f000000010900003a00000000009704350000000008800350000000000808043b0000000000840435000001c10000613d000007a708800197000000f805500210000000000585019f000007ac055000410000000000540435000000400400043d00000020054000390000000008070433000000000908004b00001c540000613d0000000009000019000000000a5900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b00001c4d0000413d000000000758001900000000000704350000000a080000290000000008080433000000000908004b00001c620000613d0000000009000019000000000a79001900000020099000390000000a0b900029000000000b0b04330000000000ba0435000000000a89004b00001c5b0000413d0000000007780019000000000007043500000009080000290000000008080433000000000908004b00001c700000613d0000000009000019000000000a7900190000002009900039000000090b900029000000000b0b04330000000000ba0435000000000a89004b00001c690000413d0000000007780019000000000007043500000008080000290000000008080433000000000908004b00001c7e0000613d0000000009000019000000000a7900190000002009900039000000080b900029000000000b0b04330000000000ba0435000000000a89004b00001c770000413d0000000007780019000000000007043500000006080000290000000008080433000000000908004b00001c8c0000613d0000000009000019000000000a7900190000002009900039000000060b900029000000000b0b04330000000000ba0435000000000a89004b00001c850000413d0000000007780019000000000007043500000005080000290000000008080433000000000908004b00001c9a0000613d0000000009000019000000000a7900190000002009900039000000050b900029000000000b0b04330000000000ba0435000000000a89004b00001c930000413d000000000662034f00000000027800190000001f0730018f0000000000020435000000050830027200001ca90000613d0000000009000019000000050a900210000000000ba20019000000000aa6034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b00001ca10000413d000000000907004b00001cb80000613d0000000508800210000000000686034f00000000088200190000000307700210000000000908043300000000097901cf000000000979022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000696019f0000000000680435000000000232001900000000000204350000000003010433000000000603004b00001cc50000613d000000000600001900000000072600190000002006600039000000000816001900000000080804330000000000870435000000000736004b00001cbe0000413d0000000001230019000000000001043500000004020000290000000002020433000000000302004b00001cd30000613d000000000300001900000000061300190000002003300039000000040730002900000000070704330000000000760435000000000623004b00001ccc0000413d0000000001120019000000000001043500000003020000290000000002020433000000000302004b00001ce10000613d000000000300001900000000061300190000002003300039000000030730002900000000070704330000000000760435000000000623004b00001cda0000413d000000000112001900000000000104350000000001410049000000200210008a00000000002404350000001f01100039000000070210017f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b010000410000079b0250009c0000000005018019000000400250021000000000030404330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000b560000013d000000400100043d0000004402100039000007c203000041000000000032043500000024021000390000000f0300003900000c5f0000013d000007a60ad0009c000001590000213d0000000606000029000000400060043f00000008060000290000000c0a00002900000000006a0435000000090600002900000000006d0435000000000a06004b000001c10000613d000000f80af00210000000070aa001af000007ac0aa000410000000c060000290000000000a60435000000400600043d000000200a600039000007af0b00004100090000000a001d0000000000ba0435000c00000006001d000000210e600039000000000f0d0433000000000b0f004b00001d2f0000613d000000000b000019000000000aeb0019000000200bb000390000000006db0019000000000606043300000000006a04350000000006fb004b00001d280000413d000000000def001900000000000d0435000000000e04043300000000060e004b00001d3c0000613d000000000b0000190000000006db0019000000200bb00039000000000a4b0019000000000a0a04330000000000a604350000000006eb004b00001d350000413d000000000dde001900000000000d0435000000000e08043300000000040e004b00001d490000613d00000000040000190000000006d400190000002004400039000000000a840019000000000a0a04330000000000a604350000000006e4004b00001d420000413d0000000d041003600000000001de00190000001f0650018f0000000000010435000000050850027200001d580000613d000000000d000019000000050ad00210000000000ba10019000000000aa4034f000000000a0a043b0000000000ab0435000000010dd00039000000000a8d004b00001d500000413d000000000a06004b00001d670000613d0000000508800210000000000484034f00000000088100190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000404043b0000010006600089000000000464022f00000000046401cf0000000004a4019f0000000000480435000000000151001900000000000104350000000004070433000000000504004b00001d740000613d000000000500001900000000061500190000002005500039000000000875001900000000080804330000000000860435000000000645004b00001d6d0000413d0000000001140019000000000001043500000000040c0433000000000504004b00001d810000613d0000000005000019000000000615001900000020055000390000000007c5001900000000070704330000000000760435000000000645004b00001d7a0000413d000000000114001900000000000104350000000004020433000000000504004b00001d8e0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b00001d870000413d000000000114001900000000000104350000000002090433000000000402004b00001d9b0000613d000000000400001900000000051400190000002004400039000000000694001900000000060604330000000000650435000000000524004b00001d940000413d000000000112001900000000000104350000000c040000290000000001410049000000200210008a00000000002404350000001f01100039000000000231016f0000000001420019000000000221004b000000000200001900000001020040390000079f0310009c000001590000213d0000000102200190000001590000c13d000000400010043f0000079b0100004100000009030000290000079b0230009c000000000301801900000040023002100000000c0300002900000000030304330000079b0430009c00000000030180190000006003300210000000000223019f00000000030004140000079b0430009c0000000003018019000000c001300210000000000121019f000007af011001c700008010020000391e681e5e0000040f00000001022001900000009f0000613d000000000101043b00000000020004150000000a02200069000000000200000200000b560000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000079b02100197000000010150019000001e1f0000c13d0000000001000031000000000541004b00001e1f0000413d0000000102200367000007b00530009c00001e230000813d00000000014100490000079b0110019700000000011203df000000c002300210000007b102200197000007b2022001c700000000012103af00008010020000391e681e630000040f000000000301001900000060033002700000079b03300197000000010220019000001e2a0000613d0000003f02300039000007b304200197000000400200043d0000000004420019000000000524004b000000000500001900000001050040390000079f0640009c00001e450000213d000000010550019000001e450000c13d000000400040043f00000000043204360000001f05300039000000050550027200001dfd0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00001df50000413d000000000500004b00001dff0000613d0000001f0530018f000000050330027200001e0b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00001e030000413d000000000605004b00001e1a0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c00001e4b0000c13d0000000001040433000000000001042d000007c3010000410000000000100435000000110100003900001e480000013d000000400100043d0000004402100039000007bf0300004100000000003204350000002402100039000000080300003900001e510000013d0000001f0430018f000000050230027200001e350000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00001e2e0000413d000000000504004b00001e430000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000001e6a00010430000007c30100004100000000001004350000004101000039000000040010043f000007c40100004100001e6a00010430000000400100043d0000004402100039000007b503000041000000000032043500000024021000390000001f030000390000000000320435000007a10200004100000000002104350000000402100039000000200300003900000000003204350000079b020000410000079b0310009c00000000010280190000004001100210000007b6011001c700001e6a00010430000000000001042f00001e61002104230000000102000039000000000001042d0000000002000019000000000001042d00001e66002104230000000102000039000000000001042d0000000002000019000000000001042d00001e680000043200001e690001042e00001e6a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ebe4a3d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000456e636f64696e6720756e737570706f7274656420747800000000000000000000000000000000000000000000000000000000640000008000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c69642064617461000000000000000000000000000000000000000064000000000000000000000000848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f1901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f4f766572666c6f770000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000000000000000000556e737570706f72746564207478207479706500000000000000000000000000496e76616c696420762076616c756500000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f00000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac46880ebec771717dc70f9688fe43e58ce01ef6ff73d4b4fb82cf87c76e3a51", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/ComplexUpgrader.json b/src/deps/contracts/ComplexUpgrader.json index 137c2845..6895cf47 100644 --- a/src/deps/contracts/ComplexUpgrader.json +++ b/src/deps/contracts/ComplexUpgrader.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ComplexUpgrader", - "sourceName": "cache-zk/solpp-generated-contracts/ComplexUpgrader.sol", + "sourceName": "contracts-preprocessed/ComplexUpgrader.sol", "abi": [ { "inputs": [ @@ -22,8 +22,8 @@ "type": "function" } ], - "bytecode": "0x000400000000000200000000030100190000006003300270000000470430019700030000004103550002000000010355000000470030019d000100000000001f0000008001000039000000400010043f0000000101200190000000440000c13d0000000004000031000000040140008c0000004c0000413d0000000202000367000000000102043b00000049011001970000004a0110009c0000004c0000c13d000000040140008a0000004b03000041000000400510008c000000000500001900000000050340190000004b01100197000000000601004b000000000300a0190000004b0110009c00000000010500190000000001036019000000000101004b0000004c0000c13d0000000401200370000000000101043b0000004c0310009c0000004c0000213d0000002403200370000000000503043b0000004d0350009c0000004c0000213d00000023035000390000004b06000041000000000743004b000000000700001900000000070680190000004b084001970000004b03300197000000000983004b0000000006008019000000000383013f0000004b0330009c00000000030700190000000003066019000000000303004b0000004c0000c13d0000000403500039000000000232034f000000000302043b0000004d0230009c0000004c0000213d00000024025000390000000005230019000000000445004b0000004c0000213d0118004e0000040f0000000001000019000001190001042e0000000001000416000000000101004b0000004c0000c13d0000002001000039000001000010044300000120000004430000004801000041000001190001042e00000000010000190000011a000104300003000000000002000300000003001d000200000002001d0000000002000411000080070220008c000000dc0000c13d00000052020000410000000000200439000100000001001d000000040010044300000047010000410000000002000414000000470320009c0000000001024019000000c00110021000000053011001c700008002020000390118010e0000040f0000000102200190000000f10000613d000000400800043d000000000101043b000000000101004b0000000309000029000000f30000613d0000001f0190018f000000020200002900000002032003670000000504900272000000750000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006d0000413d000000000501004b000000840000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f00000000001404350000000001980019000000000001043500000000010004140000000102000029000000040320008c0000008d0000c13d00000001030000310000000002000019000000a10000013d0000004703000041000000470490009c000000000403001900000000040940190000006004400210000000470580009c000000000503001900000000050840190000004005500210000000000545019f000000470410009c0000000001038019000000c001100210000000000151019f011801130000040f000000010220015f00030000000103550000006001100270000100470010019d00000047031001970000006001000039000000000403004b000000d30000613d000000540130009c000000d60000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000004d0640009c000000d60000213d0000000105500190000000d60000c13d000000400040043f0000000003310436000000030400036700000001060000310000001f0560018f0000000506600272000000c40000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000000bc0000413d000000000705004b000000d30000613d0000000506600210000000000464034f00000000036300190000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000102200190000001040000c13d000000000001042d000000550100004100000000001004350000004101000039000000040010043f00000056010000410000011a00010430000000400100043d00000064021000390000004e03000041000000000032043500000044021000390000004f030000410000000000320435000000240210003900000024030000390000000000320435000000500200004100000000002104350000000402100039000000200300003900000000003204350000004702000041000000470310009c0000000001028019000000400110021000000051011001c70000011a0001043000000000010000190000011a00010430000000440180003900000057030000410000000000310435000000240180003900000013030000390000000000310435000000500100004100000000001804350000000401800039000000200300003900000000003104350000004701000041000000470380009c0000000001084019000000400110021000000058011001c70000011a0001043000000000210104340000004703000041000000470410009c0000000001038019000000470420009c000000000203801900000040022002100000006001100210000000000121019f0000011a0001043000000111002104230000000102000039000000000001042d0000000002000019000000000001042d00000116002104250000000102000039000000000001042d0000000002000019000000000001042d0000011800000432000001190001042e0000011a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff4f5945520000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ae095b702686e9c828067f7814feec49aed4be7494fed7813e54a61aa5fdd3", - "deployedBytecode": "0x000400000000000200000000030100190000006003300270000000470430019700030000004103550002000000010355000000470030019d000100000000001f0000008001000039000000400010043f0000000101200190000000440000c13d0000000004000031000000040140008c0000004c0000413d0000000202000367000000000102043b00000049011001970000004a0110009c0000004c0000c13d000000040140008a0000004b03000041000000400510008c000000000500001900000000050340190000004b01100197000000000601004b000000000300a0190000004b0110009c00000000010500190000000001036019000000000101004b0000004c0000c13d0000000401200370000000000101043b0000004c0310009c0000004c0000213d0000002403200370000000000503043b0000004d0350009c0000004c0000213d00000023035000390000004b06000041000000000743004b000000000700001900000000070680190000004b084001970000004b03300197000000000983004b0000000006008019000000000383013f0000004b0330009c00000000030700190000000003066019000000000303004b0000004c0000c13d0000000403500039000000000232034f000000000302043b0000004d0230009c0000004c0000213d00000024025000390000000005230019000000000445004b0000004c0000213d0118004e0000040f0000000001000019000001190001042e0000000001000416000000000101004b0000004c0000c13d0000002001000039000001000010044300000120000004430000004801000041000001190001042e00000000010000190000011a000104300003000000000002000300000003001d000200000002001d0000000002000411000080070220008c000000dc0000c13d00000052020000410000000000200439000100000001001d000000040010044300000047010000410000000002000414000000470320009c0000000001024019000000c00110021000000053011001c700008002020000390118010e0000040f0000000102200190000000f10000613d000000400800043d000000000101043b000000000101004b0000000309000029000000f30000613d0000001f0190018f000000020200002900000002032003670000000504900272000000750000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b0000006d0000413d000000000501004b000000840000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f00000000001404350000000001980019000000000001043500000000010004140000000102000029000000040320008c0000008d0000c13d00000001030000310000000002000019000000a10000013d0000004703000041000000470490009c000000000403001900000000040940190000006004400210000000470580009c000000000503001900000000050840190000004005500210000000000545019f000000470410009c0000000001038019000000c001100210000000000151019f011801130000040f000000010220015f00030000000103550000006001100270000100470010019d00000047031001970000006001000039000000000403004b000000d30000613d000000540130009c000000d60000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b000000000500001900000001050040390000004d0640009c000000d60000213d0000000105500190000000d60000c13d000000400040043f0000000003310436000000030400036700000001060000310000001f0560018f0000000506600272000000c40000613d000000000700001900000005087002100000000009830019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000000bc0000413d000000000705004b000000d30000613d0000000506600210000000000464034f00000000036300190000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000102200190000001040000c13d000000000001042d000000550100004100000000001004350000004101000039000000040010043f00000056010000410000011a00010430000000400100043d00000064021000390000004e03000041000000000032043500000044021000390000004f030000410000000000320435000000240210003900000024030000390000000000320435000000500200004100000000002104350000000402100039000000200300003900000000003204350000004702000041000000470310009c0000000001028019000000400110021000000051011001c70000011a0001043000000000010000190000011a00010430000000440180003900000057030000410000000000310435000000240180003900000013030000390000000000310435000000500100004100000000001804350000000401800039000000200300003900000000003104350000004701000041000000470380009c0000000001084019000000400110021000000058011001c70000011a0001043000000000210104340000004703000041000000470410009c0000000001038019000000470420009c000000000203801900000040022002100000006001100210000000000121019f0000011a0001043000000111002104230000000102000039000000000001042d0000000002000019000000000001042d00000116002104250000000102000039000000000001042d0000000002000019000000000001042d0000011800000432000001190001042e0000011a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff4f5945520000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c08c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ae095b702686e9c828067f7814feec49aed4be7494fed7813e54a61aa5fdd3", + "bytecode": "0x00030000000000020004000000000002000000000301001900000060033002700000004103300197000200000031035500010000000103550000008008000039000000400080043f00000001022001900000005a0000c13d000000040230008c000000620000413d000000000201043b0000004302200197000000440220009c000000620000c13d000000040230008a000000400220008c000000620000413d0000000402100370000000000902043b000000450290009c000000620000213d0000002402100370000000000202043b000000460420009c000000620000213d00000023042000390000004705000041000000000634004b000000000600001900000000060580190000004704400197000000000704004b0000000005008019000000470440009c000000000506c019000000000405004b000000620000c13d0000000405200039000000000151034f000000000401043b000000460140009c000000620000213d00000000014200190000002401100039000000000131004b000000620000213d0000000001000411000080070110008c000000640000c13d000100000005001d000200000004001d000400000008001d0000004c010000410000000000100439000300000009001d000000040090044300000041010000410000000002000414000000410320009c0000000002018019000000c0012002100000004d011001c7000080020200003900fd00f30000040f0000000102200190000000700000613d000000400800043d000000000101043b000000000101004b000000710000c13d000000440180003900000051030000410000000000310435000000240180003900000013030000390000000000310435000000480100004100000000001804350000000401800039000000200300003900000000003104350000004101000041000000410380009c0000000008018019000000400180021000000052011001c7000000ff000104300000000001000416000000000101004b000000620000c13d0000002001000039000001000010044300000120000004430000004201000041000000fe0001042e0000000001000019000000ff000104300000004801000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000004901000041000000c40010043f0000004a01000041000000e40010043f0000004b01000041000000ff00010430000000000001042f00000002090000290000001f0190018f0000000102000029000000200320003900000001033003670000000504900272000000810000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000000790000413d000000000501004b0000000302000029000000910000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f0000000000140435000000000198001900000000000104350000000001000414000000040320008c000000990000c13d00000000030000310000000002000019000000ab0000013d0000004103000041000000410490009c00000000090380190000006004900210000000410580009c00000000080380190000004005800210000000000545019f000000410410009c0000000001038019000000c001100210000000000151019f00fd00f80000040f000000010220015f00020000000103550000006001100270000000410010019d000000410310019700000004090000290000006001000039000000000403004b000000bb0000c13d0000000102200190000000f00000613d00000000010104330000004102000041000000410310009c0000000001028019000000410390009c000000000902801900000040029002100000006001100210000000000121019f000000ff000104300000004e0130009c000000ea0000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000460640009c000000ea0000213d0000000105500190000000ea0000c13d000000400040043f0000001f0430018f000000000931043600000002050003670000000503300272000000da0000613d000000000600001900000005076002100000000008790019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000d20000413d000000000604004b000000af0000613d0000000503300210000000000535034f00000000033900190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000af0000013d0000004f0100004100000000001004350000004101000039000000040010043f0000005001000041000000ff000104300000000001000019000000fe0001042e000000000001042f000000f6002104230000000102000039000000000001042d0000000002000019000000000001042d000000fb002104250000000102000039000000000001042d0000000002000019000000000001042d000000fd00000432000000fe0001042e000000ff00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f5945520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaef84efea5e82103c4338a1dc87dfa5c18f5c5adecacf06063a21eaa290dd0e", + "deployedBytecode": "0x00030000000000020004000000000002000000000301001900000060033002700000004103300197000200000031035500010000000103550000008008000039000000400080043f00000001022001900000005a0000c13d000000040230008c000000620000413d000000000201043b0000004302200197000000440220009c000000620000c13d000000040230008a000000400220008c000000620000413d0000000402100370000000000902043b000000450290009c000000620000213d0000002402100370000000000202043b000000460420009c000000620000213d00000023042000390000004705000041000000000634004b000000000600001900000000060580190000004704400197000000000704004b0000000005008019000000470440009c000000000506c019000000000405004b000000620000c13d0000000405200039000000000151034f000000000401043b000000460140009c000000620000213d00000000014200190000002401100039000000000131004b000000620000213d0000000001000411000080070110008c000000640000c13d000100000005001d000200000004001d000400000008001d0000004c010000410000000000100439000300000009001d000000040090044300000041010000410000000002000414000000410320009c0000000002018019000000c0012002100000004d011001c7000080020200003900fd00f30000040f0000000102200190000000700000613d000000400800043d000000000101043b000000000101004b000000710000c13d000000440180003900000051030000410000000000310435000000240180003900000013030000390000000000310435000000480100004100000000001804350000000401800039000000200300003900000000003104350000004101000041000000410380009c0000000008018019000000400180021000000052011001c7000000ff000104300000000001000416000000000101004b000000620000c13d0000002001000039000001000010044300000120000004430000004201000041000000fe0001042e0000000001000019000000ff000104300000004801000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000004901000041000000c40010043f0000004a01000041000000e40010043f0000004b01000041000000ff00010430000000000001042f00000002090000290000001f0190018f0000000102000029000000200320003900000001033003670000000504900272000000810000613d000000000500001900000005065002100000000007680019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000000790000413d000000000501004b0000000302000029000000910000613d0000000504400210000000000343034f00000000044800190000000301100210000000000504043300000000051501cf000000000515022f000000000303043b0000010001100089000000000313022f00000000011301cf000000000151019f0000000000140435000000000198001900000000000104350000000001000414000000040320008c000000990000c13d00000000030000310000000002000019000000ab0000013d0000004103000041000000410490009c00000000090380190000006004900210000000410580009c00000000080380190000004005800210000000000545019f000000410410009c0000000001038019000000c001100210000000000151019f00fd00f80000040f000000010220015f00020000000103550000006001100270000000410010019d000000410310019700000004090000290000006001000039000000000403004b000000bb0000c13d0000000102200190000000f00000613d00000000010104330000004102000041000000410310009c0000000001028019000000410390009c000000000902801900000040029002100000006001100210000000000121019f000000ff000104300000004e0130009c000000ea0000813d0000001f01300039000000200400008a000000000141016f0000003f01100039000000000441016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000000460640009c000000ea0000213d0000000105500190000000ea0000c13d000000400040043f0000001f0430018f000000000931043600000002050003670000000503300272000000da0000613d000000000600001900000005076002100000000008790019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000d20000413d000000000604004b000000af0000613d0000000503300210000000000535034f00000000033900190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f0000000000430435000000af0000013d0000004f0100004100000000001004350000004101000039000000040010043f0000005001000041000000ff000104300000000001000019000000fe0001042e000000000001042f000000f6002104230000000102000039000000000001042d0000000002000019000000000001042d000000fb002104250000000102000039000000000001042d0000000002000019000000000001042d000000fd00000432000000fe0001042e000000ff00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000c987336c00000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f5945520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000044656c65676174656520697320616e20454f410000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eaef84efea5e82103c4338a1dc87dfa5c18f5c5adecacf06063a21eaa290dd0e", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/Compressor.json b/src/deps/contracts/Compressor.json index aaea9846..54bc3b4a 100644 --- a/src/deps/contracts/Compressor.json +++ b/src/deps/contracts/Compressor.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "Compressor", - "sourceName": "cache-zk/solpp-generated-contracts/Compressor.sol", + "sourceName": "contracts-preprocessed/Compressor.sol", "abi": [ { "inputs": [ @@ -62,8 +62,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000b000000000002000000000301001900000060033002700000017c04300197000300000041035500020000000103550000017c0030019d000100000000001f0000008001000039000000400010043f0000000101200190000002a80000c13d0000000005000031000000040150008c000001fe0000413d0000000203000367000000000103043b000000e0011002700000017e0210009c000002550000c13d000000040150008a0000018002000041000000800410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000701043b0000004401300370000000000201043b0000002401300370000000000101043b000600000001001d000100000002001d000001810120009c000001fe0000213d000000010100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000000000861004b0000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000001010000290000000401100039000000000113034f000000000801043b000001810180009c000001fe0000213d00000001010000290000002401100039000b00000001001d0000000001180019000000000151004b000001fe0000213d0000006401300370000000000101043b000500000001001d000001810110009c000001fe0000213d000000050100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000a00000008001d000000000861004b0000000a080000290000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000005010000290000000401100039000000000113034f000000000101043b000800000001001d000001810110009c000001fe0000213d000000050100002900000024021000390000000801000029000900000002001d0000000001210019000000000151004b000001fe0000213d0000000001000411000080080110008c000002b00000c13d0000000601000029000000090110008c000002ba0000813d000000020600003900000110147000c9000001110500008a000000000b00001900000000090000190000007d0000013d0000000001e1004b00000000090c00190000000a08000029000002330000c13d000000000107004b000000820000613d00000000217400d9000001100110008c0000022d0000c13d000000000149004b000000fc0000813d000000000159004b0000022d0000213d000001100c90003900000000018c004b000001fe0000213d0000000b01000029000000000e1900190000003c01e00039000000000113034f000000000101043b000001810110019800000000090c00190000007d0000c13d000000010900008a00000000019b004b0000022d0000613d000000090100002900000000011600190000003402e00039000000000223034f000000000113034f000000000101043b000000000202043b000000000112004b000002160000c13d000000210100008a000000000116004b0000022d0000213d00000020016000390000000802000029000000000221004b000002100000813d00000009020000290000000001210019000000000113034f000000000101043b000000fb02100270000000f801100270000000070d100190000000000a020019000000200a006039000000210160003900000000061a001a0000022d0000413d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02e00039000000000223034f0000005c0ee00039000000000ee3034f000000000113034f000000000101043b000000000f0e043b000000000e02043b0000001f02a0008c0000000302a00210000000d30000213d000001000820008900000000088901cf000700000008001d000000000920004900000000080e0019000000000e0f0019000000000f06001900000000060b0019000001000b00008a0000000009b9004b000000000b06001900000000060f0019000000000f0e0019000000000e08001900000007080000290000000008004019000000000181016f00000000080a004b000000dc0000613d000001000820008c0000022d0000213d0000000098a200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000000dd0000c13d0000000001000019000000010bb0003900000000020d004b000000790000613d0000000302d0008c000000790000613d0000000102d0008c0000000a08000029000000ea0000c13d0000000001f100190000000001e1004b00000000090c00190000007d0000613d0000023f0000013d0000000202d0008c0000024b0000c13d00000000011f00490000000001e1004b00000000090c00190000007d0000613d0000018201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000019101000041000000c40010043f0000019201000041000000e40010043f0000018901000041000005ee0001043000000005010000290000000601100039000000000113034f000000000101043b0000ffff0110018f00000000011b004b000001270000c13d0000000601000029000000030b1002100000010001b00089000000010200008a000700000001001d000300000002001d00000000011201cf0000000002b00049000001000900008a000200000009001d000000000292004b0000000001004019000400000001001d0000010101b0008c000001330000413d000000000107004b0000014a0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001170000613d0000015f0000013d0000018201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000018701000041000000c40010043f0000018801000041000000e40010043f0000018901000041000005ee0001043000000000010b004b000001660000c13d000000000107004b000001e30000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b000001810220019800000000020700190000013a0000613d000001f80000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001500000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000001fe0000213d000002200000013d00050000000b001d000000000d0000190000016d0000013d0000000001c1004b000000000d0900190000000a08000029000002330000c13d000000000107004b000001720000613d00000000217400d9000001100110008c0000022d0000c13d00000000014d004b000002000000813d00000000015d004b0000022d0000213d0000011009d00039000000000189004b000001fe0000213d0000000b01000029000000000c1d00190000003c01c00039000000000113034f000000000101043b000001810e100198000000000d0900190000016d0000613d0000000601000029000000000d16001a0000022d0000413d000000080100002900000000011d004b000001fe0000213d00000009010000290000000001160019000000000113034f000000000101043b00000006020000290000001f0220008c000001930000213d0000000402000029000000000121016f0000000602000029000000000202004b000002230000613d0000000602000029000000050600002900000000622600d9000000080220008c0000022d0000c13d0000000702000029000000000121022f00000000011e004b000002230000c13d000000080100002900000000011d004b000002100000813d000000090100002900000000011d0019000000000113034f000000000101043b000000fb02100270000000f801100270000000070f100190000000000e020019000000200e0060390000000101d0003900000000061e00190000000002d6004b0000022d0000a13d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02c00039000000000223034f0000005c08c00039000000000883034f000000000113034f000000000101043b000000000b08043b000000000c02043b0000001f02e0008c0000000302e00210000001c60000213d0000010008200089000000030a00002900000000088a01cf000000000a200049000000020d000029000000000ada004b0000000008004019000000000181016f00000000080e004b000001cf0000613d000001000820008c0000022d0000213d00000000a8e200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000001d00000c13d000000000100001900000000020f004b000001690000613d0000000302f0008c000001690000613d0000000102f0008c0000000a08000029000001dc0000c13d0000000001b100190000000001c1004b000000000d0900190000016d0000613d0000023f0000013d0000000202f0008c0000024b0000c13d00000000011b00490000000001c1004b000000000d0900190000016d0000613d000000f00000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001e90000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000002200000a13d0000000001000019000005ee000104300000000801000029000000000116004b0000000001000019000000010100603905ec05190000040f0000000b010000290000000a0200002905ec05310000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000018c0100004100000000001004350000003201000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000018b01000041000000c40010043f0000018401000041000005ee000104300000000601000029000000000101004b0000022d0000c13d0000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000018a01000041000000c40010043f0000018401000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000018e01000041000000c40010043f0000018f01000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000019301000041000000c40010043f0000019401000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000019001000041000000c40010043f0000018401000041000005ee000104300000017f0110009c000001fe0000c13d000000040150008a0000018002000041000000400410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000101043b000001810210009c000001fe0000213d00000023021000390000018004000041000000000652004b0000000006000019000000000604801900000180075001970000018002200197000000000872004b0000000004008019000000000272013f000001800220009c00000000020600190000000002046019000000000202004b000001fe0000c13d0000000402100039000000000223034f000000000202043b000001810420009c000001fe0000213d00000024011000390000000004120019000000000454004b000001fe0000213d0000002404300370000000000604043b000001810460009c000001fe0000213d00000023046000390000018007000041000000000854004b0000000008000019000000000807801900000180095001970000018004400197000000000a94004b0000000007008019000000000494013f000001800440009c00000000040800190000000004076019000000000404004b000001fe0000c13d0000000404600039000000000343034f000000000403043b000001810340009c000001fe0000213d00000024036000390000000006340019000000000556004b000001fe0000213d0000000005000411000080010550008c000002c60000c13d05ec02d00000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000000001000416000000000101004b000001fe0000c13d0000002001000039000001000010044300000120000004430000017d01000041000005ed0001042e0000018201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000018601000041000000c40010043f0000018401000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000019501000041000000c40010043f0000019601000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000018301000041000000c40010043f0000018401000041000005ee0001043000030000000000020000001e0530008a000000020d00036700000000065d034f000000000606043b0000000306600210000001970c6001970000000206c001bf000000000746004b000004320000213d000000000b6400490000000207b00210000000000727004b000004400000c13d000000000746004b000002f80000613d0000000005650019000000160630008a000000180710008a0000000008000019000000000985001900000000099d034f000000000909043b00000003099002100000019709900197000000000ac9004b000004080000813d0000000009960019000000020a800210000000000aa70019000000000aad034f00000000099d034f000000000909043b000000000a0a043b0000000009a9013f00000181099001980000041d0000c13d00000002088000390000000009b8004b000002e40000413d0000001f05200190000004580000c13d000001a30520009c0000046a0000813d00000020052001900000047c0000613d00000000080004140000000007120019000000000527004b000000000500001900000001050040390000017c0610019700000001015001900000043a0000c13d0000000001000031000000000571004b0000043a0000413d000100000002001d000300000003001d000200000004001d0000000204600367000001a40580009c0000048e0000813d00000000017100490000017c0110019700000000011403df000000c002800210000001a502200197000001a6022001c700000000012103af000000020200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000004a00000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c0000000209000029000000030a000029000004340000213d0000000104400190000004340000c13d000000400020043f00000000023104360000001f043000390000000504400272000000010b0000290000033d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003350000413d000000000400004b0000033f0000613d0000000104000031000000000443004b000004320000213d00000003050003670000001f0430018f00000005033002720000034f0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000003470000413d000000000604004b0000035e0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000004bb0000c13d0000000001020433000000400800043d000001a902000041000000000028043500000004028000390000002003000039000000000032043500000024028000390000000000920435000001aa01100197000000db02b00210000001ab02200197000000000412019f0000001f0290018f00000044018000390000000203a00367000001ac044001c7000300000004001d00000005049002720000037e0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000003760000413d000000000502004b0000038d0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000000191001900000000000104350000001f01900039000000200200008a000000000121016f0000017c020000410000017c0380009c00000000030200190000000003084019000000400330021000000044011000390000017c0410009c00000000010280190000006001100210000000000131019f00000000030004140000017c0430009c0000000002034019000000c002200210000000000112019f0000800802000039000200000008001d05ec05dd0000040f000000020a000029000000000301001900000060033002700000017c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003af0000413d000000000705004b000003c60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004cd0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001810410009c000004340000213d0000000102200190000004340000c13d000000400010043f000000200130008c000004320000413d000001ad010000410000000000100439000080040100003900000004001004430000017c0100004100000000020004140000017c0320009c0000000001024019000000c001100210000001ae011001c7000080020200003905ec05e20000040f0000000102200190000004320000613d000000000101043b000000000101004b000004320000613d000000400400043d000001af0100004100000000001404350000000401400039000000030200002900000000002104350000017c0100004100000000020004140000017c0320009c00000000020180190000017c0340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f0000018d011001c7000080040200003905ec05dd0000040f000000000301001900000060033002700001017c0030019d0000017c0430019700030000000103550000000102200190000004f30000613d0000000202000029000001810120009c000004340000213d000000400020043f0000000301000029000000000001042d000000400100043d00000064021000390000019c03000041000000000032043500000044021000390000019d030000410000000000320435000000240210003900000024030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee00010430000000400100043d00000064021000390000019f0300004100000000003204350000004402100039000001a0030000410000000000320435000000240210003900000032030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee000104300000000001000019000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d00000084021000390000019803000041000000000032043500000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000048030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019b011001c7000005ee00010430000000400100043d0000004402100039000001a1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b2030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000004ab0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a40000413d000000000504004b000004b90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee00010430000000400100043d0000004402100039000001a8030000410000000000320435000000240210003900000019030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400200043d0000001f0430018f0000000503300272000004da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004d20000413d000000000504004b000004e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000400200043d0000001f0340018f0000000504400272000005000000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000004f80000413d000000000503004b0000050f0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000000101004b0000051c0000613d000000000001042d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000023030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee0001043000000000030004140000000004120019000000000224004b000000000500001900000001050040390000017c021001970000000101500190000005900000c13d0000000001000031000000000541004b000005900000413d0000000202200367000001a40530009c000005960000813d00000000014100490000017c0110019700000000011203df000000c002300210000001a502200197000001a6022001c700000000012103af000080100200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000005a80000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c000005c30000213d0000000104400190000005c30000c13d000000400020043f00000000023104360000001f0430003900000005044002720000056a0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005620000413d000000000400004b0000056c0000613d0000000104000031000000000443004b000005c90000213d00000003050003670000001f0430018f00000005033002720000057c0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005740000413d000000000604004b0000058b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005cb0000c13d0000000001020433000000000001042d0000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000005b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005ac0000413d000000000504004b000005c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000000001000019000005ee00010430000000400100043d0000004402100039000001b503000041000000000032043500000024021000390000001f030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000005e0002104210000000102000039000000000001042d0000000002000019000000000001042d000005e5002104230000000102000039000000000001042d0000000002000019000000000001042d000005ea002104230000000102000039000000000001042d0000000002000019000000000001042d000005ec00000432000005ed0001042e000005ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f726167652064696666730000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fff862797465636f646500000000000000000000000000000000000000000000000074696d65732073686f72746572207468616e20746865206f726967696e616c20456e636f6465642064617461206c656e6774682073686f756c6420626520342000000000000000000000000000000000000000a4000000000000000000000000756e647300000000000000000000000000000000000000000000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f0000000000000000000000000000000000000084000000000000000000000000206f726967696e616c2062797465636f64650000000000000000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865706f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c696420646174610000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000066667300000000000000000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d70726573736564537461746544696b656363616b3235362072657475726e656420696e76616c6964206461746100b4d4241d8a2da2cf3e1bf35dd302345ffbb506f1f41300f3c5e72d9a0e037dc2", - "deployedBytecode": "0x0004000000000002000b000000000002000000000301001900000060033002700000017c04300197000300000041035500020000000103550000017c0030019d000100000000001f0000008001000039000000400010043f0000000101200190000002a80000c13d0000000005000031000000040150008c000001fe0000413d0000000203000367000000000103043b000000e0011002700000017e0210009c000002550000c13d000000040150008a0000018002000041000000800410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000701043b0000004401300370000000000201043b0000002401300370000000000101043b000600000001001d000100000002001d000001810120009c000001fe0000213d000000010100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000000000861004b0000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000001010000290000000401100039000000000113034f000000000801043b000001810180009c000001fe0000213d00000001010000290000002401100039000b00000001001d0000000001180019000000000151004b000001fe0000213d0000006401300370000000000101043b000500000001001d000001810110009c000001fe0000213d000000050100002900000023011000390000018002000041000000000451004b0000000004000019000000000402801900000180065001970000018001100197000a00000008001d000000000861004b0000000a080000290000000002008019000000000161013f000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d00000005010000290000000401100039000000000113034f000000000101043b000800000001001d000001810110009c000001fe0000213d000000050100002900000024021000390000000801000029000900000002001d0000000001210019000000000151004b000001fe0000213d0000000001000411000080080110008c000002b00000c13d0000000601000029000000090110008c000002ba0000813d000000020600003900000110147000c9000001110500008a000000000b00001900000000090000190000007d0000013d0000000001e1004b00000000090c00190000000a08000029000002330000c13d000000000107004b000000820000613d00000000217400d9000001100110008c0000022d0000c13d000000000149004b000000fc0000813d000000000159004b0000022d0000213d000001100c90003900000000018c004b000001fe0000213d0000000b01000029000000000e1900190000003c01e00039000000000113034f000000000101043b000001810110019800000000090c00190000007d0000c13d000000010900008a00000000019b004b0000022d0000613d000000090100002900000000011600190000003402e00039000000000223034f000000000113034f000000000101043b000000000202043b000000000112004b000002160000c13d000000210100008a000000000116004b0000022d0000213d00000020016000390000000802000029000000000221004b000002100000813d00000009020000290000000001210019000000000113034f000000000101043b000000fb02100270000000f801100270000000070d100190000000000a020019000000200a006039000000210160003900000000061a001a0000022d0000413d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02e00039000000000223034f0000005c0ee00039000000000ee3034f000000000113034f000000000101043b000000000f0e043b000000000e02043b0000001f02a0008c0000000302a00210000000d30000213d000001000820008900000000088901cf000700000008001d000000000920004900000000080e0019000000000e0f0019000000000f06001900000000060b0019000001000b00008a0000000009b9004b000000000b06001900000000060f0019000000000f0e0019000000000e08001900000007080000290000000008004019000000000181016f00000000080a004b000000dc0000613d000001000820008c0000022d0000213d0000000098a200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000000dd0000c13d0000000001000019000000010bb0003900000000020d004b000000790000613d0000000302d0008c000000790000613d0000000102d0008c0000000a08000029000000ea0000c13d0000000001f100190000000001e1004b00000000090c00190000007d0000613d0000023f0000013d0000000202d0008c0000024b0000c13d00000000011f00490000000001e1004b00000000090c00190000007d0000613d0000018201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000019101000041000000c40010043f0000019201000041000000e40010043f0000018901000041000005ee0001043000000005010000290000000601100039000000000113034f000000000101043b0000ffff0110018f00000000011b004b000001270000c13d0000000601000029000000030b1002100000010001b00089000000010200008a000700000001001d000300000002001d00000000011201cf0000000002b00049000001000900008a000200000009001d000000000292004b0000000001004019000400000001001d0000010101b0008c000001330000413d000000000107004b0000014a0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001170000613d0000015f0000013d0000018201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000018701000041000000c40010043f0000018801000041000000e40010043f0000018901000041000005ee0001043000000000010b004b000001660000c13d000000000107004b000001e30000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b000001810220019800000000020700190000013a0000613d000001f80000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001500000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000001fe0000213d000002200000013d00050000000b001d000000000d0000190000016d0000013d0000000001c1004b000000000d0900190000000a08000029000002330000c13d000000000107004b000001720000613d00000000217400d9000001100110008c0000022d0000c13d00000000014d004b000002000000813d00000000015d004b0000022d0000213d0000011009d00039000000000189004b000001fe0000213d0000000b01000029000000000c1d00190000003c01c00039000000000113034f000000000101043b000001810e100198000000000d0900190000016d0000613d0000000601000029000000000d16001a0000022d0000413d000000080100002900000000011d004b000001fe0000213d00000009010000290000000001160019000000000113034f000000000101043b00000006020000290000001f0220008c000001930000213d0000000402000029000000000121016f0000000602000029000000000202004b000002230000613d0000000602000029000000050600002900000000622600d9000000080220008c0000022d0000c13d0000000702000029000000000121022f00000000011e004b000002230000c13d000000080100002900000000011d004b000002100000813d000000090100002900000000011d0019000000000113034f000000000101043b000000fb02100270000000f801100270000000070f100190000000000e020019000000200e0060390000000101d0003900000000061e00190000000002d6004b0000022d0000a13d0000000802000029000000000226004b000001fe0000213d000000090200002900000000012100190000007c02c00039000000000223034f0000005c08c00039000000000883034f000000000113034f000000000101043b000000000b08043b000000000c02043b0000001f02e0008c0000000302e00210000001c60000213d0000010008200089000000030a00002900000000088a01cf000000000a200049000000020d000029000000000ada004b0000000008004019000000000181016f00000000080e004b000001cf0000613d000001000820008c0000022d0000213d00000000a8e200d9000000080880008c0000022d0000c13d0000010008200089000000000181022f000000000202004b000001d00000c13d000000000100001900000000020f004b000001690000613d0000000302f0008c000001690000613d0000000102f0008c0000000a08000029000001dc0000c13d0000000001b100190000000001c1004b000000000d0900190000016d0000613d0000023f0000013d0000000202f0008c0000024b0000c13d00000000011b00490000000001c1004b000000000d0900190000016d0000613d000000f00000013d00000000217400d9000001100110008c0000022d0000c13d000000010100002900000060011000390000000002000019000000000742004b000002000000813d000000000752004b0000022d0000213d00000110072000390000000a08000029000000000887004b0000000a08000029000001fe0000213d0000000002210019000000000223034f000000000202043b00000181022001980000000002070019000001e90000613d0000000601000029000000000116001a0000022d0000413d0000000802000029000000000121004b000002200000a13d0000000001000019000005ee000104300000000801000029000000000116004b0000000001000019000000010100603905ec05190000040f0000000b010000290000000a0200002905ec05310000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000018c0100004100000000001004350000003201000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000018b01000041000000c40010043f0000018401000041000005ee000104300000000601000029000000000101004b0000022d0000c13d0000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000018a01000041000000c40010043f0000018401000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000018e01000041000000c40010043f0000018f01000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000019301000041000000c40010043f0000019401000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000019001000041000000c40010043f0000018401000041000005ee000104300000017f0110009c000001fe0000c13d000000040150008a0000018002000041000000400410008c000000000400001900000000040240190000018001100197000000000601004b000000000200a019000001800110009c00000000010400190000000001026019000000000101004b000001fe0000c13d0000000401300370000000000101043b000001810210009c000001fe0000213d00000023021000390000018004000041000000000652004b0000000006000019000000000604801900000180075001970000018002200197000000000872004b0000000004008019000000000272013f000001800220009c00000000020600190000000002046019000000000202004b000001fe0000c13d0000000402100039000000000223034f000000000202043b000001810420009c000001fe0000213d00000024011000390000000004120019000000000454004b000001fe0000213d0000002404300370000000000604043b000001810460009c000001fe0000213d00000023046000390000018007000041000000000854004b0000000008000019000000000807801900000180095001970000018004400197000000000a94004b0000000007008019000000000494013f000001800440009c00000000040800190000000004076019000000000404004b000001fe0000c13d0000000404600039000000000343034f000000000403043b000001810340009c000001fe0000213d00000024036000390000000006340019000000000556004b000001fe0000213d0000000005000411000080010550008c000002c60000c13d05ec02d00000040f000000400200043d00000000001204350000017c010000410000017c0320009c0000000001024019000000400110021000000185011001c7000005ed0001042e0000000001000416000000000101004b000001fe0000c13d0000002001000039000001000010044300000120000004430000017d01000041000005ed0001042e0000018201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000018601000041000000c40010043f0000018401000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000019501000041000000c40010043f0000019601000041000000e40010043f0000018901000041000005ee000104300000018201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000018301000041000000c40010043f0000018401000041000005ee0001043000030000000000020000001e0530008a000000020d00036700000000065d034f000000000606043b0000000306600210000001970c6001970000000206c001bf000000000746004b000004320000213d000000000b6400490000000207b00210000000000727004b000004400000c13d000000000746004b000002f80000613d0000000005650019000000160630008a000000180710008a0000000008000019000000000985001900000000099d034f000000000909043b00000003099002100000019709900197000000000ac9004b000004080000813d0000000009960019000000020a800210000000000aa70019000000000aad034f00000000099d034f000000000909043b000000000a0a043b0000000009a9013f00000181099001980000041d0000c13d00000002088000390000000009b8004b000002e40000413d0000001f05200190000004580000c13d000001a30520009c0000046a0000813d00000020052001900000047c0000613d00000000080004140000000007120019000000000527004b000000000500001900000001050040390000017c0610019700000001015001900000043a0000c13d0000000001000031000000000571004b0000043a0000413d000100000002001d000300000003001d000200000004001d0000000204600367000001a40580009c0000048e0000813d00000000017100490000017c0110019700000000011403df000000c002800210000001a502200197000001a6022001c700000000012103af000000020200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000004a00000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c0000000209000029000000030a000029000004340000213d0000000104400190000004340000c13d000000400020043f00000000023104360000001f043000390000000504400272000000010b0000290000033d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000003350000413d000000000400004b0000033f0000613d0000000104000031000000000443004b000004320000213d00000003050003670000001f0430018f00000005033002720000034f0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000003470000413d000000000604004b0000035e0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000004bb0000c13d0000000001020433000000400800043d000001a902000041000000000028043500000004028000390000002003000039000000000032043500000024028000390000000000920435000001aa01100197000000db02b00210000001ab02200197000000000412019f0000001f0290018f00000044018000390000000203a00367000001ac044001c7000300000004001d00000005049002720000037e0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000003760000413d000000000502004b0000038d0000613d0000000504400210000000000343034f00000000044100190000000302200210000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000000191001900000000000104350000001f01900039000000200200008a000000000121016f0000017c020000410000017c0380009c00000000030200190000000003084019000000400330021000000044011000390000017c0410009c00000000010280190000006001100210000000000131019f00000000030004140000017c0430009c0000000002034019000000c002200210000000000112019f0000800802000039000200000008001d05ec05dd0000040f000000020a000029000000000301001900000060033002700000017c03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003af0000413d000000000705004b000003c60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004cd0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001810410009c000004340000213d0000000102200190000004340000c13d000000400010043f000000200130008c000004320000413d000001ad010000410000000000100439000080040100003900000004001004430000017c0100004100000000020004140000017c0320009c0000000001024019000000c001100210000001ae011001c7000080020200003905ec05e20000040f0000000102200190000004320000613d000000000101043b000000000101004b000004320000613d000000400400043d000001af0100004100000000001404350000000401400039000000030200002900000000002104350000017c0100004100000000020004140000017c0320009c00000000020180190000017c0340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f0000018d011001c7000080040200003905ec05dd0000040f000000000301001900000060033002700001017c0030019d0000017c0430019700030000000103550000000102200190000004f30000613d0000000202000029000001810120009c000004340000213d000000400020043f0000000301000029000000000001042d000000400100043d00000064021000390000019c03000041000000000032043500000044021000390000019d030000410000000000320435000000240210003900000024030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee00010430000000400100043d00000064021000390000019f0300004100000000003204350000004402100039000001a0030000410000000000320435000000240210003900000032030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee000104300000000001000019000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d00000084021000390000019803000041000000000032043500000064021000390000019903000041000000000032043500000044021000390000019a030000410000000000320435000000240210003900000048030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019b011001c7000005ee00010430000000400100043d0000004402100039000001a1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b2030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b1030000410000000000320435000000240210003900000002030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000004ab0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a40000413d000000000504004b000004b90000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee00010430000000400100043d0000004402100039000001a8030000410000000000320435000000240210003900000019030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000000400200043d0000001f0430018f0000000503300272000004da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004d20000413d000000000504004b000004e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000400200043d0000001f0340018f0000000504400272000005000000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000004f80000413d000000000503004b0000050f0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000017c0100004100000001030000310000017c0430009c00000000030180190000017c0420009c000000000102401900000040011002100000006002300210000000000112019f000005ee00010430000000000101004b0000051c0000613d000000000001042d000000400100043d0000006402100039000001b30300004100000000003204350000004402100039000001b4030000410000000000320435000000240210003900000023030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c000000000102801900000040011002100000019e011001c7000005ee0001043000000000030004140000000004120019000000000224004b000000000500001900000001050040390000017c021001970000000101500190000005900000c13d0000000001000031000000000541004b000005900000413d0000000202200367000001a40530009c000005960000813d00000000014100490000017c0110019700000000011203df000000c002300210000001a502200197000001a6022001c700000000012103af000080100200003905ec05e70000040f000000000301001900000060033002700001017c0030019d0000017c0330019700030000000103550000000102200190000005a80000613d0000003f01300039000001a702100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000001810520009c000005c30000213d0000000104400190000005c30000c13d000000400020043f00000000023104360000001f0430003900000005044002720000056a0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000005620000413d000000000400004b0000056c0000613d0000000104000031000000000443004b000005c90000213d00000003050003670000001f0430018f00000005033002720000057c0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000005740000413d000000000604004b0000058b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005cb0000c13d0000000001020433000000000001042d0000018c0100004100000000001004350000001101000039000000040010043f0000018d01000041000005ee00010430000000400100043d0000004402100039000001b0030000410000000000320435000000240210003900000008030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee000104300000001f0430018f0000000502300272000005b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000005ac0000413d000000000504004b000005c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000005ee000104300000018c0100004100000000001004350000004101000039000000040010043f0000018d01000041000005ee000104300000000001000019000005ee00010430000000400100043d0000004402100039000001b503000041000000000032043500000024021000390000001f030000390000000000320435000001820200004100000000002104350000000402100039000000200300003900000000003204350000017c020000410000017c0310009c00000000010280190000004001100210000001a2011001c7000005ee00010430000005e0002104210000000102000039000000000001042d0000000002000019000000000001042d000005e5002104230000000102000039000000000001042d0000000002000019000000000001042d000005ea002104230000000102000039000000000001042d0000000002000019000000000001042d000005ec00000432000005ed0001042e000005ee00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a478000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000020000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f726167652064696666730000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fff862797465636f646500000000000000000000000000000000000000000000000074696d65732073686f72746572207468616e20746865206f726967696e616c20456e636f6465642064617461206c656e6774682073686f756c6420626520342000000000000000000000000000000000000000a4000000000000000000000000756e647300000000000000000000000000000000000000000000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f0000000000000000000000000000000000000084000000000000000000000000206f726967696e616c2062797465636f64650000000000000000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865706f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c696420646174610000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000066667300000000000000000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d70726573736564537461746544696b656363616b3235362072657475726e656420696e76616c6964206461746100b4d4241d8a2da2cf3e1bf35dd302345ffbb506f1f41300f3c5e72d9a0e037dc2", + "bytecode": "0x0002000000000002000c0000000000020001000000010355000000000301001900000060043002700000012c0040019d0000008003000039000000400030043f000200000004001d0000012c034001970000000102200190000001f20000c13d000000040230008c0000024a0000413d000000000201043b000000e0022002700000012e0420009c000001800000c13d000000040230008a000000800220008c0000024a0000413d0000000402100370000000000802043b0000004402100370000000000402043b0000002402100370000000000e02043b000700000004001d000001300240009c0000024a0000213d000000070200002900000023022000390000013104000041000000000532004b000000000500001900000000050480190000013102200197000000000602004b0000000004008019000001310220009c000000000405c019000000000204004b0000024a0000c13d00000007020000290000000402200039000000000221034f000000000602043b000001300260009c0000024a0000213d00000007020000290000002405200039000100000056001d000000010230006c0000024a0000413d0000006402100370000000000202043b000900000002001d000001300220009c0000024a0000213d000000090200002900000023022000390000013104000041000000000732004b000000000700001900000000070480190000013102200197000000000902004b0000000004008019000001310220009c000000000407c019000000000204004b0000024a0000c13d00000009020000290000000402200039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000009020000290000002404200039000a00000004001d0000000b02400029000000000232004b0000024a0000213d0000000002000411000080080220008c000001fa0000c13d0000000902e0008c000002020000813d000c00020000003d00000110298000c9000001110a00008a000800000000001d000000000700001900060000000e001d000000000208004b000000650000613d00000000328900d9000001100220008c000002ef0000c13d000000000297004b000000ce0000813d0000000002a7004b000002ef0000213d0000011004700039000000000264004b0000024a0000213d00000000025700190000003c02200039000000000321034f000000000303043b00000130033001980000000007040019000000600000c13d000000010f00008a0000000803f0006b000002ef0000613d0000000c0b0000290000000a03b00029000000000731034f000000080320008a000000000231034f000000000707043b000000000202043b000000000272004b0000022a0000c13d000000210200008a00000000022b004b000002ef0000213d0000000c0b0000290000002002b000390000000b0720006c000001560000813d0000000a02200029000000000221034f000000000202043b000000fb07200270000000f802200270000000070d20019000000020070060390000002102b00039000c00000027001e000002ef0000413d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000480c300039000000000cc1034f0000002803300039000000000e31034f000000000221034f000000000302043b00000000020e043b000500000002001d000000060e000029000000000b0c043b0000001f0270008c0000000302700210000000ab0000213d000001000c200089000000000ccf01cf000000000e200049000001000f00008a000000000efe004b000000060e000029000000000c0040190000000003c3016f000000000c07004b000000cc0000613d000001000c20008c000002ef0000213d00000000c77200d9000000080770008c000002ef0000c13d0000010007200089000000000373022f000000000202004b00000000030060190000000802000029000800010020003d00000000020d004b000000c10000613d0000000302d0008c000000c10000613d0000000102d0008c000000c50000c13d00000005023000290000000002b2004b0000000007040019000000600000613d0000016c0000013d0000000002b3004b0000000007040019000000600000613d0000015a0000013d0000000202d0008c000001640000c13d00000005023000690000000002b2004b0000000007040019000000600000613d000001760000013d0000000003000019000000b40000013d00000009020000290000000602200039000000000221034f000000000202043b0000ffff0220018f000000080220006b0000020c0000c13d0000000303e002100000010002300089000000010400008a000800000002001d000400000004001d00000000042401cf00000000023000490003010000000092000000030220006c0000000004004019000500000004001d000900000003001d000001000230008c000002160000213d0000000003000019000000e80000013d0000000002d2004b00000000030400190000015a0000c13d000000000208004b000000ed0000613d00000000428900d9000001100220008c000002ef0000c13d000000000293004b0000024c0000813d0000000002a3004b000002ef0000213d0000011004300039000000000264004b0000024a0000213d00000000025300190000003c0d2000390000000002d1034f000000000202043b00000130072001980000000003040019000000e80000613d0000000c0fe0002a000002ef0000413d0000000b02f0006c0000024a0000213d0000000a030000290000000c02300029000000000221034f000000000202043b0000001f03e0008c000001080000213d000000050220017f00000000030e004b000002e70000613d00000009b3e000f9000000080330008c000002ef0000c13d000000090300006b000002e70000613d0000000802200250000000000227004b000002e70000c13d0000000b02f0006c000001560000813d0000000a02f00029000000000221034f000000000202043b000000fb07200270000000f802200270000000070320019000000020070060390000000102f00039000c00000027001d0000000c0cf0006b000002ef0000a13d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000400cd00039000000000cc1034f000000200dd00039000000000dd1034f000000000221034f000000000202043b000000000f0d043b000000000d0c043b0000001f0c70008c000000030c700210000001390000213d000001000ec00089000000040ee001ef000000000bc0004900070000000d001d000000000d0f0019000000030bb0006c000000000f0d0019000000070d000029000000000e0040190000000002e2016f000000060e000029000000000b07004b000001540000613d000001000bc0008c000002ef0000213d00000000b77c00d9000000080770008c000002ef0000c13d0000010007c00089000000000272022f00000000070c004b0000000002006019000000000703004b000000e50000613d000000030730008c000000e50000613d000000010730008c0000014d0000c13d0000000002f200190000000002d2004b0000000003040019000000e80000613d0000016c0000013d000000020330008c000001640000c13d00000000022f00490000000002d2004b0000000003040019000000e80000613d000001760000013d0000000002000019000001420000013d000001580100004100000000001004350000003201000039000002f20000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000015c01000041000000c40010043f0000015d01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015e01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000016101000041000000c40010043f0000016201000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000015f01000041000000c40010043f0000016001000041000002650000013d0000012f0220009c0000024a0000c13d000000040230008a000000400220008c0000024a0000413d0000000402100370000000000502043b000001300250009c0000024a0000213d00000023025000390000013104000041000000000632004b000000000600001900000000060480190000013102200197000000000702004b0000000004008019000001310220009c000000000406c019000000000204004b0000024a0000c13d0000000402500039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000024045000390000000b02400029000000000623004b0000024a0000413d0000002406100370000000000606043b000001300760009c0000024a0000213d00000023076000390000013108000041000000000937004b000000000900001900000000090880190000013107700197000000000a07004b0000000008008019000001310770009c000000000809c019000000000708004b0000024a0000c13d0000000407600039000000000871034f000000000808043b000a00000008001d000001300880009c0000024a0000213d0000002409600039000900000009001d0000000a08900029000000000338004b0000024a0000213d0000000003000411000080010330008c000002f50000c13d0000000203700039000000000331034f000000000303043b0000000303300210000001350330019700000002083001bf0000000a0780006b0000024a0000413d0000000a0780006900000002097002100000000b0990006c000002fd0000c13d0000000a0980006b000001e40000613d000000060960003900000000089800190000000e066000390000000c055000390000000009000019000000000a980019000000000aa1034f000000000a0a043b000000030aa00210000001350aa00197000000000b3a004b000003130000813d000000000aa60019000000020b900210000000000bb50019000000000bb1034f000000000aa1034f000000000a0a043b000000000b0b043b000000000aba013f000001300aa001980000031d0000c13d0000000209900039000000000a79004b000001d00000413d0000000b030000290000001f033001900000030b0000c13d0000000b03000029000001400330009c000003270000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000015001000041000002590000013d0000000001000416000000000101004b0000024a0000c13d0000002001000039000001000010044300000120000004430000012d01000041000004aa0001042e0000013201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000015101000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000016301000041000000c40010043f0000016401000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000015201000041000000c40010043f0000015301000041000002650000013d000000000208004b000002320000c13d0000000702000029000000600220003900000000030000190000000608000029000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b000001300330019800000000030400190000021c0000613d000002460000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000015b01000041000002590000013d00000000328900d9000001100220008c0000000608000029000002ef0000c13d000000070200002900000060022000390000000003000019000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b00000130033001980000000003040019000002390000613d0000000c0180002a000002ef0000413d0000000b0110006c000002e50000a13d0000000001000019000004ab000104300000000c030000290000000b0230006c0000025c0000c13d0000000002000414000001560320009c000002680000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000015901000041000000c40010043f0000013401000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000015401000041000000c40010043f0000015501000041000000e40010043f0000013c01000041000004ab000104300000012c03500197000000000131034f000000010400002900000002034000690000012c0330019700000000013103df000000c002200210000001410220019700000142022001c700000000012103af000080100200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000002bd0000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f00000000043204360000001f053000390000000505500272000002940000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000028c0000413d000000000500004b000002960000613d0000001f0530018f0000000503300272000002a20000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000029a0000413d000000000605004b000002b10000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000012c03000041000000400100043d0000012c0510009c000000000301401900000040033002100000000002020433000000200220008c000002d80000c13d000000000204043300000000002104350000014e013001c7000004aa0001042e0000001f0430018f0000000502300272000002c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000002c10000413d000000000504004b000002d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000044021000390000015704000041000000000042043500000024021000390000001f0400003900000000004204350000013202000041000000000021043500000004011000390000002002000039000000000021043500000145013001c7000004ab00010430000000000108004b000002ef0000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015a01000041000002590000013d000001580100004100000000001004350000001101000039000000040010043f0000014d01000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000013301000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000004801000039000000a40010043f0000013601000041000000c40010043f0000013701000041000000e40010043f0000013801000041000001040010043f0000013901000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000013f01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000013a01000041000000c40010043f0000013b01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003201000039000000a40010043f0000013d01000041000000c40010043f0000013e01000041000002650000013d0000000b030000290000002003300190000003320000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000014f01000041000002590000013d00000000030004140000012c0530009c000002520000213d0000012c04400197000000000141034f00000002022000690000012c0220019700000000012103df000000c002300210000001410220019700000142022001c700000000012103af000000020200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000004240000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f000000000532043600000001040003670000001f063000390000000506600272000003600000613d000000000740036800000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003580000413d000000000600004b000003620000613d0000001f0630018f00000005033002720000036e0000613d000000000700001900000005087002100000000009850019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000003660000413d000000000706004b0000037d0000613d0000000503300210000000000131034f00000000033500190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000130435000000400600043d00000044016000390000002403600039000c00000006001d00000004066000390000000002020433000000200220008c0000043f0000c13d000000000505043300000146020000410000000c070000290000000000270435000000200200003900000000002604350000000a060000290000000000630435000000090240036000000147035001970000000b04000029000000db044002100000014804400197000000000434019f0000001f0360018f000b0149004001cb0000000504600272000003a00000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000003980000413d000000000503004b000003af0000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000a02000029000000000121001900000000000104350000001f01200039000000200200008a000000000121016f0000012c020000410000000c040000290000012c0340009c00000000030200190000000003044019000000400330021000000044011000390000012c0410009c00000000010280190000006001100210000000000113019f00000000030004140000012c0430009c0000000003028019000000c002300210000000000112019f000080080200003904a9049a0000040f000000000301001900000060033002700000012c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003d90000613d000000000700001900000005087002100000000c09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003d10000413d000000000705004b000003e80000613d0000000506600210000000000761034f0000000c066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000044e0000613d0000001f01400039000000600210018f0000000c01200029000000000221004b00000000020000190000000102004039000001300410009c000004200000213d0000000102200190000004200000c13d000000400010043f000000200130008c0000024a0000413d0000014a010000410000000000100439000080040100003900000004001004430000012c0100004100000000020004140000012c0320009c0000000002018019000000c0012002100000014b011001c7000080020200003904a9049f0000040f0000000102200190000004710000613d000000000101043b000000000101004b0000024a0000613d000000400400043d0000014c01000041000000000014043500000004014000390000000b0200002900000000002104350000012c0100004100000000020004140000012c0320009c00000000020180190000012c0340009c000c00000004001d0000000001044019000a004000100218000000c0012002100000000a011001af0000014d011001c7000080040200003904a9049a0000040f0000000102200190000004720000613d0000000c01000029000001300110009c000004920000a13d000001580100004100000000001004350000004101000039000002f20000013d0000001f0430018f00000005023002720000042f0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004280000413d000000000504004b0000043d0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000132020000410000000c0400002900000000002404350000002002000039000000000026043500000019020000390000000000230435000001440200004100000000002104350000012c010000410000012c0240009c0000000004018019000000400140021000000145011001c7000004ab00010430000000400200043d0000001f0430018f00000005053002720000045b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004530000413d000000000604004b0000046a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000012c010000410000012c0420009c000000000201801900000040012002100000006002300210000000000121019f000004ab00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000012c033001970000000505300272000004820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000047a0000413d000000000604004b000004910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000046a0000013d0000000c02000029000000400020043f0000000b0100002900000000001204350000000a010000290000014e011001c7000004aa0001042e000000000001042f0000049d002104210000000102000039000000000001042d0000000002000019000000000001042d000004a2002104230000000102000039000000000001042d0000000002000019000000000001042d000004a7002104230000000102000039000000000001042d0000000002000019000000000001042d000004a900000432000004aa0001042e000004ab00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a47000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000000000000007fff8456e636f6465642064617461206c656e6774682073686f756c6420626520342074696d65732073686f72746572207468616e20746865206f726967696e616c2062797465636f646500000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f756e6473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865206f726967696e616c2062797465636f64650000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000006400000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000000000000000000000070720000000000000000000000000000000000000000000000000000000000007070000000000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f7261676520646966667300000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d7072657373656453746174654469666673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000006b656363616b3235362072657475726e656420696e76616c69642064617461004e487b71000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012e2e5b654849f0d6385d8d3c791e4e4befced402b4e0cc4743de149426b5367", + "deployedBytecode": "0x0002000000000002000c0000000000020001000000010355000000000301001900000060043002700000012c0040019d0000008003000039000000400030043f000200000004001d0000012c034001970000000102200190000001f20000c13d000000040230008c0000024a0000413d000000000201043b000000e0022002700000012e0420009c000001800000c13d000000040230008a000000800220008c0000024a0000413d0000000402100370000000000802043b0000004402100370000000000402043b0000002402100370000000000e02043b000700000004001d000001300240009c0000024a0000213d000000070200002900000023022000390000013104000041000000000532004b000000000500001900000000050480190000013102200197000000000602004b0000000004008019000001310220009c000000000405c019000000000204004b0000024a0000c13d00000007020000290000000402200039000000000221034f000000000602043b000001300260009c0000024a0000213d00000007020000290000002405200039000100000056001d000000010230006c0000024a0000413d0000006402100370000000000202043b000900000002001d000001300220009c0000024a0000213d000000090200002900000023022000390000013104000041000000000732004b000000000700001900000000070480190000013102200197000000000902004b0000000004008019000001310220009c000000000407c019000000000204004b0000024a0000c13d00000009020000290000000402200039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000009020000290000002404200039000a00000004001d0000000b02400029000000000232004b0000024a0000213d0000000002000411000080080220008c000001fa0000c13d0000000902e0008c000002020000813d000c00020000003d00000110298000c9000001110a00008a000800000000001d000000000700001900060000000e001d000000000208004b000000650000613d00000000328900d9000001100220008c000002ef0000c13d000000000297004b000000ce0000813d0000000002a7004b000002ef0000213d0000011004700039000000000264004b0000024a0000213d00000000025700190000003c02200039000000000321034f000000000303043b00000130033001980000000007040019000000600000c13d000000010f00008a0000000803f0006b000002ef0000613d0000000c0b0000290000000a03b00029000000000731034f000000080320008a000000000231034f000000000707043b000000000202043b000000000272004b0000022a0000c13d000000210200008a00000000022b004b000002ef0000213d0000000c0b0000290000002002b000390000000b0720006c000001560000813d0000000a02200029000000000221034f000000000202043b000000fb07200270000000f802200270000000070d20019000000020070060390000002102b00039000c00000027001e000002ef0000413d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000480c300039000000000cc1034f0000002803300039000000000e31034f000000000221034f000000000302043b00000000020e043b000500000002001d000000060e000029000000000b0c043b0000001f0270008c0000000302700210000000ab0000213d000001000c200089000000000ccf01cf000000000e200049000001000f00008a000000000efe004b000000060e000029000000000c0040190000000003c3016f000000000c07004b000000cc0000613d000001000c20008c000002ef0000213d00000000c77200d9000000080770008c000002ef0000c13d0000010007200089000000000373022f000000000202004b00000000030060190000000802000029000800010020003d00000000020d004b000000c10000613d0000000302d0008c000000c10000613d0000000102d0008c000000c50000c13d00000005023000290000000002b2004b0000000007040019000000600000613d0000016c0000013d0000000002b3004b0000000007040019000000600000613d0000015a0000013d0000000202d0008c000001640000c13d00000005023000690000000002b2004b0000000007040019000000600000613d000001760000013d0000000003000019000000b40000013d00000009020000290000000602200039000000000221034f000000000202043b0000ffff0220018f000000080220006b0000020c0000c13d0000000303e002100000010002300089000000010400008a000800000002001d000400000004001d00000000042401cf00000000023000490003010000000092000000030220006c0000000004004019000500000004001d000900000003001d000001000230008c000002160000213d0000000003000019000000e80000013d0000000002d2004b00000000030400190000015a0000c13d000000000208004b000000ed0000613d00000000428900d9000001100220008c000002ef0000c13d000000000293004b0000024c0000813d0000000002a3004b000002ef0000213d0000011004300039000000000264004b0000024a0000213d00000000025300190000003c0d2000390000000002d1034f000000000202043b00000130072001980000000003040019000000e80000613d0000000c0fe0002a000002ef0000413d0000000b02f0006c0000024a0000213d0000000a030000290000000c02300029000000000221034f000000000202043b0000001f03e0008c000001080000213d000000050220017f00000000030e004b000002e70000613d00000009b3e000f9000000080330008c000002ef0000c13d000000090300006b000002e70000613d0000000802200250000000000227004b000002e70000c13d0000000b02f0006c000001560000813d0000000a02f00029000000000221034f000000000202043b000000fb07200270000000f802200270000000070320019000000020070060390000000102f00039000c00000027001d0000000c0cf0006b000002ef0000a13d0000000c0c0000290000000b0cc0006c0000024a0000213d0000000a02200029000000400cd00039000000000cc1034f000000200dd00039000000000dd1034f000000000221034f000000000202043b000000000f0d043b000000000d0c043b0000001f0c70008c000000030c700210000001390000213d000001000ec00089000000040ee001ef000000000bc0004900070000000d001d000000000d0f0019000000030bb0006c000000000f0d0019000000070d000029000000000e0040190000000002e2016f000000060e000029000000000b07004b000001540000613d000001000bc0008c000002ef0000213d00000000b77c00d9000000080770008c000002ef0000c13d0000010007c00089000000000272022f00000000070c004b0000000002006019000000000703004b000000e50000613d000000030730008c000000e50000613d000000010730008c0000014d0000c13d0000000002f200190000000002d2004b0000000003040019000000e80000613d0000016c0000013d000000020330008c000001640000c13d00000000022f00490000000002d2004b0000000003040019000000e80000613d000001760000013d0000000002000019000001420000013d000001580100004100000000001004350000003201000039000002f20000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000015c01000041000000c40010043f0000015d01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015e01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002e01000039000000a40010043f0000016101000041000000c40010043f0000016201000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002f01000039000000a40010043f0000015f01000041000000c40010043f0000016001000041000002650000013d0000012f0220009c0000024a0000c13d000000040230008a000000400220008c0000024a0000413d0000000402100370000000000502043b000001300250009c0000024a0000213d00000023025000390000013104000041000000000632004b000000000600001900000000060480190000013102200197000000000702004b0000000004008019000001310220009c000000000406c019000000000204004b0000024a0000c13d0000000402500039000000000221034f000000000202043b000b00000002001d000001300220009c0000024a0000213d00000024045000390000000b02400029000000000623004b0000024a0000413d0000002406100370000000000606043b000001300760009c0000024a0000213d00000023076000390000013108000041000000000937004b000000000900001900000000090880190000013107700197000000000a07004b0000000008008019000001310770009c000000000809c019000000000708004b0000024a0000c13d0000000407600039000000000871034f000000000808043b000a00000008001d000001300880009c0000024a0000213d0000002409600039000900000009001d0000000a08900029000000000338004b0000024a0000213d0000000003000411000080010330008c000002f50000c13d0000000203700039000000000331034f000000000303043b0000000303300210000001350330019700000002083001bf0000000a0780006b0000024a0000413d0000000a0780006900000002097002100000000b0990006c000002fd0000c13d0000000a0980006b000001e40000613d000000060960003900000000089800190000000e066000390000000c055000390000000009000019000000000a980019000000000aa1034f000000000a0a043b000000030aa00210000001350aa00197000000000b3a004b000003130000813d000000000aa60019000000020b900210000000000bb50019000000000bb1034f000000000aa1034f000000000a0a043b000000000b0b043b000000000aba013f000001300aa001980000031d0000c13d0000000209900039000000000a79004b000001d00000413d0000000b030000290000001f033001900000030b0000c13d0000000b03000029000001400330009c000003270000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000015001000041000002590000013d0000000001000416000000000101004b0000024a0000c13d0000002001000039000001000010044300000120000004430000012d01000041000004aa0001042e0000013201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000015101000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000016301000041000000c40010043f0000016401000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000015201000041000000c40010043f0000015301000041000002650000013d000000000208004b000002320000c13d0000000702000029000000600220003900000000030000190000000608000029000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b000001300330019800000000030400190000021c0000613d000002460000013d0000013201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000015b01000041000002590000013d00000000328900d9000001100220008c0000000608000029000002ef0000c13d000000070200002900000060022000390000000003000019000000000493004b0000024c0000813d0000000004a3004b000002ef0000213d0000011004300039000000000764004b0000024a0000213d0000000003320019000000000331034f000000000303043b00000130033001980000000003040019000002390000613d0000000c0180002a000002ef0000413d0000000b0110006c000002e50000a13d0000000001000019000004ab000104300000000c030000290000000b0230006c0000025c0000c13d0000000002000414000001560320009c000002680000413d0000013201000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000015901000041000000c40010043f0000013401000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000002301000039000000a40010043f0000015401000041000000c40010043f0000015501000041000000e40010043f0000013c01000041000004ab000104300000012c03500197000000000131034f000000010400002900000002034000690000012c0330019700000000013103df000000c002200210000001410220019700000142022001c700000000012103af000080100200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000002bd0000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f00000000043204360000001f053000390000000505500272000002940000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000028c0000413d000000000500004b000002960000613d0000001f0530018f0000000503300272000002a20000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000029a0000413d000000000605004b000002b10000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000012c03000041000000400100043d0000012c0510009c000000000301401900000040033002100000000002020433000000200220008c000002d80000c13d000000000204043300000000002104350000014e013001c7000004aa0001042e0000001f0430018f0000000502300272000002c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000002c10000413d000000000504004b000002d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000044021000390000015704000041000000000042043500000024021000390000001f0400003900000000004204350000013202000041000000000021043500000004011000390000002002000039000000000021043500000145013001c7000004ab00010430000000000108004b000002ef0000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000015a01000041000002590000013d000001580100004100000000001004350000001101000039000000040010043f0000014d01000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000013301000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000004801000039000000a40010043f0000013601000041000000c40010043f0000013701000041000000e40010043f0000013801000041000001040010043f0000013901000041000004ab000104300000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000013f01000041000002590000013d0000013201000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000013a01000041000000c40010043f0000013b01000041000002650000013d0000013201000041000000800010043f0000002001000039000000840010043f0000003201000039000000a40010043f0000013d01000041000000c40010043f0000013e01000041000002650000013d0000000b030000290000002003300190000003320000c13d0000013201000041000000800010043f0000002001000039000000840010043f0000000201000039000000a40010043f0000014f01000041000002590000013d00000000030004140000012c0530009c000002520000213d0000012c04400197000000000141034f00000002022000690000012c0220019700000000012103df000000c002300210000001410220019700000142022001c700000000012103af000000020200003904a904a40000040f000000000301001900000060033002700000012c033001970000000102200190000004240000613d0000003f023000390000014304200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000001300640009c000004200000213d0000000105500190000004200000c13d000000400040043f000000000532043600000001040003670000001f063000390000000506600272000003600000613d000000000740036800000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000003580000413d000000000600004b000003620000613d0000001f0630018f00000005033002720000036e0000613d000000000700001900000005087002100000000009850019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000003660000413d000000000706004b0000037d0000613d0000000503300210000000000131034f00000000033500190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f0000000000130435000000400600043d00000044016000390000002403600039000c00000006001d00000004066000390000000002020433000000200220008c0000043f0000c13d000000000505043300000146020000410000000c070000290000000000270435000000200200003900000000002604350000000a060000290000000000630435000000090240036000000147035001970000000b04000029000000db044002100000014804400197000000000434019f0000001f0360018f000b0149004001cb0000000504600272000003a00000613d000000000500001900000005065002100000000007610019000000000662034f000000000606043b00000000006704350000000105500039000000000645004b000003980000413d000000000503004b000003af0000613d0000000504400210000000000242034f00000000044100190000000303300210000000000504043300000000053501cf000000000535022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000252019f00000000002404350000000a02000029000000000121001900000000000104350000001f01200039000000200200008a000000000121016f0000012c020000410000000c040000290000012c0340009c00000000030200190000000003044019000000400330021000000044011000390000012c0410009c00000000010280190000006001100210000000000113019f00000000030004140000012c0430009c0000000003028019000000c002300210000000000112019f000080080200003904a9049a0000040f000000000301001900000060033002700000012c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003d90000613d000000000700001900000005087002100000000c09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003d10000413d000000000705004b000003e80000613d0000000506600210000000000761034f0000000c066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000044e0000613d0000001f01400039000000600210018f0000000c01200029000000000221004b00000000020000190000000102004039000001300410009c000004200000213d0000000102200190000004200000c13d000000400010043f000000200130008c0000024a0000413d0000014a010000410000000000100439000080040100003900000004001004430000012c0100004100000000020004140000012c0320009c0000000002018019000000c0012002100000014b011001c7000080020200003904a9049f0000040f0000000102200190000004710000613d000000000101043b000000000101004b0000024a0000613d000000400400043d0000014c01000041000000000014043500000004014000390000000b0200002900000000002104350000012c0100004100000000020004140000012c0320009c00000000020180190000012c0340009c000c00000004001d0000000001044019000a004000100218000000c0012002100000000a011001af0000014d011001c7000080040200003904a9049a0000040f0000000102200190000004720000613d0000000c01000029000001300110009c000004920000a13d000001580100004100000000001004350000004101000039000002f20000013d0000001f0430018f00000005023002720000042f0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004280000413d000000000504004b0000043d0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000004ab0001043000000132020000410000000c0400002900000000002404350000002002000039000000000026043500000019020000390000000000230435000001440200004100000000002104350000012c010000410000012c0240009c0000000004018019000000400140021000000145011001c7000004ab00010430000000400200043d0000001f0430018f00000005053002720000045b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004530000413d000000000604004b0000046a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000012c010000410000012c0420009c000000000201801900000040012002100000006002300210000000000121019f000004ab00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000012c033001970000000505300272000004820000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000047a0000413d000000000604004b000004910000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000046a0000013d0000000c02000029000000400020043f0000000b0100002900000000001204350000000a010000290000014e011001c7000004aa0001042e000000000001042f0000049d002104210000000102000039000000000001042d0000000002000019000000000001042d000004a2002104230000000102000039000000000001042d0000000002000019000000000001042d000004a7002104230000000102000039000000000001042d0000000002000019000000000001042d000004a900000432000004aa0001042e000004ab00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006006d8b500000000000000000000000000000000000000000000000000000000f5e69a47000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000000000000007fff8456e636f6465642064617461206c656e6774682073686f756c6420626520342074696d65732073686f72746572207468616e20746865206f726967696e616c2062797465636f646500000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000456e636f646564206368756e6b20696e646578206973206f7574206f6620626f756e6473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000456e636f646564206368756e6b20646f6573206e6f74206d6174636820746865206f726967696e616c2062797465636f64650000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe07368612072657475726e656420696e76616c6964206461746100000000000000000000000000000000000000000000000000006400000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff0000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002000000000000000000000000070720000000000000000000000000000000000000000000000000000000000007070000000000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000496e636f7272656374206e756d626572206f6620696e697469616c2073746f7261676520646966667300000000000000000000000000000000000000000000004578747261206461746120696e205f636f6d7072657373656453746174654469666673000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000006b656363616b3235362072657475726e656420696e76616c69642064617461004e487b71000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000072773a20656e756d206b6579206d69736d61746368000000000000000000000069773a20696e697469616c206b6579206d69736d6174636800000000000000007472616e73666f726d206f72206e6f20636f6d7072657373696f6e3a20636f6d7072657373656420616e642066696e616c206d69736d61746368000000000000756e737570706f72746564206f7065726174696f6e00000000000000000000007375623a20696e697469616c206d696e757320636f6e766572746564206e6f7420657175616c20746f2066696e616c00000000000000000000000000000000006164643a20696e697469616c20706c757320636f6e766572746564206e6f7420657175616c20746f2066696e616c000000000000000000000000000000000000656e756d65726174696f6e20696e6465782073697a6520697320746f6f206c617267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012e2e5b654849f0d6385d8d3c791e4e4befced402b4e0cc4743de149426b5367", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/ContractDeployer.json b/src/deps/contracts/ContractDeployer.json index fa7be3ad..e35e02ff 100644 --- a/src/deps/contracts/ContractDeployer.json +++ b/src/deps/contracts/ContractDeployer.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ContractDeployer", - "sourceName": "cache-zk/solpp-generated-contracts/ContractDeployer.sol", + "sourceName": "contracts-preprocessed/ContractDeployer.sol", "abi": [ { "anonymous": false, @@ -425,8 +425,8 @@ "type": "function" } ], - "bytecode": "0x0005000000000002000900000000000200000000030100190000006003300270000005a80430019700040000004103550003000000010355000005a80030019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000009b0000c13d0000000002000031000000040120008c0000048b0000413d0000000301000367000000000301043b000000e003300270000005aa0430009c000000a30000a13d000005ab0430009c000000dd0000a13d000005ac0430009c000001750000213d000005af0430009c000001f20000613d000005b00130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d0000000002000411000000020100003900000002011001880000003b0000c13d0000ffff0120008c000000c80000213d000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400400043d000005ca0240009c000004c00000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000007e80000213d00000000032404360000000801100270000000ff0110018f000000010210008c000007e80000213d000600000004001d000700000003001d00000000001304350000000902000029000000010220008c000007ee0000c13d000000000101004b000007ee0000c13d00000001020000390000000701000029000900000002001d00000000002104350000000801000029000005bd011001970000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000006020000290000000002020433000000010320008c0000000705000029000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000007e80000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000400100043d00000009020000290000000000210435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005d0040000410000000805000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d0000000001000416000000000101004b0000048b0000c13d000000200100003900000100001004430000012000000443000005a9010000410000169b0001042e000005b40430009c0000013d0000213d000005b80430009c000003350000613d000005b90430009c000003570000613d000005ba0130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d000000000200041100000002010000390000000201100188000004c60000c13d000005c70120009c000004c60000413d000000400100043d0000006402100039000005ec0300004100000000003204350000004402100039000005ed030000410000000000320435000000240210003900000024030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000005b10430009c000002270000613d000005b20430009c000003e10000613d000005b30330009c0000048b0000c13d000000040220008a000005bb03000041000000200420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000000401100370000000000201043b0000000001000411000080070110008c0000048d0000c13d000005c101000041000000800010043f000900000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001130000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000010b0000413d000000000705004b000001220000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000004970000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c0000048b0000413d000000800300043d000000000303004b0000052d0000c13d000005be03000041000000000031043500000084032001bf00000020040000390000000000430435000000c403200039000005c5040000410000000000430435000000a4022000390000001a0300003900000000003204350000004001100210000005c6011001c70000169c00010430000005b50430009c000004280000613d000005b60130009c000004750000613d000005b70130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d0000000002000031000000040120008a000005bb03000041000000800410008c00000000040000190000000004034019000005bb01100197000000000501004b000000000300a019000005bb0110009c00000000010400190000000001036019000000000101004b0000048b0000c13d00000003010003670000000403100370000000000303043b000900000003001d000005bd0330009c0000048b0000213d0000006401100370000000000101043b000005bc0310009c0000048b0000213d0000000401100039169a09060000040f00000003040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000901000029000000000204001900000000040500190000000005060019169a09210000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000005ad0430009c000002ab0000613d000005ae0330009c0000048b0000c13d000000040320008a000005bb04000041000000400530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000900000003001d000005bc0330009c0000048b0000213d00000009030000290000000002320049000800000002001d000000040220008a000005bb03000041000000a00420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000002402100370000000000202043b000700000002001d000005bd0220009c0000048b0000213d00000000020004100000000003000411000000000223004b000005720000c13d00000009020000290000000402200039000000000121034f000000000201043b000005c101000041000000800010043f000600000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001be0000413d000000000705004b000001d50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000067f0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c0000048b0000413d000000800200043d000000000202004b000007bf0000c13d000005be020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c402100039000005c5030000410000000000320435000000a4011000390000001a0200003900000000002104350000004001400210000005c6011001c70000169c00010430000000040320008a000005bb04000041000000200530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000e04043b000005bc04e0009c0000048b0000213d000000240f3000390000000504e002100000000004f40019000000000424004b0000048b0000213d000000090500008a0000000004000411000000000554016f000080070550008c0000051f0000c13d00000000050e004b0000057c0000c13d0000000001000416000000000101004b000004ed0000613d000007550000013d000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d00000024033000390000000801000029000700000003001d0000000001310019000000000121004b0000048b0000213d0000000201000039000000020110018800000001011002700000025e0000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000600000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000027f0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002770000413d000000000705004b0000028e0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006a50000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000601000029169a09fc0000040f0000000002010019000600000002001d000000090100002900000007030000290000000804000029169a0a320000040f0000000601000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000800000004001d000005bc0440009c0000048b0000213d00000024043000390000000803000029000700000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000600000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000002e70000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003080000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003000000413d000000000705004b000003170000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000076d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000501000029169a09fc0000040f0000000002010019000500000002001d0000000901000029000000060300002900000007040000290000000805000029169a0eda0000040f0000000501000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000400310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000003020003670000000401200370000000000101043b000005bd0310009c0000048b0000213d0000002402200370000000000202043b169a09fc0000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000700000001001d000005bc0110009c0000048b0000213d00000024033000390000000701000029000600000003001d0000000001310019000000000121004b0000048b0000213d000000020100003900000002011001880000000101100270000003910000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b20000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003aa0000413d000000000705004b000003c10000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000005010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d000000090100002900000006030000290000000704000029169a0a320000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000005bd0110009c0000048b0000213d00000009010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000007e80000213d00000000033204360000000801100270000000ff0110018f000000010410008c000007e80000213d00000000001304350000000002020433000000010120008c000007e80000213d0000000101000039000000000202004b000004200000c13d0000000901000029000005e70110019800000000010000190000082c0000c13d000000010110018f000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000700000004001d000005bc0440009c0000048b0000213d00000024043000390000000703000029000600000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000500000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000004670000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000006f10000c13d000005be01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000005ed01000041000000c40010043f000005ec01000041000000e40010043f000005ee010000410000169c000104300000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000005bd0210009c000004bd0000a13d00000000010000190000169c00010430000005be01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000005e001000041000000c40010043f000005c0010000410000169c00010430000000400200043d0000001f0430018f0000000503300272000004a40000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000049c0000413d000000000504004b000004b30000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d000005e90320009c000004ef0000413d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000903000029000000000232019f000000000021041b000000400100043d0000000000310435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005eb040000410000000805000029169a16850000040f00000001012001900000048b0000613d00000000010000190000169b0001042e0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000007e80000813d00000000011204360000000803300270000000ff0330018f000000010430008c000007e80000213d00000000003104350000000003020433000000010230008c000007e80000213d000000400200043d00000000033204360000000001010433000000010410008c000007e80000213d0000000000130435000005a801000041000005a80320009c00000000010240190000004001100210000005ea011001c70000169b0001042e000005be01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f000005d101000041000000c40010043f000005d201000041000000e40010043f000005d301000041000001040010043f000005d4010000410000169c000104300000000001000416000000000101004b000007400000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400400043d000000240140003900000009020000290000000000210435000005e4010000410000000000140435000000040140003900008010020000390000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000800000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000008060000613d0000000801000029000005bc0110009c000004c00000213d0000000801000029000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000080070500003900008010070000390000000906000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d000005be01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f000005bf01000041000000c40010043f000005c0010000410000169c0001043000000000053200490000008402300039000000c30550008a0000000007000019000000000600001900000005087002100000000008f80019000000000881034f000000000808043b000005bb09000041000000000a58004b000000000a000019000000000a098019000005bb0b500197000005bb0c800197000000000dbc004b0000000009008019000000000bbc013f000005bb0bb0009c00000000090ac019000000000909004b0000048b0000c13d0000000008820019000000000881034f000000000808043b0000000006680019000000000886004b000000000800001900000001080040390000000108800190000007b90000c13d00000001077000390000000008e7004b000005810000413d0000000001000416000000000161004b000007550000c13d000000c30100008a0000000001310049000200000001001d000005bd01400197000100000001001d000000000900001900050000000e001d00040000000f001d00000005019002100000000002f100190000000301000367000000000221034f000000000202043b00000002030000290000000003300031000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000002f20019000800000002001d0000006002200039000700000002001d000000000121034f000000000101043b000300000001001d000005d50100004100000000001004390000000001000410000600000001001d0000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000900000009001d169a168a0000040f000000080b0000290000000909000029000000040f000029000000050e00002900000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400a00043d000005d70100004100000000001a04350000000401a00039000000400200003900000000002104350000000301b00367000000000101043b0000004402a0003900000000001204350000002001b000390000000301100367000000000101043b000005bd0210009c0000048b0000213d0000006402a0003900000000001204350000004001b000390000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b0000048b0000c13d0000008402a00039000000000012043500000007010000290000000301100367000000000101043b000000a402a00039000000000012043500000000020000310000000001b200490000008003b000390000001f0410008a0000000301000367000000000331034f000000000303043b000005bb05000041000000000643004b00000000060000190000000006058019000005bb04400197000005bb07300197000000000847004b0000000005008019000000000447013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000003b30019000000000131034f000000000101043b000005bc0410009c0000048b0000213d00000020033000390000000002120049000005bb04000041000000000523004b00000000050000190000000005042019000005bb02200197000005bb06300197000000000726004b0000000004008019000000000226013f000005bb0220009c00000000020500190000000002046019000000000202004b0000048b0000c13d000000c402a00039000000a0040000390000000000420435000000e402a0003900000000001204350000010402a0003900000003033003670000000504100272000006380000613d000000000500001900000005065002100000000007620019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000006300000413d0000001f05100190000006470000613d0000000504400210000000000343034f00000000044200190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000221001900000000000204350000002402a000390000000103000029000000000032043500000000020004140000000604000029000000040340008c000006780000613d0000001f01100039000000200300008a000000000131016f000005d803000041000005d80510009c0000000001038019000005a803000041000005a805a0009c00080000000a001d000000000503001900000000050a401900000040055002100000006001100210000000000151019f000005a80520009c0000000002038019000000c002200210000000000121019f000005d9011000410000000303000029000000000203004b0000066b0000613d000005da011001c700008009020000390000000005000019169a16850000040f0000066d0000013d0000000002040019169a16850000040f000400000001035500000000030100190000006003300270000105a80030019d000005a8043001970000000102200190000000050e000029000000040f0000290000000909000029000000080a000029000008e00000613d000005bc01a0009c000004c00000213d0000004000a0043f00000001099000390000000001e9004b000005a90000413d000004ed0000013d000000400200043d0000001f0430018f00000005033002720000068c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006840000413d000000000504004b0000069b0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006b20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006aa0000413d000000000504004b000006c10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006d80000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006d00000413d000000000504004b000006e70000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005c801000041000000800010043f0000000001000411000400000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000007100000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000007080000413d000000000705004b0000071f0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000007930000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000004010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d0000000901000029000000050300002900000006040000290000000705000029169a0eda0000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400100043d0000008402100039000005dd0300004100000000003204350000006402100039000005de0300004100000000003204350000004402100039000005df030000410000000000320435000000240210003900000045030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000077a0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007720000413d000000000504004b000007890000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000007a00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007980000413d000000000504004b000007af0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000300000001001d0000000000010435000000090100002900000024011000390000000301100367000000000101043b000400000001001d000005bd0110009c0000048b0000213d00000004010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000005020000290000000002020433000000010320008c000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000003020000290000000002020433000000010320008c0000089e0000a13d000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000000400100043d0000008402100039000005cb0300004100000000003204350000006402100039000005cc0300004100000000003204350000004402100039000005cd030000410000000000320435000000240210003900000043030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0340018f0000000504400272000008130000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000080b0000413d000000000503004b000008220000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400400043d000800000004001d000005e8010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a168a0000040f000000080a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000008520000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000084a0000413d00000000090a0019000000000705004b000008620000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000008780000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005bc0410009c000004c00000213d0000000102200190000004c00000c13d000000400010043f000000200130008c0000048b0000413d0000000001090433000000000101004b000000000100001900000001010060390000041f0000013d000000400200043d0000001f0430018f0000000503300272000008850000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087d0000413d000000000504004b000008940000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000090100002900000084021000390000000301000367000000000221034f000000000202043b0000000803000029000000230330008a000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d000000090300002900000000023200190000000403200039000000000131034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d000000080100002900000000011000790000002404200039000005bb02000041000000000314004b00000000030000190000000003022019000005bb01100197000500000004001d000005bb04400197000000000514004b0000000002008019000000000114013f000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000009010000290000004401100039169a0a280000040f000000000601001900000007010000290000000402000029000000060300002900000005040000290000000805000029169a13880000040f00000000010000190000169b0001042e000000400200043d0000001f0340018f0000000504400272000008ed0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000008e50000413d000000000503004b000008fc0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000001f03100039000005bb04000041000000000523004b00000000050000190000000005044019000005bb06200197000005bb03300197000000000763004b000000000400a019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b0000091f0000613d0000000303100367000000000303043b000005bc0430009c0000091f0000213d00000020011000390000000004310019000000000224004b0000091f0000213d0000000002030019000000000001042d00000000010000190000169c00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000005a8044001970000000105500190000009af0000c13d0000000006000031000000000586004b000009af0000413d000200000002001d000300000001001d000100000003001d0000000304400367000005ef0570009c000009bd0000813d0000000002860049000005a80220019700000000022403df000000c001700210000005f001100197000005f1011001c700000000011203af0000801002000039169a168f0000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000009cf0000613d0000003f01300039000005f202100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000005bc0520009c000009b50000213d0000000104400190000009b50000c13d000000400020043f00000000023104360000001f0430003900000005044002720000095e0000613d00000000050000310000000305500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000009560000413d000000000400004b000009600000613d0000000104000031000000000443004b000009bb0000213d00000004050003670000001f0430018f0000000503300272000009700000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000009680000413d000000000604004b0000097f0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000003040000290000000205000029000009ea0000c13d0000000002020433000000400100043d000000a003100039000000000023043500000080021000390000000000520435000000600210003900000001030000290000000000320435000005bd02400197000000400310003900000000002304350000002002100039000005f4030000410000000000320435000000a0030000390000000000310435000005f50310009c000009b50000213d000000c003100039000000400030043f000005a803000041000005a80420009c000000000203801900000040022002100000000001010433000005a80410009c00000000010380190000006001100210000000000121019f0000000002000414000005a80420009c0000000002038019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f0000000102200190000009bb0000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000009da0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d30000413d000000000504004b000009e80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400100043d0000004402100039000005f303000041000000000032043500000024021000390000001f030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000400300043d00000060043000390000000000240435000005bd011001970000004002300039000000000012043500000060010000390000000001130436000005f7020000410000000000210435000005f80230009c00000a200000813d0000008002300039000000400020043f000005a802000041000005a80410009c000000000102801900000040011002100000000003030433000005a80430009c00000000030280190000006003300210000000000113019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f000000010220019000000a260000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c000104300000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b00000a300000c13d000000000001042d00000000010000190000169c000104300008000000000002000700000001001d000000000101004b00000d250000613d000300000004001d000400000003001d000000400400043d000200000002001d000005bd022001970000ffff0120008c00000d370000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a630000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a5b0000413d000000000705004b00000a720000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d4b0000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c00000d130000213d000000010110019000000d130000c13d000000400040043f0000001f0130008c00000d110000a13d00000000010a0433000000000101004b000000040140003900000d710000c13d000005fb02000041000000000024043500000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aab0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000aa30000413d000000000705004b00000aba0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d810000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000da70000c13d000005c1010000410000000000140435000000040140003900000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ae60000413d000000000705004b00000afd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000db80000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000dde0000613d000005ca0140009c00000d130000213d0000004001400039000000400010043f0000000001040436000100000001001d000000000001043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f0000000503000029000000010220019000000d110000613d000000000101043b0000000002030433000000020320008c00000d190000813d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000001020000290000000002020433000000010320008c00000d190000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b00000ba70000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000100000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e680000613d0000000102000029000005bc0120009c00000d130000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e8e0000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f00000000010004160000060101100197000000000001041700000bd80000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000eb40000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f0000000001000414000000040400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a804400197000000010330019000000d1f0000c13d0000000003000031000000000523004b00000d1f0000413d0000000304400367000005ef0510009c00000def0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000202000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a8033001970004000000010355000000010220019000000e010000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c00000d130000213d000000010220019000000d130000c13d000000400010043f000500000005001d00000000073504360000001f01300039000000050110027200000c170000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b00000c0f0000413d000000000100004b00000c190000613d0000000101000031000000000113004b00000d110000213d00000004020003670000001f0130018f000000050330027200000c290000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b00000c210000413d000000000401004b00000c380000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e1c0000613d0000000609000029000005bc0190009c000000050100002900000d130000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b000000040400002900000d110000c13d0000000002040433000005bc0320009c00000d110000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b00000d110000c13d0000000023020434000005bc0430009c00000d130000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c00000d130000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000d110000213d000000000432004b00000cb70000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b00000d110000c13d000000400500043d000005ca0650009c00000d130000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b00000c9c0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000606000029000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000ce30000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000cd90000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e420000613d0000000602000029000005bc0120009c000000000102001900000d130000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f000000010120019000000d110000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d580000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d500000413d000000000504004b00000d670000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fa030000410000000000320435000000240240003900000015030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d8e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d860000413d000000000504004b00000d9d0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fc020000410000000000210435000000240140003900000013020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000dc50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000dbd0000413d000000000504004b00000dd40000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f000000050230027200000e0c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000e050000413d000000000504004b00000e1a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f000000050440027200000e290000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e210000413d000000000503004b00000e380000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e4f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e470000413d000000000503004b00000e5e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e750000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e6d0000413d000000000503004b00000e840000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e9b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e930000413d000000000503004b00000eaa0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000ec10000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000eb90000413d000000000503004b00000ed00000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300008000000000002000300000005001d000700000001001d000000000101004b000011d30000613d000400000003001d000200000004001d000000400400043d000100000002001d000005bd022001970000ffff0120008c000011e50000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f0c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f040000413d000000000705004b00000f1b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000011f90000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c000011c10000213d0000000101100190000011c10000c13d000000400040043f0000001f0130008c000011bf0000a13d00000000010a0433000000000101004b0000121f0000c13d000005fb010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f540000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f4c0000413d000000000705004b00000f630000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012300000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000000401400039000012560000c13d000005c102000041000000000024043500000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f970000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f8f0000413d000000000705004b00000fa60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012660000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000128c0000613d000005ca0140009c000011c10000213d0000004001400039000000400010043f000000000304043600000000000304350000000402000029000000020120008c000011c70000813d0000000000240435000400000003001d000000000003043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f00000005030000290000000102200190000011bf0000613d000000000101043b0000000002030433000000010320008c0000000405000029000011c70000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000011c70000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b000010550000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000400000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013160000613d0000000402000029000005bc0120009c000011c10000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000133c0000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f000000000100041600000601011001970000000000010417000010860000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013620000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f0000000001000414000000020400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a8044001970000000103300190000011cd0000c13d0000000003000031000000000523004b000011cd0000413d0000000304400367000005ef0510009c0000129d0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000102000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000012af0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000011c10000213d0000000102200190000011c10000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000010c50000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b000010bd0000413d000000000100004b000010c70000613d0000000101000031000000000113004b000011bf0000213d00000004020003670000001f0130018f0000000503300272000010d70000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000010cf0000413d000000000401004b000010e60000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012ca0000613d0000000609000029000005bc0190009c0000000501000029000011c10000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000011bf0000c13d0000000002040433000005bc0320009c000011bf0000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000011bf0000c13d0000000023020434000005bc0430009c000011c10000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c000011c10000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000011bf0000213d000000000432004b000011650000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000011bf0000c13d000000400500043d000005ca0650009c000011c10000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b0000114a0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000011910000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000011870000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012f00000613d0000000602000029000005bc0120009c0000000001020019000011c10000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f0000000101200190000011bf0000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012060000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011fe0000413d000000000504004b000012150000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fa020000410000000000210435000000240140003900000015020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000123d0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000012350000413d000000000504004b0000124c0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fc030000410000000000320435000000240240003900000013030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012730000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000126b0000413d000000000504004b000012820000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000012ba0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012b30000413d000000000504004b000012c80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000012d70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012cf0000413d000000000503004b000012e60000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000012fd0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012f50000413d000000000503004b0000130c0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013230000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000131b0000413d000000000503004b000013320000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013410000413d000000000503004b000013580000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000136f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013670000413d000000000503004b0000137e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300009000000000002000500000005001d000700000003001d000800000002001d000600000001001d0000000002000416000000000106004b0000152f0000613d000300000004001d000400000002001d000000000102004b000013cb0000613d000005d50100004100000000001004390000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000000801000029000005bd01100197000000240240003900000000001204350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000900000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000016240000613d0000000902000029000005bc0120009c000015790000213d000000400020043f000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d0000000701000029000005ff0110019700000600011001c7000000400400043d00000024024000390000000000120435000005fe0100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039000100000002001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015850000613d0000000202000029000005bc0120009c0000000401000029000015790000213d000000400020043f000000000101004b000014070000613d0000000001000416000006010110019700000000000104170000000001000414000000030400002900000005030000290000000002430019000000000332004b00000000030000190000000103004039000005a80440019700000001033001900000157f0000c13d0000000003000031000000000523004b0000157f0000413d0000000304400367000005ef0510009c000015ab0000813d0000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af0000000602000029000005bd0d200197000000080200002900080000000d001d169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000015bd0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000015790000213d0000000102200190000015790000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000014460000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b0000143e0000413d000000000100004b000014480000613d0000000101000031000000000113004b000015770000213d00000004020003670000001f0130018f0000000503300272000014580000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000014500000413d000000000401004b000014670000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000001020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d00000603010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015d80000613d0000000609000029000005bc0190009c0000000501000029000015790000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000015770000c13d0000000002040433000005bc0320009c000015770000213d000000000114001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000015770000c13d0000000023020434000005bc0430009c000015790000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004490019000005bc0540009c000015790000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000015770000213d000000000432004b000014e60000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000015770000c13d000000400500043d000005ca0650009c000015790000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b000014cb0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000015120000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000015080000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000500000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015fe0000613d0000000502000029000005bc0120009c000015660000a13d000015790000013d000000000102004b0000164a0000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000000240140003900000007020000290000000000210435000005e40100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000165f0000613d0000000502000029000005bc0120009c000015790000213d0000000601000029000005bd01100197000800000001001d000000400020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000080500002900000007060000290000000907000029169a16850000040f0000000101200190000015770000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400200043d0000001f0340018f0000000504400272000015920000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000158a0000413d000000000503004b000015a10000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000015c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015c10000413d000000000504004b000015d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000015e50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000015dd0000413d000000000503004b000015f40000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000160b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016030000413d000000000503004b0000161a0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000016310000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016290000413d000000000503004b000016400000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0340018f00000005044002720000166c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016640000413d000000000503004b0000167b0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c0001043000001688002104210000000102000039000000000001042d0000000002000019000000000001042d0000168d002104230000000102000039000000000001042d0000000002000019000000000001042d00001692002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900001698002104290000000102000039000000000001042d0000000002000019000000000001042d0000169a000004320000169b0001042e0000169c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda335100000000000000000000000000000000000000000000000000000000571809818000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff54686520636f64652068617368206973206e6f74206b6e6f776e00000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a40000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb000000000000000000000000000000000000010400000000000000000000000002000000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006d656e74730000000000000000000000000000000000000000000000000000002074686520636f6d62696e6564206076616c75656073206f66206465706c6f796076616c7565602070726f7669646564206973206e6f7420657175616c20746f496e617070726f7072696174652063616c6c65720000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c200000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe06b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f4f766572666c6f7700000000000000000000000000000000000000000000000063bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000579952fc000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0001000100000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f000000000039187a54c09fddd78293acb1d6fafb891fffc8438366fb93b8fe735877e8b717", - "deployedBytecode": "0x0005000000000002000900000000000200000000030100190000006003300270000005a80430019700040000004103550003000000010355000005a80030019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000009b0000c13d0000000002000031000000040120008c0000048b0000413d0000000301000367000000000301043b000000e003300270000005aa0430009c000000a30000a13d000005ab0430009c000000dd0000a13d000005ac0430009c000001750000213d000005af0430009c000001f20000613d000005b00130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d0000000002000411000000020100003900000002011001880000003b0000c13d0000ffff0120008c000000c80000213d000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400400043d000005ca0240009c000004c00000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000007e80000213d00000000032404360000000801100270000000ff0110018f000000010210008c000007e80000213d000600000004001d000700000003001d00000000001304350000000902000029000000010220008c000007ee0000c13d000000000101004b000007ee0000c13d00000001020000390000000701000029000900000002001d00000000002104350000000801000029000005bd011001970000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000006020000290000000002020433000000010320008c0000000705000029000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000007e80000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000400100043d00000009020000290000000000210435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005d0040000410000000805000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d0000000001000416000000000101004b0000048b0000c13d000000200100003900000100001004430000012000000443000005a9010000410000169b0001042e000005b40430009c0000013d0000213d000005b80430009c000003350000613d000005b90430009c000003570000613d000005ba0130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000000010110008c0000048b0000213d000000000200041100000002010000390000000201100188000004c60000c13d000005c70120009c000004c60000413d000000400100043d0000006402100039000005ec0300004100000000003204350000004402100039000005ed030000410000000000320435000000240210003900000024030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000005b10430009c000002270000613d000005b20430009c000003e10000613d000005b30330009c0000048b0000c13d000000040220008a000005bb03000041000000200420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000000401100370000000000201043b0000000001000411000080070110008c0000048d0000c13d000005c101000041000000800010043f000900000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001130000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000010b0000413d000000000705004b000001220000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000004970000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c0000048b0000413d000000800300043d000000000303004b0000052d0000c13d000005be03000041000000000031043500000084032001bf00000020040000390000000000430435000000c403200039000005c5040000410000000000430435000000a4022000390000001a0300003900000000003204350000004001100210000005c6011001c70000169c00010430000005b50430009c000004280000613d000005b60130009c000004750000613d000005b70130009c0000048b0000c13d0000000001000416000000000101004b0000048b0000c13d0000000002000031000000040120008a000005bb03000041000000800410008c00000000040000190000000004034019000005bb01100197000000000501004b000000000300a019000005bb0110009c00000000010400190000000001036019000000000101004b0000048b0000c13d00000003010003670000000403100370000000000303043b000900000003001d000005bd0330009c0000048b0000213d0000006401100370000000000101043b000005bc0310009c0000048b0000213d0000000401100039169a09060000040f00000003040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000901000029000000000204001900000000040500190000000005060019169a09210000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000005ad0430009c000002ab0000613d000005ae0330009c0000048b0000c13d000000040320008a000005bb04000041000000400530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000900000003001d000005bc0330009c0000048b0000213d00000009030000290000000002320049000800000002001d000000040220008a000005bb03000041000000a00420008c00000000040000190000000004034019000005bb02200197000000000502004b000000000300a019000005bb0220009c00000000020400190000000002036019000000000202004b0000048b0000c13d0000002402100370000000000202043b000700000002001d000005bd0220009c0000048b0000213d00000000020004100000000003000411000000000223004b000005720000c13d00000009020000290000000402200039000000000121034f000000000201043b000005c101000041000000800010043f000600000002001d000000840020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800402000039169a168a0000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001c60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001be0000413d000000000705004b000001d50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000067f0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c0000048b0000413d000000800200043d000000000202004b000007bf0000c13d000005be020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c402100039000005c5030000410000000000320435000000a4011000390000001a0200003900000000002104350000004001400210000005c6011001c70000169c00010430000000040320008a000005bb04000041000000200530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000e04043b000005bc04e0009c0000048b0000213d000000240f3000390000000504e002100000000004f40019000000000424004b0000048b0000213d000000090500008a0000000004000411000000000554016f000080070550008c0000051f0000c13d00000000050e004b0000057c0000c13d0000000001000416000000000101004b000004ed0000613d000007550000013d000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d00000024033000390000000801000029000700000003001d0000000001310019000000000121004b0000048b0000213d0000000201000039000000020110018800000001011002700000025e0000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000600000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000027f0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002770000413d000000000705004b0000028e0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006a50000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000601000029169a09fc0000040f0000000002010019000600000002001d000000090100002900000007030000290000000804000029169a0a320000040f0000000601000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000800000004001d000005bc0440009c0000048b0000213d00000024043000390000000803000029000700000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000600000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000002e70000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003080000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003000000413d000000000705004b000003170000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000400000001035500000001022001900000076d0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d000000800200043d0000000501000029169a09fc0000040f0000000002010019000500000002001d0000000901000029000000060300002900000007040000290000000805000029169a0eda0000040f0000000501000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000400310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000003020003670000000401200370000000000101043b000005bd0310009c0000048b0000213d0000002402200370000000000202043b169a09fc0000040f000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000600530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000141034f000000000101043b000700000001001d000005bc0110009c0000048b0000213d00000024033000390000000701000029000600000003001d0000000001310019000000000121004b0000048b0000213d000000020100003900000002011001880000000101100270000003910000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000004690000613d000005c801000041000000800010043f0000000001000411000500000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b20000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003aa0000413d000000000705004b000003c10000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000006cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000005010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d000000090100002900000006030000290000000704000029169a0a320000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e0000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000900000001001d000005bd0110009c0000048b0000213d00000009010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000007e80000213d00000000033204360000000801100270000000ff0110018f000000010410008c000007e80000213d00000000001304350000000002020433000000010120008c000007e80000213d0000000101000039000000000202004b000004200000c13d0000000901000029000005e70110019800000000010000190000082c0000c13d000000010110018f000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000040320008a000005bb04000041000000800530008c00000000050000190000000005044019000005bb03300197000000000603004b000000000400a019000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000002403100370000000000303043b000900000003001d0000000403100370000000000303043b000800000003001d0000004403100370000000000303043b000005bc0430009c0000048b0000213d0000002304300039000005bb05000041000000000624004b00000000060000190000000006058019000005bb07200197000005bb04400197000000000874004b0000000005008019000000000474013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000404300039000000000441034f000000000404043b000700000004001d000005bc0440009c0000048b0000213d00000024043000390000000703000029000600000004001d0000000003430019000000000223004b0000048b0000213d0000006401100370000000000101043b000500000001001d000000010110008c0000048b0000213d000000020100003900000002011001880000000101100270000004670000c13d0000000001000411000005c70110009c00000000010000190000000101004039000000000101004b000006f10000c13d000005be01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000005ed01000041000000c40010043f000005ec01000041000000e40010043f000005ee010000410000169c000104300000000001000416000000000101004b0000048b0000c13d000000040100008a0000000001100031000005bb02000041000000200310008c00000000030000190000000003024019000005bb01100197000000000401004b000000000200a019000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000004010000390000000301100367000000000101043b000005bd0210009c000004bd0000a13d00000000010000190000169c00010430000005be01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000005e001000041000000c40010043f000005c0010000410000169c00010430000000400200043d0000001f0430018f0000000503300272000004a40000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000049c0000413d000000000504004b000004b30000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d000005e90320009c000004ef0000413d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000800000002001d0000000000200435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000903000029000000000232019f000000000021041b000000400100043d0000000000310435000005a8020000410000000003000414000005a80430009c0000000003028019000005a80410009c00000000010280190000004001100210000000c002300210000000000112019f000005cf011001c70000800d020000390000000203000039000005eb040000410000000805000029169a16850000040f00000001012001900000048b0000613d00000000010000190000169b0001042e0000004003200039000000400030043f0000002003200039000000000003043500000000000204350000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000400200043d000005ca0320009c000004c00000213d000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000007e80000813d00000000011204360000000803300270000000ff0330018f000000010430008c000007e80000213d00000000003104350000000003020433000000010230008c000007e80000213d000000400200043d00000000033204360000000001010433000000010410008c000007e80000213d0000000000130435000005a801000041000005a80320009c00000000010240190000004001100210000005ea011001c70000169b0001042e000005be01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f000005d101000041000000c40010043f000005d201000041000000e40010043f000005d301000041000001040010043f000005d4010000410000169c000104300000000001000416000000000101004b000007400000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f00000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400400043d000000240140003900000009020000290000000000210435000005e4010000410000000000140435000000040140003900008010020000390000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000800000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000008060000613d0000000801000029000005bc0110009c000004c00000213d0000000801000029000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000080070500003900008010070000390000000906000029169a16850000040f0000000101200190000004ed0000c13d0000048b0000013d000005be01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f000005bf01000041000000c40010043f000005c0010000410000169c0001043000000000053200490000008402300039000000c30550008a0000000007000019000000000600001900000005087002100000000008f80019000000000881034f000000000808043b000005bb09000041000000000a58004b000000000a000019000000000a098019000005bb0b500197000005bb0c800197000000000dbc004b0000000009008019000000000bbc013f000005bb0bb0009c00000000090ac019000000000909004b0000048b0000c13d0000000008820019000000000881034f000000000808043b0000000006680019000000000886004b000000000800001900000001080040390000000108800190000007b90000c13d00000001077000390000000008e7004b000005810000413d0000000001000416000000000161004b000007550000c13d000000c30100008a0000000001310049000200000001001d000005bd01400197000100000001001d000000000900001900050000000e001d00040000000f001d00000005019002100000000002f100190000000301000367000000000221034f000000000202043b00000002030000290000000003300031000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d0000000002f20019000800000002001d0000006002200039000700000002001d000000000121034f000000000101043b000300000001001d000005d50100004100000000001004390000000001000410000600000001001d0000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000900000009001d169a168a0000040f000000080b0000290000000909000029000000040f000029000000050e00002900000001022001900000048b0000613d000000000101043b000000000101004b0000048b0000613d000000400a00043d000005d70100004100000000001a04350000000401a00039000000400200003900000000002104350000000301b00367000000000101043b0000004402a0003900000000001204350000002001b000390000000301100367000000000101043b000005bd0210009c0000048b0000213d0000006402a0003900000000001204350000004001b000390000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b0000048b0000c13d0000008402a00039000000000012043500000007010000290000000301100367000000000101043b000000a402a00039000000000012043500000000020000310000000001b200490000008003b000390000001f0410008a0000000301000367000000000331034f000000000303043b000005bb05000041000000000643004b00000000060000190000000006058019000005bb04400197000005bb07300197000000000847004b0000000005008019000000000447013f000005bb0440009c00000000040600190000000004056019000000000404004b0000048b0000c13d0000000003b30019000000000131034f000000000101043b000005bc0410009c0000048b0000213d00000020033000390000000002120049000005bb04000041000000000523004b00000000050000190000000005042019000005bb02200197000005bb06300197000000000726004b0000000004008019000000000226013f000005bb0220009c00000000020500190000000002046019000000000202004b0000048b0000c13d000000c402a00039000000a0040000390000000000420435000000e402a0003900000000001204350000010402a0003900000003033003670000000504100272000006380000613d000000000500001900000005065002100000000007620019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000006300000413d0000001f05100190000006470000613d0000000504400210000000000343034f00000000044200190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000221001900000000000204350000002402a000390000000103000029000000000032043500000000020004140000000604000029000000040340008c000006780000613d0000001f01100039000000200300008a000000000131016f000005d803000041000005d80510009c0000000001038019000005a803000041000005a805a0009c00080000000a001d000000000503001900000000050a401900000040055002100000006001100210000000000151019f000005a80520009c0000000002038019000000c002200210000000000121019f000005d9011000410000000303000029000000000203004b0000066b0000613d000005da011001c700008009020000390000000005000019169a16850000040f0000066d0000013d0000000002040019169a16850000040f000400000001035500000000030100190000006003300270000105a80030019d000005a8043001970000000102200190000000050e000029000000040f0000290000000909000029000000080a000029000008e00000613d000005bc01a0009c000004c00000213d0000004000a0043f00000001099000390000000001e9004b000005a90000413d000004ed0000013d000000400200043d0000001f0430018f00000005033002720000068c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006840000413d000000000504004b0000069b0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006b20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006aa0000413d000000000504004b000006c10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000006d80000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000006d00000413d000000000504004b000006e70000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005c801000041000000800010043f0000000001000411000400000001001d000000840010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c2011001c70000800302000039169a16850000040f00000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000007100000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000007080000413d000000000705004b0000071f0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000007930000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c0000048b0000413d00000004010000290000000902000029000000080300002900000006040000290000000705000029169a09210000040f0000000002010019000800000002001d0000000901000029000000050300002900000006040000290000000705000029169a0eda0000040f0000000801000029000005bd01100197000000400200043d0000000000120435000005a801000041000005a80320009c00000000010240190000004001100210000005c9011001c70000169b0001042e000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400100043d0000008402100039000005dd0300004100000000003204350000006402100039000005de0300004100000000003204350000004402100039000005df030000410000000000320435000000240210003900000045030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000077a0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007720000413d000000000504004b000007890000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0430018f0000000503300272000007a00000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000007980000413d000000000504004b000007af0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000300000001001d0000000000010435000000090100002900000024011000390000000301100367000000000101043b000400000001001d000005bd0110009c0000048b0000213d00000004010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039169a168a0000040f00000001022001900000048b0000613d000000000101043b00000005020000290000000002020433000000010320008c000007e80000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000003020000290000000002020433000000010320008c0000089e0000a13d000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000000400100043d0000008402100039000005cb0300004100000000003204350000006402100039000005cc0300004100000000003204350000004402100039000005cd030000410000000000320435000000240210003900000043030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005ce011001c70000169c00010430000000400200043d0000001f0340018f0000000504400272000008130000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000080b0000413d000000000503004b000008220000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400400043d000800000004001d000005e8010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a168a0000040f000000080a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000008520000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000084a0000413d00000000090a0019000000000705004b000008620000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000008780000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005bc0410009c000004c00000213d0000000102200190000004c00000c13d000000400010043f000000200130008c0000048b0000413d0000000001090433000000000101004b000000000100001900000001010060390000041f0000013d000000400200043d0000001f0430018f0000000503300272000008850000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087d0000413d000000000504004b000008940000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b000000090100002900000084021000390000000301000367000000000221034f000000000202043b0000000803000029000000230330008a000005bb04000041000000000532004b00000000050000190000000005048019000005bb03300197000005bb06200197000000000736004b0000000004008019000000000336013f000005bb0330009c00000000030500190000000003046019000000000303004b0000048b0000c13d000000090300002900000000023200190000000403200039000000000131034f000000000101043b000800000001001d000005bc0110009c0000048b0000213d000000080100002900000000011000790000002404200039000005bb02000041000000000314004b00000000030000190000000003022019000005bb01100197000500000004001d000005bb04400197000000000514004b0000000002008019000000000114013f000005bb0110009c00000000010300190000000001026019000000000101004b0000048b0000c13d00000009010000290000004401100039169a0a280000040f000000000601001900000007010000290000000402000029000000060300002900000005040000290000000805000029169a13880000040f00000000010000190000169b0001042e000000400200043d0000001f0340018f0000000504400272000008ed0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000008e50000413d000000000503004b000008fc0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000001f03100039000005bb04000041000000000523004b00000000050000190000000005044019000005bb06200197000005bb03300197000000000763004b000000000400a019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b0000091f0000613d0000000303100367000000000303043b000005bc0430009c0000091f0000213d00000020011000390000000004310019000000000224004b0000091f0000213d0000000002030019000000000001042d00000000010000190000169c00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000005a8044001970000000105500190000009af0000c13d0000000006000031000000000586004b000009af0000413d000200000002001d000300000001001d000100000003001d0000000304400367000005ef0570009c000009bd0000813d0000000002860049000005a80220019700000000022403df000000c001700210000005f001100197000005f1011001c700000000011203af0000801002000039169a168f0000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000009cf0000613d0000003f01300039000005f202100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000005bc0520009c000009b50000213d0000000104400190000009b50000c13d000000400020043f00000000023104360000001f0430003900000005044002720000095e0000613d00000000050000310000000305500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000009560000413d000000000400004b000009600000613d0000000104000031000000000443004b000009bb0000213d00000004050003670000001f0430018f0000000503300272000009700000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000009680000413d000000000604004b0000097f0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000003040000290000000205000029000009ea0000c13d0000000002020433000000400100043d000000a003100039000000000023043500000080021000390000000000520435000000600210003900000001030000290000000000320435000005bd02400197000000400310003900000000002304350000002002100039000005f4030000410000000000320435000000a0030000390000000000310435000005f50310009c000009b50000213d000000c003100039000000400030043f000005a803000041000005a80420009c000000000203801900000040022002100000000001010433000005a80410009c00000000010380190000006001100210000000000121019f0000000002000414000005a80420009c0000000002038019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f0000000102200190000009bb0000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000009da0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d30000413d000000000504004b000009e80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400100043d0000004402100039000005f303000041000000000032043500000024021000390000001f030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000400300043d00000060043000390000000000240435000005bd011001970000004002300039000000000012043500000060010000390000000001130436000005f7020000410000000000210435000005f80230009c00000a200000813d0000008002300039000000400020043f000005a802000041000005a80410009c000000000102801900000040011002100000000003030433000005a80430009c00000000030280190000006003300210000000000113019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000112019f000005da011001c70000801002000039169a168a0000040f000000010220019000000a260000613d000000000101043b000005bd01100197000000000001042d000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c0001043000000000010000190000169c000104300000000301100367000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b00000a300000c13d000000000001042d00000000010000190000169c000104300008000000000002000700000001001d000000000101004b00000d250000613d000300000004001d000400000003001d000000400400043d000200000002001d000005bd022001970000ffff0120008c00000d370000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000a630000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000a5b0000413d000000000705004b00000a720000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d4b0000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c00000d130000213d000000010110019000000d130000c13d000000400040043f0000001f0130008c00000d110000a13d00000000010a0433000000000101004b000000040140003900000d710000c13d000005fb02000041000000000024043500000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aab0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000aa30000413d000000000705004b00000aba0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000d810000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000da70000c13d000005c1010000410000000000140435000000040140003900000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000aee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ae60000413d000000000705004b00000afd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0004000000010355000000010220019000000db80000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c00000d130000213d000000400040043f000000200130008c00000d110000413d00000000010a0433000000000101004b00000dde0000613d000005ca0140009c00000d130000213d0000004001400039000000400010043f0000000001040436000100000001001d000000000001043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f0000000503000029000000010220019000000d110000613d000000000101043b0000000002030433000000020320008c00000d190000813d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000001020000290000000002020433000000010320008c00000d190000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b00000ba70000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000100000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e680000613d0000000102000029000005bc0120009c00000d130000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e8e0000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f00000000010004160000060101100197000000000001041700000bd80000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000eb40000613d0000000502000029000005bc0120009c00000d130000213d000000400020043f0000000001000414000000040400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a804400197000000010330019000000d1f0000c13d0000000003000031000000000523004b00000d1f0000413d0000000304400367000005ef0510009c00000def0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000202000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a8033001970004000000010355000000010220019000000e010000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c00000d130000213d000000010220019000000d130000c13d000000400010043f000500000005001d00000000073504360000001f01300039000000050110027200000c170000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b00000c0f0000413d000000000100004b00000c190000613d0000000101000031000000000113004b00000d110000213d00000004020003670000001f0130018f000000050330027200000c290000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b00000c210000413d000000000401004b00000c380000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e1c0000613d0000000609000029000005bc0190009c000000050100002900000d130000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b000000040400002900000d110000c13d0000000002040433000005bc0320009c00000d110000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b00000d110000c13d0000000023020434000005bc0430009c00000d130000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c00000d130000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000d110000213d000000000432004b00000cb70000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b00000d110000c13d000000400500043d000005ca0650009c00000d130000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b00000c9c0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000606000029000000010220019000000d110000613d000000000101043b000000000101004b00000d110000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000ce30000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000cd90000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a8043001970004000000010355000000010220019000000e420000613d0000000602000029000005bc0120009c000000000102001900000d130000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f000000010120019000000d110000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d580000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d500000413d000000000504004b00000d670000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fa030000410000000000320435000000240240003900000015030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000d8e0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000d860000413d000000000504004b00000d9d0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fc020000410000000000210435000000240140003900000013020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f000000050330027200000dc50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000dbd0000413d000000000504004b00000dd40000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f000000050230027200000e0c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000e050000413d000000000504004b00000e1a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f000000050440027200000e290000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e210000413d000000000503004b00000e380000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e4f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e470000413d000000000503004b00000e5e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e750000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e6d0000413d000000000503004b00000e840000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000e9b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000e930000413d000000000503004b00000eaa0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f000000050440027200000ec10000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b00000eb90000413d000000000503004b00000ed00000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300008000000000002000300000005001d000700000001001d000000000101004b000011d30000613d000400000003001d000200000004001d000000400400043d000100000002001d000005bd022001970000ffff0120008c000011e50000a13d000005f90100004100000000001404350000000401400039000800000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039000600000002001d000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f0c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f040000413d000000000705004b00000f1b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000011f90000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005bc0240009c000011c10000213d0000000101100190000011c10000c13d000000400040043f0000001f0130008c000011bf0000a13d00000000010a0433000000000101004b0000121f0000c13d000005fb010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800302000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f540000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f4c0000413d000000000705004b00000f630000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012300000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000000401400039000012560000c13d000005c102000041000000000024043500000007020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800402000039000500000004001d169a168a0000040f000000050a00002900000000030100190000006003300270000005a803300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000f970000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000f8f0000413d000000000705004b00000fa60000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00040000000103550000000102200190000012660000613d0000001f01400039000000600110018f0000000004a10019000005bc0140009c000011c10000213d000000400040043f000000200130008c000011bf0000413d00000000010a0433000000000101004b0000128c0000613d000005ca0140009c000011c10000213d0000004001400039000000400010043f000000000304043600000000000304350000000402000029000000020120008c000011c70000813d0000000000240435000400000003001d000000000003043500000008010000290000000000100435000000200000043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005c3011001c70000801002000039000500000004001d169a168a0000040f00000005030000290000000102200190000011bf0000613d000000000101043b0000000002030433000000010320008c0000000405000029000011c70000213d000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000002050433000000010320008c000011c70000213d000000000301041a000005c404000041000000000343016f00000008022002100000ff000220018f000000000223019f000000000021041b0000000001000416000005d5020000410000000000200439000000000101004b000010550000613d0000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039000500000002001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000080200002900000000002104350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000400000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013160000613d0000000402000029000005bc0120009c000011c10000213d000000400020043f000005d501000041000000000010043900000005020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000133c0000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f000000000100041600000601011001970000000000010417000010860000013d00000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d000005fe0100004100000000001404350000000401400039000000080200002900000000002104350000000701000029000005ff0110019700000600011001c700000024024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000013620000613d0000000502000029000005bc0120009c000011c10000213d000000400020043f0000000001000414000000020400002900000003030000290000000002430019000000000332004b00000000030000190000000103004039000005a8044001970000000103300190000011cd0000c13d0000000003000031000000000523004b000011cd0000413d0000000304400367000005ef0510009c0000129d0000813d00000000050004110000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af000300000005001d000005bd0d5001970000000102000029169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000012af0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000011c10000213d0000000102200190000011c10000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000010c50000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b000010bd0000413d000000000100004b000010c70000613d0000000101000031000000000113004b000011bf0000213d00000004020003670000001f0130018f0000000503300272000010d70000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000010cf0000413d000000000401004b000010e60000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000006020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400400043d00000603010000410000000000140435000000040140003900000008020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012ca0000613d0000000609000029000005bc0190009c0000000501000029000011c10000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000011bf0000c13d0000000002040433000005bc0320009c000011bf0000213d000000000141001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000011bf0000c13d0000000023020434000005bc0430009c000011c10000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005bc0540009c000011c10000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000011bf0000213d000000000432004b000011650000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000011bf0000c13d000000400500043d000005ca0650009c000011c10000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b0000114a0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000011bf0000613d000000000101043b000000000101004b000011bf0000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000080200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000011910000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000011870000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000600000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000012f00000613d0000000602000029000005bc0120009c0000000001020019000011c10000213d000000400010043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000030500002900000007060000290000000807000029169a16850000040f0000000101200190000011bf0000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000002101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400100043d00000044021000390000060703000041000000000032043500000024021000390000001b030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c00010430000000640140003900000605020000410000000000210435000000440140003900000606020000410000000000210435000000240140003900000028020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012060000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000011fe0000413d000000000504004b000012150000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005fa020000410000000000210435000000240140003900000015020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f00000005033002720000123d0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000012350000413d000000000504004b0000124c0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004402400039000005fc030000410000000000320435000000240240003900000013030000390000000000320435000005be02000041000000000024043500000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400200043d0000001f0430018f0000000503300272000012730000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000126b0000413d000000000504004b000012820000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300000004401400039000005c502000041000000000021043500000024014000390000001a020000390000000000210435000005be010000410000000000140435000000040140003900000020020000390000000000210435000005a801000041000005a80240009c00000000010440190000004001100210000005c6011001c70000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000012ba0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012b30000413d000000000504004b000012c80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000012d70000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012cf0000413d000000000503004b000012e60000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000012fd0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000012f50000413d000000000503004b0000130c0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013230000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000131b0000413d000000000503004b000013320000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000013490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013410000413d000000000503004b000013580000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000136f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000013670000413d000000000503004b0000137e0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c000104300009000000000002000500000005001d000700000003001d000800000002001d000600000001001d0000000002000416000000000106004b0000152f0000613d000300000004001d000400000002001d000000000102004b000013cb0000613d000005d50100004100000000001004390000800a010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000005fd0100004100000000001404350000004401400039000000000200041600000000002104350000000801000029000005bd01100197000000240240003900000000001204350000000001000410000005bd0110019700000004024000390000000000120435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000900000004001d00000000010440190000004001100210000000c002200210000000000112019f000005c6011001c70000800a02000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000016240000613d0000000902000029000005bc0120009c000015790000213d000000400020043f000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d0000000701000029000005ff0110019700000600011001c7000000400400043d00000024024000390000000000120435000005fe0100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039000100000002001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015850000613d0000000202000029000005bc0120009c0000000401000029000015790000213d000000400020043f000000000101004b000014070000613d0000000001000416000006010110019700000000000104170000000001000414000000030400002900000005030000290000000002430019000000000332004b00000000030000190000000103004039000005a80440019700000001033001900000157f0000c13d0000000003000031000000000523004b0000157f0000413d0000000304400367000005ef0510009c000015ab0000813d0000000002230049000005a80220019700000000022403df000000c001100210000005f00110019700000602011001c700000000011203af0000000602000029000005bd0d200197000000080200002900080000000d001d169a16940000040f00000000030100190000006003300270000105a80030019d000005a80330019700040000000103550000000102200190000015bd0000613d0000003f01300039000005f201100197000000400500043d0000000001150019000000000251004b00000000020000190000000102004039000005bc0410009c000015790000213d0000000102200190000015790000c13d000000400010043f000500000005001d00000000073504360000001f013000390000000501100272000014460000613d00000000020000310000000302200367000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000514004b0000143e0000413d000000000100004b000014480000613d0000000101000031000000000113004b000015770000213d00000004020003670000001f0130018f0000000503300272000014580000613d000000000400001900000005054002100000000006570019000000000552034f000000000505043b00000000005604350000000104400039000000000534004b000014500000413d000000000401004b000014670000613d0000000503300210000000000232034f00000000033700190000000301100210000000000403043300000000041401cf000000000414022f000000000202043b0000010001100089000000000212022f00000000011201cf000000000141019f0000000000130435000005d501000041000000000010043900000001020000290000000400200443000005a8010000410000000004000414000005a80340009c0000000001044019000000c001100210000005d6011001c7000400000007001d169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d00000603010000410000000000140435000000040140003900000009020000290000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f000005dc011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015d80000613d0000000609000029000005bc0190009c0000000501000029000015790000213d000000400090043f0000000001010433000005bb02000041000000200310008c00000000030000190000000003024019000005bb04100197000000000504004b000000000200a019000005bb0440009c000000000203c019000000000202004b0000000404000029000015770000c13d0000000002040433000005bc0320009c000015770000213d000000000114001900000000024200190000001f03200039000005bb04000041000000000513004b00000000050000190000000005048019000005bb03300197000005bb06100197000000000763004b0000000004008019000000000363013f000005bb0330009c00000000030500190000000003046019000000000303004b000015770000c13d0000000023020434000005bc0430009c000015790000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004490019000005bc0540009c000015790000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000015770000213d000000000432004b000014e60000813d00000000040900190000000005210049000005bb06000041000000400750008c00000000070000190000000007064019000005bb05500197000000000805004b000000000600a019000005bb0550009c00000000050700190000000005066019000000000505004b000015770000c13d000000400500043d000005ca0650009c000015790000213d00000020044000390000004006500039000000400060043f000000007602043400000000066504360000000007070433000000000076043500000000005404350000004002200039000000000532004b000014cb0000413d000005d501000041000000000010043900008005010000390000000400100443000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005d6011001c70000800202000039169a168a0000040f00000006060000290000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400700043d000000240170003900000040020000390000000000210435000006040100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b000015120000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000015080000413d0000000001720049000005a802000041000005a80370009c000000000302001900000000030740190000004003300210000005a80410009c00000000010280190000006001100210000000000131019f0000000003000414000005a80430009c0000000002034019000000c002200210000000000121019f0000800502000039000500000007001d169a16850000040f00000000030100190000006003300270000105a80030019d000005a80430019700040000000103550000000102200190000015fe0000613d0000000502000029000005bc0120009c000015660000a13d000015790000013d000000000102004b0000164a0000c13d000005d501000041000000000010043900008002020000390000000400200443000005a8010000410000000003000414000005a80430009c0000000001034019000000c001100210000005d6011001c7169a168a0000040f0000000102200190000015770000613d000000000101043b000000000101004b000015770000613d000000400400043d000000240140003900000007020000290000000000210435000005e40100004100000000001404350000000801000029000005bd021001970000000401400039000900000002001d0000000000210435000005a8010000410000000002000414000005a80320009c0000000002018019000005a80340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f000005e5011001c70000800202000039169a16850000040f00000000030100190000006003300270000105a80030019d000005a804300197000400000001035500000001022001900000165f0000613d0000000502000029000005bc0120009c000015790000213d0000000601000029000005bd01100197000800000001001d000000400020043f000005a8010000410000000002000414000005a80320009c0000000001024019000000c001100210000005da011001c70000800d020000390000000403000039000005e604000041000000080500002900000007060000290000000907000029169a16850000040f0000000101200190000015770000613d000000000001042d00000000010000190000169c00010430000005db0100004100000000001004350000004101000039000000040010043f000005dc010000410000169c00010430000005db0100004100000000001004350000001101000039000000040010043f000005dc010000410000169c00010430000000400200043d0000001f0340018f0000000504400272000015920000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b0000158a0000413d000000000503004b000015a10000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000004402100039000005f6030000410000000000320435000000240210003900000008030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005c6011001c70000169c000104300000001f0430018f0000000502300272000015c80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015c10000413d000000000504004b000015d60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000169c00010430000000400200043d0000001f0340018f0000000504400272000015e50000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000015dd0000413d000000000503004b000015f40000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f00000005044002720000160b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016030000413d000000000503004b0000161a0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400200043d0000001f0340018f0000000504400272000016310000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016290000413d000000000503004b000016400000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c00010430000000400100043d0000006402100039000005e10300004100000000003204350000004402100039000005e2030000410000000000320435000000240210003900000038030000390000000000320435000005be020000410000000000210435000000040210003900000020030000390000000000320435000005a802000041000005a80310009c00000000010280190000004001100210000005e3011001c70000169c00010430000000400200043d0000001f0340018f00000005044002720000166c0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000016640000413d000000000503004b0000167b0000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000005a8010000410000000103000031000005a80430009c0000000003018019000005a80420009c000000000102401900000040011002100000006002300210000000000112019f0000169c0001043000001688002104210000000102000039000000000001042d0000000002000019000000000001042d0000168d002104230000000102000039000000000001042d0000000002000019000000000001042d00001692002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900001698002104290000000102000039000000000001042d0000000002000019000000000001042d0000169a000004320000169b0001042e0000169c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda335100000000000000000000000000000000000000000000000000000000571809818000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff54686520636f64652068617368206973206e6f74206b6e6f776e00000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a40000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb000000000000000000000000000000000000010400000000000000000000000002000000000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006d656e74730000000000000000000000000000000000000000000000000000002074686520636f6d62696e6564206076616c75656073206f66206465706c6f796076616c7565602070726f7669646564206973206e6f7420657175616c20746f496e617070726f7072696174652063616c6c65720000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c200000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe06b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f4f766572666c6f7700000000000000000000000000000000000000000000000063bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000579952fc000000000000000000000000000000000000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0001000100000000000000000000000000000000000000000000000000000000c2e4ff9700000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f000000000039187a54c09fddd78293acb1d6fafb891fffc8438366fb93b8fe735877e8b717", + "bytecode": "0x0002000000000002000b0000000000020000000003020019000100000001035500000000020100190000006002200270000004f40020019d0000008004000039000000400040043f000004f4022001970000000104300190000000860000c13d000000040420008c000007660000413d000000000401043b000000e004400270000004f60540009c0000008e0000a13d000004f70540009c000000cf0000a13d000004f80540009c0000000005000410000b00000005001d000001470000213d000004fb0540009c000001b40000613d000004fc0440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d000000000200041100000002013001900000002c0000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400400043d000005200240009c000003d30000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000004190000213d00000000032404360000000801100270000000ff0110018f000000010210008c000004190000213d000900000004001d00000000001304350000000b02000029000000010220008c0000065e0000c13d000000000101004b0000065e0000c13d0000000101000039000b00000003001d000800000001001d00000000001304350000000a0100002900000509011001970000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000009020000290000000002020433000000010320008c0000000b05000029000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000400100043d00000008020000290000000000210435000004f4020000410000000003000414000004f40430009c0000000003028019000004f40410009c00000000010280190000004001100210000000c002300210000000000112019f00000531011001c70000800d0200003900000002030000390000053204000041000000c90000013d0000000001000416000000000101004b000007660000c13d000000200100003900000100001004430000012000000443000004f501000041000013ca0001042e000005000540009c000001230000213d000005040540009c000002f00000613d000005050540009c0000037d0000613d000005060440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d00000000020004110000000201300190000000a60000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4030000410000000001000414000004f40210009c0000000001038019000000c0011002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000b03000029000000000232019f000000000021041b000000400100043d00000000003104350000000002000414000004f40320009c000004f4040000410000000002048019000004f40310009c00000000010480190000004001100210000000c002200210000000000112019f00000531011001c70000800d02000039000000020300003900000543040000410000000a0500002913c913b40000040f0000000101200190000007660000613d0000000001000019000013ca0001042e000004fd0540009c000002510000613d000004fe0340009c000002bc0000613d000004ff0340009c000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000201043b0000000001000411000080070110008c000003d70000c13d0000050d01000041000000800010043f000b00000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000000fb0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000f30000413d000000000705004b0000010a0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000003e10000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000007660000413d000000800300043d000000000303004b000004770000c13d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000529040000410000000000430435000000a4022000390000001a030000390000000000320435000000400110021000000514011001c7000013cb00010430000005010540009c000003070000613d000005020340009c000003b60000613d000005030340009c000007660000c13d0000000003000416000000000303004b000007660000c13d000000040320008a000000800330008c000007660000413d0000000403100370000000000303043b000b00000003001d000005090330009c000007660000213d0000006401100370000000000101043b000005070310009c000007660000213d000000040110003913c90a2c0000040f00000001040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000b0100002900000000020400190000000004050019000000000506001913c90a460000040f000002fe0000013d000004f90540009c000001e00000613d000004fa0340009c000007660000c13d000000040320008a000000400330008c000007660000413d0000000403100370000000000303043b000a00000003001d000005070330009c000007660000213d0000000a0420006a0000050802000041000000a40340008c00000000030000190000000003024019000900000004001d0000050804400197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d0000002402100370000000000202043b000800000002001d000005090220009c000007660000213d00000000020004110000000b0220006c0000042b0000c13d0000000a02000029000700040020003d0000000701100360000000000201043b0000050d01000041000000800010043f000600000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000018a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001820000413d000000000705004b000001990000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005ae0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c000007660000413d000000800200043d000000000202004b000006760000c13d0000050a020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c40210003900000529030000410000000000320435000000a4011000390000001a020000390000000000210435000000400140021000000514011001c7000013cb00010430000000040320008a000000200330008c000007660000413d0000000403100370000000000303043b000500000003001d000005070330009c000007660000213d000000050300002900000023033000390000050804000041000000000523004b000000000500001900000000050480190000050803300197000000000603004b0000000004008019000005080330009c000000000405c019000000000304004b000007660000c13d00000005030000290000000403300039000000000331034f000000000d03043b0000050703d0009c000007660000213d0000000503000029000000240e3000390000000503d002100000000003e30019000000000323004b000007660000213d000000090400008a0000000003000411000000000443016f000080070440008c0000041f0000c13d00000000040d004b000004b40000c13d0000000001000416000000000101004b000000cd0000613d000006160000013d000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000a00000005001d000005070550009c000007660000213d0000002405400039000900000005001d0000000a04500029000000000224004b000007660000213d0000006401100370000000000101043b000800000001001d000000010110008c000007660000213d000000020130019000000001011002700000020d0000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000022e0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002260000413d000000000705004b0000023d0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006240000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000070100002913c90b0d0000040f0000000002010019000700000002001d0000000b01000029000000080300002900000009040000290000000a0500002913c90f760000040f0000000701000029000002fe0000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000a00000001001d000005070110009c000007660000213d0000002404400039000900000004001d0000000a01400029000000000121004b000007660000213d00000002013001900000000101100270000002790000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000800000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000029a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002920000413d000000000705004b000002a90000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000080100002913c90b0d0000040f0000000002010019000800000002001d0000000b0100002900000009030000290000000a0400002913c90b390000040f0000000801000029000002fe0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000005090110009c000007660000213d0000000b010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005200320009c000003d30000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000004190000213d00000000033204360000000801100270000000ff0110018f000000010410008c000004190000213d00000000001304350000000002020433000000010120008c000004190000213d0000000101000039000000000202004b000002ff0000c13d0000000b010000290000053f011001980000000001000019000007210000c13d000000010110018f000002ff0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000400220008c000007660000413d0000000402100370000000000302043b000005090230009c000007660000213d0000002401100370000000000201043b000000000103001913c90b0d0000040f0000050901100197000000400200043d0000000000120435000004f401000041000004f40320009c000000000201801900000040012002100000052c011001c7000013ca0001042e000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000900000005001d000005070550009c000007660000213d0000002405400039000800000005001d0000000904500029000000000224004b000007660000213d0000006401100370000000000101043b000700000001001d000000010110008c000007660000213d00000002013001900000000101100270000003370000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000600000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003580000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003500000413d000000000705004b000003670000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006410000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000006010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b0100002900000007030000290000000804000029000000090500002913c90f760000040f000004750000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000900000001001d000005070110009c000007660000213d0000002404400039000800000004001d0000000901400029000000000121004b000007660000213d00000002013001900000000101100270000003a80000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000004330000c13d0000050a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000054401000041000000c40010043f0000054501000041000000e40010043f0000054601000041000013cb000104300000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000005090210009c000007660000213d000000c002000039000000400020043f000000800000043f000000a00000043f0000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005410320009c000004040000413d0000053a01000041000000000010043500000041010000390000041c0000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000053e01000041000000c40010043f0000050c01000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000003ee0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003e60000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000004190000813d00000000011204360000000803300270000000ff0330018f000000010430008c000004190000213d00000000003104350000000003020433000000010230008c000004190000213d000000400200043d00000000033204360000000001010433000000010410008c0000071a0000a13d0000053a0100004100000000001004350000002101000039000000040010043f0000051f01000041000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f0000053301000041000000c40010043f0000053401000041000000e40010043f0000053501000041000006210000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000050b01000041000003de0000013d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004520000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000044a0000413d000000000705004b000004610000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005e80000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000007010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b010000290000000803000029000000090400002913c90b390000040f0000000a01000029000002fe0000013d0000000003000416000000000303004b000006050000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000b02000029000000000021043500000526010000410000000000140435000000040140003900008010020000390000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000007680000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000800705000039000080100700003900000528040000410000000b06000029000000ca0000013d000000050500002900000000045200490000008402500039000000c30440008a00000508060000410000000007000019000000000500001900000005087002100000000008e80019000000000881034f000000000808043b000000000948004b00000000090000190000000009068019000005080a400197000005080b800197000000000cab004b000000000c000019000000000c064019000000000aab013f000005080aa0009c000000000c09c01900000000090c004b000007660000c13d0000000008820019000000000881034f000000000808043b0000000005580019000000000885004b0000000008000019000000010800403900000001088001900000080b0000c13d00000001077000390000000008d7004b000004bb0000413d0000000001000416000000000151004b000006160000c13d000405090030019b0000050808000041000000000900001900080000000d001d00070000000e001d00000005019002100000000002e100190000000101000367000000000221034f000000000202043b00000005030000290000000003300079000000c30330008a000000000432004b0000000004000019000000000408801900000508033001970000050805200197000000000635004b00000000060000190000000006084019000000000335013f000005080330009c000000000604c019000000000306004b000007660000c13d000a00000009001d0000000002e20019000900000002001d0000006002200039000000000121034f000000000101043b000600000001001d000005110100004100000000001004390000000b0100002900000004001004430000000001000414000004f40210009c000004f401008041000000c00110021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000000080d000029000000070e00002900000508080000410000000a09000029000000090b000029000007660000613d000000400a00043d000005370100004100000000001a04350000000401a000390000004002000039000000000021043500000001010003670000000002b1034f000000000202043b0000004403a0003900000000002304350000002002b00039000000000321034f000000000303043b000005090430009c000007660000213d0000006404a0003900000000003404350000002002200039000000000321034f000000000303043b000000000403004b0000000004000019000000010400c039000000000443004b000007660000c13d0000008404a0003900000000003404350000002003200039000000000331034f000000000303043b000000a404a0003900000000003404350000004002200039000000000221034f000000000202043b00000000030000310000000004b300490000001f0440008a000000000542004b0000000005000019000000000508801900000508044001970000050806200197000000000746004b00000000070000190000000007084019000000000446013f000005080440009c000000000705c019000000000407004b000007660000c13d0000000004b20019000000000241034f000000000202043b000005070520009c000007660000213d00000020044000390000000003230049000000000534004b0000000005000019000000000508201900000508033001970000050806400197000000000736004b00000000070000190000000007084019000000000336013f000005080330009c000000000705c019000000000307004b000007660000c13d000000c403a00039000000a0050000390000000000530435000000e403a000390000000000230435000000000341034f0000010401a0003900000005042002720000056b0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000005630000413d0000001f052001900000057a0000613d0000000504400210000000000343034f00000000044100190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000112001900000000000104350000002401a000390000000403000029000000000031043500000000010004140000000b03000029000000040330008c000005a70000613d0000001f02200039000000200300008a000000000232016f000005380320009c0000053802008041000004f403a0009c000004f40400004100090000000a001d000000000304001900000000030a401900000040033002100000006002200210000000000232019f000004f40310009c0000000001048019000000c001100210000000000112019f00000539011000410000000603000029000000000203004b0000059e0000613d00000527011001c700008009020000390000000b04000029000000000500001913c913b40000040f000005a00000013d0000000b0200002913c913b40000040f0000000102200190000000080d000029000000070e00002900000508080000410000000a09000029000000090a000029000007aa0000613d0000050701a0009c000003d30000213d0000004000a0043f00000001099000390000000001d9004b000004e00000413d000000cd0000013d000000400200043d0000001f0430018f0000000505300272000005bb0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005b30000413d000000000604004b000005ca0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005d80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005d00000413d000000000604004b000005e70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005f50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005ed0000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000e40320003900000523040000410000000000430435000000c40320003900000524040000410000000000430435000000a40220003900000038030000390000000000320435000000400110021000000525011001c7000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004501000039000000a40010043f0000053b01000041000000c40010043f0000053c01000041000000e40010043f0000053d01000041000001040010043f0000053601000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000006310000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006290000413d000000000604004b000006400000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f00000005053002720000064e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006460000413d000000000604004b0000065d0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400100043d00000084021000390000052d03000041000000000032043500000064021000390000052e03000041000000000032043500000044021000390000052f0300004100000000003204350000002402100039000000430300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000530011001c7000013cb00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000400000001001d000000000001043500000007010000290000002001100039000300000001001d0000000101100367000000000101043b000700000001001d000005090110009c000007660000213d00000007010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000005020000290000000002020433000000010320008c000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000004030000290000000003030433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000030100002900000060021000390000000101000367000000000321034f000000000303043b0000000904000029000000230440008a0000050805000041000000000643004b0000000006000019000000000605801900000508044001970000050807300197000000000847004b0000000005008019000000000447013f000005080440009c000000000506c019000000000405004b000007660000c13d0000000a033000290000000404300039000000000441034f000000000404043b000a00000004001d000005070440009c000007660000213d0000000a04000029000000000440007900000024063000390000050803000041000000000546004b000000000500001900000000050320190000050804400197000900000006001d0000050806600197000000000746004b0000000003008019000000000446013f000005080440009c000000000305c019000000000303004b000007660000c13d000000400220008a000000000121034f000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b000007660000c13d0000000002000416000500000002001d000000000101004b000007ca0000c13d000000050100006b0000080f0000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000602000029000000000021043500000526010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000008750000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000052804000041000000080500002900000006060000290000000707000029000000ca0000013d0000000000130435000004f401000041000004f40320009c0000000002018019000000400120021000000542011001c7000013ca0001042e000000400400043d000a00000004001d0000054001000041000000000014043500000004014000390000000b020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b90000040f0000000a0a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007470000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000073f0000413d00000000090a0019000000000705004b000007570000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000007880000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005070410009c000003d30000213d0000000102200190000003d30000c13d000000400010043f000000200130008c000007a50000813d0000000001000019000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007780000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007700000413d000000000604004b000007870000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000007950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000078d0000413d000000000604004b000007a40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000000001090433000000000101004b00000000010000190000000101006039000002ee0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007ba0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007b20000413d000000000604004b000007c90000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000050100006b000008220000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051501000041000000000014043500000004024000390000000701000029000400000002001d00000000001204350000000601000029000005160110019700000517011001c70000002402400039000300000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190002004000100218000000c00120021000000002011001af00000518011001c70000800202000039000100000002001d13c913b40000040f0000000102200190000008550000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000000050100006b000008030000613d000000000100041600000519011001970000000000010417000000000100041400000009030000290000000a0230002a000004f4043001970000080b0000413d0000000003000031000000000523004b000008b50000813d0000053a01000041000000000010043500000011010000390000041c0000013d000000400100043d0000006402100039000005230300004100000000003204350000004402100039000005240300004100000000003204350000002402100039000000380300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000006130000013d000005110100004100000000001004390000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000070200002900000000002104350000000b01000029000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f0000000102200190000008950000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000007cc0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008650000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000085d0000413d000000000604004b000008740000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008850000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000087d0000413d000000000604004b000008940000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008a50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000089d0000413d000000000604004b000008b40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d00000001044003670000051a0510009c000008c70000413d0000050a010000410000000b020000290000000000120435000000200100003900000004030000290000000000130435000000080100003900000003030000290000000000130435000000440120003900000522020000410000000000210435000000020100002900000514011001c7000013cb000104300000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af0000000702000029000000080d00002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000009d10000613d0000003f023000390000051d02200197000000400400043d0000000002240019000b00000004001d000000000442004b00000000040000190000000104004039000005070520009c000003d30000213d0000000104400190000003d30000c13d000000400020043f0000000b0200002900000000083204360000001f023000390000000502200272000008f30000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000008eb0000413d000900000008001d000000000200004b000008f60000613d0000001f0230018f00000005033002720000000907000029000009030000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000008fb0000413d000000000402004b000009120000613d0000000503300210000000000131034f00000009033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000051101000041000000000010043900000001020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051e010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f0000000102200190000009ec0000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f0000000b0100002900000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d00000009020000290000000002020433000005070320009c000007660000213d000000090110002900000009022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000007660000c13d0000000023020434000005070430009c000003d30000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000a04400029000005070540009c000003d30000213d000000400040043f0000000a04000029000000000034043500000006033002100000000003230019000000000413004b000007660000213d000000000432004b0000098c0000813d00000508040000410000000a050000290000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000007660000c13d000000400600043d000005200760009c000003d30000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000009720000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400300043d000000240130003900000040020000390000000000210435000005210100004100000000001304350000000401300039000000070200002900000000002104350000000a01000029000000000101043300000044023000390000000000120435000b00000003001d0000006402300039000000000301004b000009bb0000613d00000000030000190000000a040000290000002004400039000a00000004001d0000000004040433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000009af0000413d0000000b040000290000000001420049000004f402000041000004f40340009c000000000302001900000000030440190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f000080050200003913c913b40000040f000000010220019000000a0c0000613d000007080000013d000000000001042f0000001f0430018f0000000502300272000009dc0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d50000413d000000000504004b000009ea0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000009fc0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009f40000413d000000000604004b00000a0b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000a1c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000a140000413d000000000604004b00000a2b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000001f031000390000050804000041000000000523004b0000000005000019000000000504401900000508062001970000050803300197000000000763004b000000000400a019000000000363013f000005080330009c000000000405c019000000000304004b00000a440000613d0000000103100367000000000303043b000005070430009c00000a440000213d00000020011000390000000004310019000000000224004b00000a440000213d0000000002030019000000000001042d0000000001000019000013cb00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000004f404400197000000010550019000000ace0000c13d0000000006000031000000000586004b00000ace0000413d000200000002001d000300000001001d000100000003001d00000001044003670000051a0570009c00000ad80000813d0000000002860049000004f40220019700000000022403df000000c0017002100000051b0110019700000547011001c700000000011203af000080100200003913c913be0000040f00000000030100190000006003300270000004f403300197000000010220019000000adf0000613d0000003f023000390000051d04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005070640009c00000ad20000213d000000010550019000000ad20000c13d000000400040043f00000000043204360000001f05300039000000050550027200000a810000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000a790000413d000000000500004b00000a830000613d0000001f0530018f000000050330027200000a8f0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00000a870000413d000000000605004b00000a9e0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000130435000000400100043d0000000002020433000000200220008c0000000305000029000000020600002900000afa0000c13d0000000002040433000000a003100039000000000023043500000080021000390000000000620435000000600210003900000001030000290000000000320435000005090250019700000040031000390000000000230435000000200210003900000549030000410000000000320435000000a00300003900000000003104350000054a0310009c00000ad20000213d000000c003100039000000400030043f000004f403000041000004f40420009c000000000203801900000040022002100000000001010433000004f40410009c00000000010380190000006001100210000000000121019f0000000002000414000004f40420009c0000000002038019000000c002200210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b0b0000613d000000000101043b0000050901100197000000000001042d0000053a010000410000000000100435000000110100003900000ad50000013d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000400100043d0000004402100039000005220300004100000000003204350000002402100039000000080300003900000aff0000013d0000001f0430018f000000050230027200000aea0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae30000413d000000000504004b00000af80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb0001043000000044021000390000054803000041000000000032043500000024021000390000001f0300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000514011001c7000013cb000104300000000001000019000013cb00010430000000400300043d00000060043000390000000000240435000005090110019700000040023000390000000000120435000000600100003900000000011304360000054b0200004100000000002104350000054c0230009c00000b310000813d0000008002300039000000400020043f000004f402000041000004f40410009c000000000102801900000040011002100000000003030433000004f40430009c00000000030280190000006003300210000000000113019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b370000613d000000000101043b0000050901100197000000000001042d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb000104300000000001000019000013cb000104300009000000000002000500000003001d000000400500043d0000000403500039000800000001001d000000000101004b00000e050000613d000400000004001d000300000002001d00000509012001970000ffff0210008c00000e150000a13d0000054d020000410000000000250435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40350009c00000000010540190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000005001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000b6a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b620000413d000000000705004b00000b790000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e280000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c00000df60000213d000000010110019000000df60000c13d000000400040043f0000001f0130008c00000df40000a13d000000040140003900000000020a0433000000000202004b00000e450000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bb00000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ba80000413d000000000705004b00000bbf0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e4f0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d000000040140003900000000020a0433000000000202004b00000e6c0000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bf10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000be90000413d000000000705004b00000c000000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e760000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d00000000010a0433000000000101004b00000e930000613d000005200140009c00000df60000213d0000004001400039000000400010043f0000000001040436000200000001001d000000000001043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f0000000703000029000000010220019000000df40000613d0000000002030433000000020320008c00000dfd0000813d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000002030000290000000003030433000000010430008c00000dfd0000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b00000c9f0000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f000000010220019000000f100000613d0000000202000029000005070120009c00000df60000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f300000613d0000000706000029000005070160009c00000df60000213d000000400060043f00000000010004160000051901100197000000000001041700000ccd0000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f500000613d0000000706000029000005070160009c00000df60000213d000000400060043f000000000100041400000005040000290000000402400029000000040320006c00000000030000190000000103004039000004f404400197000000010330019000000e010000c13d0000000003000031000000000523004b00000e010000413d00000001044003670000051a0510009c00000ea40000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000030200002913c913c30000040f00000000030100190000006003300270000004f403300197000000010220019000000eb50000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c00000df60000213d000000010440019000000df60000c13d000000400020043f000500000006001d00000000083604360000001f02300039000000050220027200000d090000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b00000d010000413d000000000200004b00000d0b0000613d0000001f0230018f000000050330027200000d170000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b00000d0f0000413d000000000402004b00000d260000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f000000010220019000000ed00000613d0000000609000029000005070190009c000000050100002900000df60000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b00000df40000c13d00000007020000290000000002020433000005070320009c00000df40000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b00000df40000c13d0000000023020434000005070430009c00000df60000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c00000df60000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000df40000213d000000000432004b00000d9f0000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b00000df40000c13d000000400600043d000005200760009c00000df60000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b00000d850000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b000000060600002900000df40000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000dcb0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000dc10000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f000000010220019000000ef00000613d0000000702000029000005070120009c000000000102001900000df60000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f000000010120019000000df40000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a010000410000000000100435000000210100003900000df90000013d0000053a010000410000000000100435000000110100003900000df90000013d0000050a0200004100000000002504350000002002000039000000000023043500000044015000390000055302000041000000000021043500000024015000390000001b020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000514011001c7000013cb000104300000050a02000041000000000025043500000020020000390000000000230435000000640150003900000551020000410000000000210435000000440150003900000552020000410000000000210435000000240150003900000028020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000525011001c7000013cb00010430000000400200043d0000001f0430018f000000050530027200000e350000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e2d0000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e0200004100000000002104350000002401400039000000150200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e5c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e540000413d000000000604004b00000e6b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a020000410000000000240435000000200200003900000000002104350000004401400039000005500200004100000000002104350000002401400039000000130200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e830000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e7b0000413d000000000604004b00000e920000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000002020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f000000050230027200000ec00000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000eb90000413d000000000504004b00000ece0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000ee00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ed80000413d000000000604004b00000eef0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f000000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ef80000413d000000000604004b00000f0f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f200000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f180000413d000000000604004b00000f2f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f380000413d000000000604004b00000f4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f600000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f580000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb000104300009000000000002000300000005001d000400000004001d000500000003001d000000400400043d0000000403400039000800000001001d000000000101004b000012480000613d000200000002001d00000509012001970000ffff0210008c000012520000a13d0000054d020000410000000000240435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fa80000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fa00000413d000000000705004b00000fb70000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012650000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c000012390000213d0000000101100190000012390000c13d000000400040043f0000001f0130008c000012370000a13d000000040140003900000000020a0433000000000202004b000012820000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fe60000413d000000000705004b00000ffd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000128c0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d000000040140003900000000020a0433000000000202004b000012a90000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000102f0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010270000413d000000000705004b0000103e0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012b30000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d00000000010a0433000000000101004b000012d00000613d000005200140009c000012390000213d0000004001400039000000400010043f000000000304043600000000000304350000000502000029000000020120008c000012400000813d0000000000240435000500000003001d000000000003043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f00000007030000290000000102200190000012370000613d0000000002030433000000010320008c0000000505000029000012400000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000012400000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b000010e20000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f00000001022001900000134d0000613d0000000502000029000005070120009c000012390000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000136d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041600000519011001970000000000010417000011100000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000138d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041400000004040000290000000302400029000000030320006c00000000030000190000000103004039000004f4044001970000000103300190000012440000c13d0000000003000031000000000523004b000012440000413d00000001044003670000051a0510009c000012e10000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000020200002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000012f20000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c000012390000213d0000000104400190000012390000c13d000000400020043f000500000006001d00000000083604360000001f0230003900000005022002720000114c0000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000011440000413d000000000200004b0000114e0000613d0000001f0230018f00000005033002720000115a0000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000011520000413d000000000402004b000011690000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f00000001022001900000130d0000613d0000000609000029000005070190009c0000000501000029000012390000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000012370000c13d00000007020000290000000002020433000005070320009c000012370000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000012370000c13d0000000023020434000005070430009c000012390000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c000012390000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000012370000213d000000000432004b000011e20000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000012370000c13d000000400600043d000005200760009c000012390000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000011c80000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b0000000606000029000012370000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b0000120e0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000012040000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f00000001022001900000132d0000613d0000000702000029000005070120009c0000000001020019000012390000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f0000000101200190000012370000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a01000041000000000010043500000021010000390000123c0000013d0000053a01000041000000000010043500000011010000390000123c0000013d0000050a0200004100000000002404350000002002000039000000000023043500000044014000390000055302000041000000000021043500000024014000390000001b02000039000012da0000013d0000050a02000041000000000024043500000020020000390000000000230435000000640140003900000551020000410000000000210435000000440140003900000552020000410000000000210435000000240140003900000028020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000525011001c7000013cb00010430000000400200043d0000001f0430018f0000000505300272000012720000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000126a0000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e02000041000000000021043500000024014000390000001502000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012990000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012910000413d000000000604004b000012a80000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000055002000041000000000021043500000024014000390000001302000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012c00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012b80000413d000000000604004b000012cf0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000005020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f0000000502300272000012fd0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012f60000413d000000000504004b0000130b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000131d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013150000413d000000000604004b0000132c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000133d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013350000413d000000000604004b0000134c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000135d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013550000413d000000000604004b0000136c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000137d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013750000413d000000000604004b0000138c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000139d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013950000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000001042f000013b7002104210000000102000039000000000001042d0000000002000019000000000001042d000013bc002104230000000102000039000000000001042d0000000002000019000000000001042d000013c1002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d0019000013c7002104290000000102000039000000000001042d0000000002000019000000000001042d000013c900000432000013ca0001042e000013cb00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda33510000000000000000000000000000000000000000000000000000000057180981000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000579952fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0c2e4ff97000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbfad7e232e000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e554686520636f64652068617368206973206e6f74206b6e6f776e0000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb00000000000000000000000000000000000001040000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000006076616c7565602070726f7669646564206973206e6f7420657175616c20746f2074686520636f6d62696e6564206076616c75656073206f66206465706c6f796d656e7473000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c616700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000001000000000000000000000000000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f0000000000158bafccd92e72ef3131795a8537d8b203e1379bcb77bd4de4eadb50996ea74d", + "deployedBytecode": "0x0002000000000002000b0000000000020000000003020019000100000001035500000000020100190000006002200270000004f40020019d0000008004000039000000400040043f000004f4022001970000000104300190000000860000c13d000000040420008c000007660000413d000000000401043b000000e004400270000004f60540009c0000008e0000a13d000004f70540009c000000cf0000a13d000004f80540009c0000000005000410000b00000005001d000001470000213d000004fb0540009c000001b40000613d000004fc0440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d000000000200041100000002013001900000002c0000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400400043d000005200240009c000003d30000213d000000000101043b0000004002400039000000400020043f000000000101041a000000ff0210018f000000010320008c000004190000213d00000000032404360000000801100270000000ff0110018f000000010210008c000004190000213d000900000004001d00000000001304350000000b02000029000000010220008c0000065e0000c13d000000000101004b0000065e0000c13d0000000101000039000b00000003001d000800000001001d00000000001304350000000a0100002900000509011001970000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000009020000290000000002020433000000010320008c0000000b05000029000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000400100043d00000008020000290000000000210435000004f4020000410000000003000414000004f40430009c0000000003028019000004f40410009c00000000010280190000004001100210000000c002300210000000000112019f00000531011001c70000800d0200003900000002030000390000053204000041000000c90000013d0000000001000416000000000101004b000007660000c13d000000200100003900000100001004430000012000000443000004f501000041000013ca0001042e000005000540009c000001230000213d000005040540009c000002f00000613d000005050540009c0000037d0000613d000005060440009c000007660000c13d0000000004000416000000000404004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000000010110008c000007660000213d00000000020004110000000201300190000000a60000c13d0000ffff0120008c000003aa0000213d000a00000002001d0000000000200435000000200000043f000004f4030000410000000001000414000004f40210009c0000000001038019000000c0011002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000000101043b000000000201041a000001000300008a000000000232016f0000000b03000029000000000232019f000000000021041b000000400100043d00000000003104350000000002000414000004f40320009c000004f4040000410000000002048019000004f40310009c00000000010480190000004001100210000000c002200210000000000112019f00000531011001c70000800d02000039000000020300003900000543040000410000000a0500002913c913b40000040f0000000101200190000007660000613d0000000001000019000013ca0001042e000004fd0540009c000002510000613d000004fe0340009c000002bc0000613d000004ff0340009c000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000201043b0000000001000411000080070110008c000003d70000c13d0000050d01000041000000800010043f000b00000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000000fb0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000000f30000413d000000000705004b0000010a0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000003e10000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200330008c000007660000413d000000800300043d000000000303004b000004770000c13d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000529040000410000000000430435000000a4022000390000001a030000390000000000320435000000400110021000000514011001c7000013cb00010430000005010540009c000003070000613d000005020340009c000003b60000613d000005030340009c000007660000c13d0000000003000416000000000303004b000007660000c13d000000040320008a000000800330008c000007660000413d0000000403100370000000000303043b000b00000003001d000005090330009c000007660000213d0000006401100370000000000101043b000005070310009c000007660000213d000000040110003913c90a2c0000040f00000001040003670000004403400370000000000303043b0000002404400370000000000404043b000000000501001900000000060200190000000b0100002900000000020400190000000004050019000000000506001913c90a460000040f000002fe0000013d000004f90540009c000001e00000613d000004fa0340009c000007660000c13d000000040320008a000000400330008c000007660000413d0000000403100370000000000303043b000a00000003001d000005070330009c000007660000213d0000000a0420006a0000050802000041000000a40340008c00000000030000190000000003024019000900000004001d0000050804400197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d0000002402100370000000000202043b000800000002001d000005090220009c000007660000213d00000000020004110000000b0220006c0000042b0000c13d0000000a02000029000700040020003d0000000701100360000000000201043b0000050d01000041000000800010043f000600000002001d000000840020043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080040200003913c913b90000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000018a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001820000413d000000000705004b000001990000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005ae0000613d0000001f01400039000000600110018f00000080021001bf000500000002001d000000400020043f000000200230008c000007660000413d000000800200043d000000000202004b000006760000c13d0000050a020000410000000504000029000000000024043500000084021001bf00000020030000390000000000320435000000c40210003900000529030000410000000000320435000000a4011000390000001a020000390000000000210435000000400140021000000514011001c7000013cb00010430000000040320008a000000200330008c000007660000413d0000000403100370000000000303043b000500000003001d000005070330009c000007660000213d000000050300002900000023033000390000050804000041000000000523004b000000000500001900000000050480190000050803300197000000000603004b0000000004008019000005080330009c000000000405c019000000000304004b000007660000c13d00000005030000290000000403300039000000000331034f000000000d03043b0000050703d0009c000007660000213d0000000503000029000000240e3000390000000503d002100000000003e30019000000000323004b000007660000213d000000090400008a0000000003000411000000000443016f000080070440008c0000041f0000c13d00000000040d004b000004b40000c13d0000000001000416000000000101004b000000cd0000613d000006160000013d000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000a00000005001d000005070550009c000007660000213d0000002405400039000900000005001d0000000a04500029000000000224004b000007660000213d0000006401100370000000000101043b000800000001001d000000010110008c000007660000213d000000020130019000000001011002700000020d0000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000022e0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002260000413d000000000705004b0000023d0000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006240000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000070100002913c90b0d0000040f0000000002010019000700000002001d0000000b01000029000000080300002900000009040000290000000a0500002913c90f760000040f0000000701000029000002fe0000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000a00000001001d000005070110009c000007660000213d0000002404400039000900000004001d0000000a01400029000000000121004b000007660000213d00000002013001900000000101100270000002790000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000800000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000029a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000002920000413d000000000705004b000002a90000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005cb0000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d000000800200043d000000080100002913c90b0d0000040f0000000002010019000800000002001d0000000b0100002900000009030000290000000a0400002913c90b390000040f0000000801000029000002fe0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000b00000001001d000005090110009c000007660000213d0000000b010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005200320009c000003d30000213d000000000101043b0000004003200039000000400030043f000000000101041a000000ff0310018f000000010430008c000004190000213d00000000033204360000000801100270000000ff0110018f000000010410008c000004190000213d00000000001304350000000002020433000000010120008c000004190000213d0000000101000039000000000202004b000002ff0000c13d0000000b010000290000053f011001980000000001000019000007210000c13d000000010110018f000002ff0000013d0000000003000416000000000303004b000007660000c13d000000040220008a000000400220008c000007660000413d0000000402100370000000000302043b000005090230009c000007660000213d0000002401100370000000000201043b000000000103001913c90b0d0000040f0000050901100197000000400200043d0000000000120435000004f401000041000004f40320009c000000000201801900000040012002100000052c011001c7000013ca0001042e000000040420008a000000800440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000551034f000000000505043b000900000005001d000005070550009c000007660000213d0000002405400039000800000005001d0000000904500029000000000224004b000007660000213d0000006401100370000000000101043b000700000001001d000000010110008c000007660000213d00000002013001900000000101100270000003370000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000003aa0000613d0000052b01000041000000800010043f0000000001000411000600000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003580000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003500000413d000000000705004b000003670000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000006410000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000006010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b0100002900000007030000290000000804000029000000090500002913c90f760000040f000004750000013d000000040420008a000000600440008c000007660000413d0000002404100370000000000404043b000b00000004001d0000000404100370000000000404043b000a00000004001d0000004404100370000000000404043b000005070540009c000007660000213d00000023054000390000050806000041000000000725004b000000000700001900000000070680190000050805500197000000000805004b0000000006008019000005080550009c000000000607c019000000000506004b000007660000c13d0000000405400039000000000151034f000000000101043b000900000001001d000005070110009c000007660000213d0000002404400039000800000004001d0000000901400029000000000121004b000007660000213d00000002013001900000000101100270000003a80000c13d00000000010004110000052a0110009c00000000010000190000000101004039000000000101004b000004330000c13d0000050a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000054401000041000000c40010043f0000054501000041000000e40010043f0000054601000041000013cb000104300000000003000416000000000303004b000007660000c13d000000040220008a000000200220008c000007660000413d0000000401100370000000000101043b000005090210009c000007660000213d000000c002000039000000400020043f000000800000043f000000a00000043f0000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d000000400200043d000005410320009c000004040000413d0000053a01000041000000000010043500000041010000390000041c0000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000053e01000041000000c40010043f0000050c01000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000003ee0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003e60000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000101043b0000004003200039000000400030043f000000000301041a000000ff0130018f000000020410008c000004190000813d00000000011204360000000803300270000000ff0330018f000000010430008c000004190000213d00000000003104350000000003020433000000010230008c000004190000213d000000400200043d00000000033204360000000001010433000000010410008c0000071a0000a13d0000053a0100004100000000001004350000002101000039000000040010043f0000051f01000041000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004101000039000000a40010043f0000053301000041000000c40010043f0000053401000041000000e40010043f0000053501000041000006210000013d0000050a01000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000050b01000041000003de0000013d0000052b01000041000000800010043f0000000001000411000700000001001d000000840010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050e011001c7000080030200003913c913b40000040f00000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000004520000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000044a0000413d000000000705004b000004610000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000005e80000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200130008c000007660000413d00000007010000290000000b020000290000000a030000290000000804000029000000090500002913c90a460000040f0000000002010019000a00000002001d0000000b010000290000000803000029000000090400002913c90b390000040f0000000a01000029000002fe0000013d0000000003000416000000000303004b000006050000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000b02000029000000000021043500000526010000410000000000140435000000040140003900008010020000390000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000007680000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000800705000039000080100700003900000528040000410000000b06000029000000ca0000013d000000050500002900000000045200490000008402500039000000c30440008a00000508060000410000000007000019000000000500001900000005087002100000000008e80019000000000881034f000000000808043b000000000948004b00000000090000190000000009068019000005080a400197000005080b800197000000000cab004b000000000c000019000000000c064019000000000aab013f000005080aa0009c000000000c09c01900000000090c004b000007660000c13d0000000008820019000000000881034f000000000808043b0000000005580019000000000885004b0000000008000019000000010800403900000001088001900000080b0000c13d00000001077000390000000008d7004b000004bb0000413d0000000001000416000000000151004b000006160000c13d000405090030019b0000050808000041000000000900001900080000000d001d00070000000e001d00000005019002100000000002e100190000000101000367000000000221034f000000000202043b00000005030000290000000003300079000000c30330008a000000000432004b0000000004000019000000000408801900000508033001970000050805200197000000000635004b00000000060000190000000006084019000000000335013f000005080330009c000000000604c019000000000306004b000007660000c13d000a00000009001d0000000002e20019000900000002001d0000006002200039000000000121034f000000000101043b000600000001001d000005110100004100000000001004390000000b0100002900000004001004430000000001000414000004f40210009c000004f401008041000000c00110021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000000080d000029000000070e00002900000508080000410000000a09000029000000090b000029000007660000613d000000400a00043d000005370100004100000000001a04350000000401a000390000004002000039000000000021043500000001010003670000000002b1034f000000000202043b0000004403a0003900000000002304350000002002b00039000000000321034f000000000303043b000005090430009c000007660000213d0000006404a0003900000000003404350000002002200039000000000321034f000000000303043b000000000403004b0000000004000019000000010400c039000000000443004b000007660000c13d0000008404a0003900000000003404350000002003200039000000000331034f000000000303043b000000a404a0003900000000003404350000004002200039000000000221034f000000000202043b00000000030000310000000004b300490000001f0440008a000000000542004b0000000005000019000000000508801900000508044001970000050806200197000000000746004b00000000070000190000000007084019000000000446013f000005080440009c000000000705c019000000000407004b000007660000c13d0000000004b20019000000000241034f000000000202043b000005070520009c000007660000213d00000020044000390000000003230049000000000534004b0000000005000019000000000508201900000508033001970000050806400197000000000736004b00000000070000190000000007084019000000000336013f000005080330009c000000000705c019000000000307004b000007660000c13d000000c403a00039000000a0050000390000000000530435000000e403a000390000000000230435000000000341034f0000010401a0003900000005042002720000056b0000613d000000000500001900000005065002100000000007610019000000000663034f000000000606043b00000000006704350000000105500039000000000645004b000005630000413d0000001f052001900000057a0000613d0000000504400210000000000343034f00000000044100190000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000000112001900000000000104350000002401a000390000000403000029000000000031043500000000010004140000000b03000029000000040330008c000005a70000613d0000001f02200039000000200300008a000000000232016f000005380320009c0000053802008041000004f403a0009c000004f40400004100090000000a001d000000000304001900000000030a401900000040033002100000006002200210000000000232019f000004f40310009c0000000001048019000000c001100210000000000112019f00000539011000410000000603000029000000000203004b0000059e0000613d00000527011001c700008009020000390000000b04000029000000000500001913c913b40000040f000005a00000013d0000000b0200002913c913b40000040f0000000102200190000000080d000029000000070e00002900000508080000410000000a09000029000000090a000029000007aa0000613d0000050701a0009c000003d30000213d0000004000a0043f00000001099000390000000001d9004b000004e00000413d000000cd0000013d000000400200043d0000001f0430018f0000000505300272000005bb0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005b30000413d000000000604004b000005ca0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005d80000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005d00000413d000000000604004b000005e70000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000005f50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005ed0000413d000000000604004b000003fd0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000050a03000041000000000031043500000084032001bf00000020040000390000000000430435000000e40320003900000523040000410000000000430435000000c40320003900000524040000410000000000430435000000a40220003900000038030000390000000000320435000000400110021000000525011001c7000013cb000104300000050a01000041000000800010043f0000002001000039000000840010043f0000004501000039000000a40010043f0000053b01000041000000c40010043f0000053c01000041000000e40010043f0000053d01000041000001040010043f0000053601000041000013cb00010430000000400200043d0000001f0430018f0000000505300272000006310000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006290000413d000000000604004b000006400000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f00000005053002720000064e0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006460000413d000000000604004b0000065d0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400100043d00000084021000390000052d03000041000000000032043500000064021000390000052e03000041000000000032043500000044021000390000052f0300004100000000003204350000002402100039000000430300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000530011001c7000013cb00010430000000c002100039000000400020043f00000005020000290000000000020435000000a001100039000400000001001d000000000001043500000007010000290000002001100039000300000001001d0000000101100367000000000101043b000700000001001d000005090110009c000007660000213d00000007010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c7000080100200003913c913b90000040f0000000102200190000007660000613d00000005020000290000000002020433000000010320008c000004190000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000004030000290000000003030433000000010430008c000004190000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000030100002900000060021000390000000101000367000000000321034f000000000303043b0000000904000029000000230440008a0000050805000041000000000643004b0000000006000019000000000605801900000508044001970000050807300197000000000847004b0000000005008019000000000447013f000005080440009c000000000506c019000000000405004b000007660000c13d0000000a033000290000000404300039000000000441034f000000000404043b000a00000004001d000005070440009c000007660000213d0000000a04000029000000000440007900000024063000390000050803000041000000000546004b000000000500001900000000050320190000050804400197000900000006001d0000050806600197000000000746004b0000000003008019000000000446013f000005080440009c000000000305c019000000000303004b000007660000c13d000000400220008a000000000121034f000000000101043b000000000201004b0000000002000019000000010200c039000000000221004b000007660000c13d0000000002000416000500000002001d000000000101004b000007ca0000c13d000000050100006b0000080f0000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d00000024014000390000000602000029000000000021043500000526010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f0000000102200190000008750000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d0200003900000004030000390000052804000041000000080500002900000006060000290000000707000029000000ca0000013d0000000000130435000004f401000041000004f40320009c0000000002018019000000400120021000000542011001c7000013ca0001042e000000400400043d000a00000004001d0000054001000041000000000014043500000004014000390000000b020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b90000040f0000000a0a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007470000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b0000073f0000413d00000000090a0019000000000705004b000007570000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000007880000613d0000001f01400039000000600210018f0000000001920019000000000221004b00000000020000190000000102004039000005070410009c000003d30000213d0000000102200190000003d30000c13d000000400010043f000000200130008c000007a50000813d0000000001000019000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007780000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007700000413d000000000604004b000007870000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d0000001f0430018f0000000505300272000007950000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000078d0000413d000000000604004b000007a40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000000001090433000000000101004b00000000010000190000000101006039000002ee0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000007ba0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000007b20000413d000000000604004b000007c90000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000050100006b000008220000c13d0000051101000041000000000010043900008002020000390000000400200443000004f4010000410000000003000414000004f40430009c0000000003018019000000c00130021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051501000041000000000014043500000004024000390000000701000029000400000002001d00000000001204350000000601000029000005160110019700000517011001c70000002402400039000300000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190002004000100218000000c00120021000000002011001af00000518011001c70000800202000039000100000002001d13c913b40000040f0000000102200190000008550000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000000050100006b000008030000613d000000000100041600000519011001970000000000010417000000000100041400000009030000290000000a0230002a000004f4043001970000080b0000413d0000000003000031000000000523004b000008b50000813d0000053a01000041000000000010043500000011010000390000041c0000013d000000400100043d0000006402100039000005230300004100000000003204350000004402100039000005240300004100000000003204350000002402100039000000380300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000006130000013d000005110100004100000000001004390000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000070200002900000000002104350000000b01000029000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000b00000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f0000000102200190000008950000613d0000000b01000029000005070110009c000003d30000213d0000000b01000029000000400010043f000007cc0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008650000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000085d0000413d000000000604004b000008740000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008850000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000087d0000413d000000000604004b000008940000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000008a50000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000089d0000413d000000000604004b000008b40000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d00000001044003670000051a0510009c000008c70000413d0000050a010000410000000b020000290000000000120435000000200100003900000004030000290000000000130435000000080100003900000003030000290000000000130435000000440120003900000522020000410000000000210435000000020100002900000514011001c7000013cb000104300000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af0000000702000029000000080d00002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000009d10000613d0000003f023000390000051d02200197000000400400043d0000000002240019000b00000004001d000000000442004b00000000040000190000000104004039000005070520009c000003d30000213d0000000104400190000003d30000c13d000000400020043f0000000b0200002900000000083204360000001f023000390000000502200272000008f30000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000008eb0000413d000900000008001d000000000200004b000008f60000613d0000001f0230018f00000005033002720000000907000029000009030000613d000000000400001900000005054002100000000006570019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000008fb0000413d000000000402004b000009120000613d0000000503300210000000000131034f00000009033000290000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f00000000001304350000051101000041000000000010043900000001020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400400043d0000051e010000410000000000140435000000040140003900000007020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000a00000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f0000000102200190000009ec0000613d0000000a01000029000005070110009c000003d30000213d0000000a01000029000000400010043f0000000b0100002900000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000007660000c13d00000009020000290000000002020433000005070320009c000007660000213d000000090110002900000009022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000007660000c13d0000000023020434000005070430009c000003d30000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000a04400029000005070540009c000003d30000213d000000400040043f0000000a04000029000000000034043500000006033002100000000003230019000000000413004b000007660000213d000000000432004b0000098c0000813d00000508040000410000000a050000290000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000007660000c13d000000400600043d000005200760009c000003d30000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000009720000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f0000000102200190000009d00000613d000000000101043b000000000101004b000007660000613d000000400300043d000000240130003900000040020000390000000000210435000005210100004100000000001304350000000401300039000000070200002900000000002104350000000a01000029000000000101043300000044023000390000000000120435000b00000003001d0000006402300039000000000301004b000009bb0000613d00000000030000190000000a040000290000002004400039000a00000004001d0000000004040433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000009af0000413d0000000b040000290000000001420049000004f402000041000004f40340009c000000000302001900000000030440190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f000080050200003913c913b40000040f000000010220019000000a0c0000613d000007080000013d000000000001042f0000001f0430018f0000000502300272000009dc0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000009d50000413d000000000504004b000009ea0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f4033001970000000505300272000009fc0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000009f40000413d000000000604004b00000a0b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000a1c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000a140000413d000000000604004b00000a2b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000003fd0000013d0000001f031000390000050804000041000000000523004b0000000005000019000000000504401900000508062001970000050803300197000000000763004b000000000400a019000000000363013f000005080330009c000000000405c019000000000304004b00000a440000613d0000000103100367000000000303043b000005070430009c00000a440000213d00000020011000390000000004310019000000000224004b00000a440000213d0000000002030019000000000001042d0000000001000019000013cb00010430000300000000000200000000070004140000000008450019000000000558004b00000000050000190000000105004039000004f404400197000000010550019000000ace0000c13d0000000006000031000000000586004b00000ace0000413d000200000002001d000300000001001d000100000003001d00000001044003670000051a0570009c00000ad80000813d0000000002860049000004f40220019700000000022403df000000c0017002100000051b0110019700000547011001c700000000011203af000080100200003913c913be0000040f00000000030100190000006003300270000004f403300197000000010220019000000adf0000613d0000003f023000390000051d04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005070640009c00000ad20000213d000000010550019000000ad20000c13d000000400040043f00000000043204360000001f05300039000000050550027200000a810000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b00000a790000413d000000000500004b00000a830000613d0000001f0530018f000000050330027200000a8f0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b00000a870000413d000000000605004b00000a9e0000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000130435000000400100043d0000000002020433000000200220008c0000000305000029000000020600002900000afa0000c13d0000000002040433000000a003100039000000000023043500000080021000390000000000620435000000600210003900000001030000290000000000320435000005090250019700000040031000390000000000230435000000200210003900000549030000410000000000320435000000a00300003900000000003104350000054a0310009c00000ad20000213d000000c003100039000000400030043f000004f403000041000004f40420009c000000000203801900000040022002100000000001010433000004f40410009c00000000010380190000006001100210000000000121019f0000000002000414000004f40420009c0000000002038019000000c002200210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b0b0000613d000000000101043b0000050901100197000000000001042d0000053a010000410000000000100435000000110100003900000ad50000013d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000400100043d0000004402100039000005220300004100000000003204350000002402100039000000080300003900000aff0000013d0000001f0430018f000000050230027200000aea0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae30000413d000000000504004b00000af80000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb0001043000000044021000390000054803000041000000000032043500000024021000390000001f0300003900000000003204350000050a020000410000000000210435000000040210003900000020030000390000000000320435000004f402000041000004f40310009c0000000001028019000000400110021000000514011001c7000013cb000104300000000001000019000013cb00010430000000400300043d00000060043000390000000000240435000005090110019700000040023000390000000000120435000000600100003900000000011304360000054b0200004100000000002104350000054c0230009c00000b310000813d0000008002300039000000400020043f000004f402000041000004f40410009c000000000102801900000040011002100000000003030433000004f40430009c00000000030280190000006003300210000000000113019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000112019f00000527011001c7000080100200003913c913b90000040f000000010220019000000b370000613d000000000101043b0000050901100197000000000001042d0000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb000104300000000001000019000013cb000104300009000000000002000500000003001d000000400500043d0000000403500039000800000001001d000000000101004b00000e050000613d000400000004001d000300000002001d00000509012001970000ffff0210008c00000e150000a13d0000054d020000410000000000250435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40350009c00000000010540190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000005001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000b6a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b620000413d000000000705004b00000b790000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e280000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c00000df60000213d000000010110019000000df60000c13d000000400040043f0000001f0130008c00000df40000a13d000000040140003900000000020a0433000000000202004b00000e450000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bb00000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000ba80000413d000000000705004b00000bbf0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e4f0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d000000040140003900000000020a0433000000000202004b00000e6c0000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bf10000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000be90000413d000000000705004b00000c000000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000000010220019000000e760000613d0000001f01400039000000600110018f0000000004a10019000005070140009c00000df60000213d000000400040043f000000200130008c00000df40000413d00000000010a0433000000000101004b00000e930000613d000005200140009c00000df60000213d0000004001400039000000400010043f0000000001040436000200000001001d000000000001043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f0000000703000029000000010220019000000df40000613d0000000002030433000000020320008c00000dfd0000813d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b00000002030000290000000003030433000000010430008c00000dfd0000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b00000c9f0000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000200000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f000000010220019000000f100000613d0000000202000029000005070120009c00000df60000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f300000613d0000000706000029000005070160009c00000df60000213d000000400060043f00000000010004160000051901100197000000000001041700000ccd0000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000200000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f000000010220019000000f500000613d0000000706000029000005070160009c00000df60000213d000000400060043f000000000100041400000005040000290000000402400029000000040320006c00000000030000190000000103004039000004f404400197000000010330019000000e010000c13d0000000003000031000000000523004b00000e010000413d00000001044003670000051a0510009c00000ea40000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000030200002913c913c30000040f00000000030100190000006003300270000004f403300197000000010220019000000eb50000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c00000df60000213d000000010440019000000df60000c13d000000400020043f000500000006001d00000000083604360000001f02300039000000050220027200000d090000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b00000d010000413d000000000200004b00000d0b0000613d0000001f0230018f000000050330027200000d170000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b00000d0f0000413d000000000402004b00000d260000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b00000df40000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f000000010220019000000ed00000613d0000000609000029000005070190009c000000050100002900000df60000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b00000df40000c13d00000007020000290000000002020433000005070320009c00000df40000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b00000df40000c13d0000000023020434000005070430009c00000df60000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c00000df60000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b00000df40000213d000000000432004b00000d9f0000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b00000df40000c13d000000400600043d000005200760009c00000df60000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b00000d850000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f000000010220019000000dfc0000613d000000000101043b000000000101004b000000060600002900000df40000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b00000dcb0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b00000dc10000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f000000010220019000000ef00000613d0000000702000029000005070120009c000000000102001900000df60000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f000000010120019000000df40000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a010000410000000000100435000000210100003900000df90000013d0000053a010000410000000000100435000000110100003900000df90000013d0000050a0200004100000000002504350000002002000039000000000023043500000044015000390000055302000041000000000021043500000024015000390000001b020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000514011001c7000013cb000104300000050a02000041000000000025043500000020020000390000000000230435000000640150003900000551020000410000000000210435000000440150003900000552020000410000000000210435000000240150003900000028020000390000000000210435000004f401000041000004f40250009c0000000005018019000000400150021000000525011001c7000013cb00010430000000400200043d0000001f0430018f000000050530027200000e350000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e2d0000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e0200004100000000002104350000002401400039000000150200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e5c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e540000413d000000000604004b00000e6b0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d0000050a020000410000000000240435000000200200003900000000002104350000004401400039000005500200004100000000002104350000002401400039000000130200003900000e9d0000013d000000400200043d0000001f0430018f000000050530027200000e830000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000e7b0000413d000000000604004b00000e920000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000002020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f000000050230027200000ec00000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000eb90000413d000000000504004b00000ece0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000ee00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ed80000413d000000000604004b00000eef0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f000000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000ef80000413d000000000604004b00000f0f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f200000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f180000413d000000000604004b00000f2f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f380000413d000000000604004b00000f4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000015043500000f6f0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f403300197000000050530027200000f600000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000f580000413d000000000604004b00000f6f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb000104300009000000000002000300000005001d000400000004001d000500000003001d000000400400043d0000000403400039000800000001001d000000000101004b000012480000613d000200000002001d00000509012001970000ffff0210008c000012520000a13d0000054d020000410000000000240435000900000001001d0000000000130435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800202000039000600000002001d000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fa80000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fa00000413d000000000705004b00000fb70000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012650000613d0000001f01400039000000600110018f0000000004a10019000000000114004b00000000010000190000000101004039000005070240009c000012390000213d0000000101100190000012390000c13d000000400040043f0000001f0130008c000012370000a13d000000040140003900000000020a0433000000000202004b000012820000c13d0000054f02000041000000000024043500000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800302000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000fee0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000fe60000413d000000000705004b00000ffd0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000128c0000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d000000040140003900000000020a0433000000000202004b000012a90000c13d0000050d02000041000000000024043500000008020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c70000800402000039000700000004001d13c913b90000040f000000070a00002900000000030100190000006003300270000004f403300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000102f0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000010270000413d000000000705004b0000103e0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000012b30000613d0000001f01400039000000600110018f0000000004a10019000005070140009c000012390000213d000000400040043f000000200130008c000012370000413d00000000010a0433000000000101004b000012d00000613d000005200140009c000012390000213d0000004001400039000000400010043f000000000304043600000000000304350000000502000029000000020120008c000012400000813d0000000000240435000500000003001d000000000003043500000009010000290000000000100435000000200000043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c0012002100000050f011001c70000801002000039000700000004001d13c913b90000040f00000007030000290000000102200190000012370000613d0000000002030433000000010320008c0000000505000029000012400000213d000000000101043b000000000301041a000001000400008a000000000343016f000000000223019f000000000021041b0000000003050433000000010430008c000012400000213d0000051004000041000000000242016f00000008033002100000ff000330018f000000000223019f000000000021041b000000000100041600000511020000410000000000200439000000000101004b000010e20000613d0000800a010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c70000800202000039000700000002001d13c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d000005130100004100000000001404350000004401400039000000000200041600000000002104350000002401400039000000090200002900000000002104350000000001000410000005090110019700000004024000390000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000500000004001d00000000010440190000004001100210000000c002200210000000000112019f00000514011001c70000800a0200003913c913b40000040f00000001022001900000134d0000613d0000000502000029000005070120009c000012390000213d000000400020043f0000051101000041000000000010043900000007020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000136d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041600000519011001970000000000010417000011100000013d00000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051501000041000000000014043500000004024000390000000901000029000500000002001d00000000001204350000000801000029000005160110019700000517011001c70000002402400039000100000002001d0000000000120435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000700000004001d00000000010440190000004001100210000000c002200210000000000112019f00000518011001c7000080020200003913c913b40000040f00000001022001900000138d0000613d0000000706000029000005070160009c000012390000213d000000400060043f000000000100041400000004040000290000000302400029000000030320006c00000000030000190000000103004039000004f4044001970000000103300190000012440000c13d0000000003000031000000000523004b000012440000413d00000001044003670000051a0510009c000012e10000813d00000000050004110000000002230049000004f40220019700000000022403df000000c0011002100000051b011001970000051c011001c700000000011203af000400000005001d000005090d500197000000020200002913c913c30000040f00000000030100190000006003300270000004f4033001970000000102200190000012f20000613d0000003f023000390000051d02200197000000400600043d0000000002260019000000000462004b00000000040000190000000104004039000005070520009c000012390000213d0000000104400190000012390000c13d000000400020043f000500000006001d00000000083604360000001f0230003900000005022002720000114c0000613d00000000040000310000000104400367000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000625004b000011440000413d000000000200004b0000114e0000613d0000001f0230018f00000005033002720000115a0000613d000000000400001900000005054002100000000006580019000000000551034f000000000505043b00000000005604350000000104400039000000000534004b000011520000413d000000000402004b000011690000613d0000000503300210000000000131034f00000000033800190000000302200210000000000403043300000000042401cf000000000424022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000141019f0000000000130435000700000008001d0000051101000041000000000010043900000006020000290000000400200443000004f4010000410000000004000414000004f40340009c0000000004018019000000c00140021000000512011001c713c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b000012370000613d000000400400043d0000051e010000410000000000140435000000040140003900000009020000290000000000210435000004f4010000410000000002000414000004f40320009c0000000002018019000004f40340009c000600000004001d00000000010440190000004001100210000000c002200210000000000112019f0000051f011001c7000080020200003913c913b40000040f00000001022001900000130d0000613d0000000609000029000005070190009c0000000501000029000012390000213d000000400090043f00000000010104330000050802000041000000200310008c000000000300001900000000030240190000050804100197000000000504004b000000000200a019000005080440009c000000000203c019000000000202004b000012370000c13d00000007020000290000000002020433000005070320009c000012370000213d000000070110002900000007022000290000001f032000390000050804000041000000000513004b0000000005000019000000000504801900000508033001970000050806100197000000000763004b0000000004008019000000000363013f000005080330009c000000000405c019000000000304004b000012370000c13d0000000023020434000005070430009c000012390000213d00000005043002100000003f04400039000000200500008a000000000454016f0000000004940019000005070540009c000012390000213d000000400040043f000000000039043500000006033002100000000003230019000000000413004b000012370000213d000000000432004b000011e20000813d000005080400004100000000050900190000000006210049000000400760008c000000000700001900000000070440190000050806600197000000000806004b00000000080000190000000008042019000005080660009c000000000807c019000000000608004b000012370000c13d000000400600043d000005200760009c000012390000213d00000020055000390000004007600039000000400070043f000000008702043400000000077604360000000008080433000000000087043500000000006504350000004002200039000000000632004b000011c80000413d0000051101000041000000000010043900008005010000390000000400100443000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000512011001c7000080020200003913c913b90000040f00000001022001900000123f0000613d000000000101043b000000000101004b0000000606000029000012370000613d000000400700043d000000240170003900000040020000390000000000210435000005210100004100000000001704350000000401700039000000090200002900000000002104350000000001060433000000440270003900000000001204350000006402700039000000000301004b0000120e0000613d000000000300001900000020066000390000000004060433000000005404043400000000044204360000000005050433000000000054043500000040022000390000000103300039000000000413004b000012040000413d0000000001720049000004f402000041000004f40370009c000000000302001900000000030740190000004003300210000004f40410009c00000000010280190000006001100210000000000131019f0000000003000414000004f40430009c0000000003028019000000c002300210000000000121019f0000800502000039000700000007001d13c913b40000040f00000001022001900000132d0000613d0000000702000029000005070120009c0000000001020019000012390000213d000000400010043f000004f4010000410000000002000414000004f40320009c0000000002018019000000c00120021000000527011001c70000800d020000390000000403000039000005280400004100000004050000290000000806000029000000090700002913c913b40000040f0000000101200190000012370000613d000000000001042d0000000001000019000013cb000104300000053a0100004100000000001004350000004101000039000000040010043f0000051f01000041000013cb00010430000000000001042f0000053a01000041000000000010043500000021010000390000123c0000013d0000053a01000041000000000010043500000011010000390000123c0000013d0000050a0200004100000000002404350000002002000039000000000023043500000044014000390000055302000041000000000021043500000024014000390000001b02000039000012da0000013d0000050a02000041000000000024043500000020020000390000000000230435000000640140003900000551020000410000000000210435000000440140003900000552020000410000000000210435000000240140003900000028020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000525011001c7000013cb00010430000000400200043d0000001f0430018f0000000505300272000012720000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000126a0000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000054e02000041000000000021043500000024014000390000001502000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012990000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012910000413d000000000604004b000012a80000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d0000050a0200004100000000002404350000002002000039000000000021043500000044014000390000055002000041000000000021043500000024014000390000001302000039000012da0000013d000000400200043d0000001f0430018f0000000505300272000012c00000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000012b80000413d000000000604004b000012cf0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d00000044014000390000052902000041000000000021043500000024014000390000001a0200003900000000002104350000050a010000410000000000140435000000040140003900000020020000390000000000210435000004f401000041000004f40240009c0000000004018019000000400140021000000514011001c7000013cb000104300000050a010000410000000000160435000000200100003900000005020000290000000000120435000000080100003900000001020000290000000000120435000000440160003900000522020000410000000000210435000004f401000041000004f40260009c0000000006018019000000400160021000000514011001c7000013cb000104300000001f0430018f0000000502300272000012fd0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000012f60000413d000000000504004b0000130b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013cb00010430000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000131d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013150000413d000000000604004b0000132c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000133d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013350000413d000000000604004b0000134c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000135d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013550000413d000000000604004b0000136c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000137d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013750000413d000000000604004b0000138c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000013ac0000013d000000400200043d000000000301001900000060033002700000001f0430018f000004f40330019700000005053002720000139d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000013950000413d000000000604004b000013ac0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f401000041000004f40420009c000000000201801900000040012002100000006002300210000000000121019f000013cb00010430000000000001042f000013b7002104210000000102000039000000000001042d0000000002000019000000000001042d000013bc002104230000000102000039000000000001042d0000000002000019000000000001042d000013c1002104230000000102000039000000000001042d0000000002000019000000000001042d000000000f0d0019000013c7002104290000000102000039000000000001042d0000000002000019000000000001042d000013c900000432000013ca0001042e000013cb00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000009c4d535a00000000000000000000000000000000000000000000000000000000e9f18c1600000000000000000000000000000000000000000000000000000000ecf95b8900000000000000000000000000000000000000000000000000000000ecf95b8a00000000000000000000000000000000000000000000000000000000f3385fb600000000000000000000000000000000000000000000000000000000e9f18c1700000000000000000000000000000000000000000000000000000000ec8067c7000000000000000000000000000000000000000000000000000000009c4d535b00000000000000000000000000000000000000000000000000000000bb0fd61000000000000000000000000000000000000000000000000000000000da37f07f000000000000000000000000000000000000000000000000000000005d3826ff000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000007b510fe80000000000000000000000000000000000000000000000000000000084da1fb400000000000000000000000000000000000000000000000000000000187598a5000000000000000000000000000000000000000000000000000000003cda33510000000000000000000000000000000000000000000000000000000057180981000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff08c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792073656c66000000000000000000000000000000000000000000000000000000000000640000008000000000000000004c6314f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000200000000000000000000000000000000000040000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000579952fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f1e1be000000000000000000000000000000000000000000000000000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0c2e4ff97000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbfad7e232e000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000006e6f742063616c6c2074686520636f6e7374727563746f7200000000000000005468652076616c7565206d757374206265207a65726f20696620776520646f2000000000000000000000000000000000000000840000000000000000000000000d4651aa000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e554686520636f64652068617368206973206e6f74206b6e6f776e0000000000000000000000000000000000000000000000000000000000000000000000010000306395c6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000696e6700000000000000000000000000000000000000000000000000000000006f6d2073657175656e7469616c20746f20617262697472617279206f726465724974206973206f6e6c7920706f737369626c6520746f206368616e676520667200000000000000000000000000000000000000a40000000000000000000000000200000000000000000000000000000000000020000000000000000000000000c7544194dab38b1652f35439b9b4806d8b71e113f2cf5c1351cb2ecf7c83959a43616e206f6e6c792062652063616c6c656420627920464f5243455f4445504c4f594552206f7220434f4d504c45585f55504752414445525f434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a4000000800000000000000000f3385fb60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffefb00000000000000000000000000000000000001040000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000006076616c7565602070726f7669646564206973206e6f7420657175616c20746f2074686520636f6d62696e6564206076616c75656073206f66206465706c6f796d656e7473000000000000000000000000000000000000000000000000000000496e617070726f7072696174652063616c6c6572000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff00004de2e46800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000400000000000000000000000003fb6f4f15ddd4a75588ca934894ad2cdcab25a5012e2515e1783433d0128611a54686973206d6574686f6420726571756972652073797374656d2063616c6c20666c616700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000080000000000000000000000001000000000000000000000000000000000000000000000000000000006b656363616b3235362072657475726e656420696e76616c69642064617461002020dba91b30cc0006188af794c2fb30dd8520db7e2c088b7fc7c103c00ca494000000000000000000000000000000000000000000000000ffffffffffffff3f63bae3a9951d38e8a3fbb7b70909afc1200610fc5bc55ade242f815974674f23000000000000000000000000000000000000000000000000ffffffffffffff80e03fe17700000000000000000000000000000000000000000000000000000000436f64652068617368206973206e6f6e2d7a65726f00000000000000000000005aa9b6b5000000000000000000000000000000000000000000000000000000004163636f756e74206973206f6363757069656400000000000000000000000000656c20737061636500000000000000000000000000000000000000000000000043616e206e6f74206465706c6f7920636f6e74726163747320696e206b65726e42797465636f6465486173682063616e6e6f74206265207a65726f0000000000158bafccd92e72ef3131795a8537d8b203e1379bcb77bd4de4eadb50996ea74d", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/DefaultAccount.json b/src/deps/contracts/DefaultAccount.json index 42e74032..8ee74830 100644 --- a/src/deps/contracts/DefaultAccount.json +++ b/src/deps/contracts/DefaultAccount.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "DefaultAccount", - "sourceName": "cache-zk/solpp-generated-contracts/DefaultAccount.sol", + "sourceName": "contracts-preprocessed/DefaultAccount.sol", "abi": [ { "stateMutability": "payable", @@ -539,8 +539,8 @@ "type": "receive" } ], - "bytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005fe0430019700030000004103550002000000010355000005fe0030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000002000031000000040120008c000000410000413d0000000201000367000000000301043b000000e003300270000006000430009c000000450000a13d000006010430009c000000a90000613d000006020430009c000000ea0000613d000006030330009c000000a60000c13d000000040220008a0000060603000041000000200420008c000000000400001900000000040340190000060605200197000000000605004b000000000300a019000006060550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000006070310009c0000010d0000213d00000000011200490000060602000041000002600310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005ff01000041000017f50001042e000000000102004b000000a60000c13d0000000001000019000017f50001042e000006040430009c000000eb0000613d000006050330009c000000a60000c13d000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000006070430009c0000010d0000213d000000040530003900000000045200490000060606000041000002600740008c000000000700001900000000070640190000060604400197000000000804004b000000000600a019000006060440009c00000000040700190000000004066019000000000404004b0000010d0000c13d0000000004000411000080010440008c000000430000c13d000000000400041200000608064001970000000004000410000000000646004b000000430000c13d0000022406300039000000000661034f0000000007320049000000230770008a000000000606043b0000060608000041000000000976004b000000000900001900000000090880190000060607700197000006060a600197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000006070760009c0000010d0000213d000000000762004900000020025000390000060608000041000000000972004b000000000900001900000000090820190000060607700197000006060a200197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000061401000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000062c01000041000000c40010043f0000062d01000041000000e40010043f0000062b01000041000017f60001043017f417cf0000040f0000000001000019000017f50001042e000000040320008a0000060604000041000000600630008c000000000600001900000000060440190000060603300197000000000703004b000000000400a019000006060330009c00000000030600190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000703043b000006070370009c0000010d0000213d000000040670003900000000036200490000060604000041000002600830008c000000000800001900000000080440190000060603300197000000000903004b000000000400a019000006060330009c00000000030800190000000003046019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d000000000300041200000608033001970000000004000410000000000343004b000000430000c13d0000012403700039000000000331034f0000004404700039000000000441034f000000000404043b0000060804400197000000000303043b000006090830009c000001310000413d00000044015000390000061302000041000000000021043500000024015000390000000802000039000000000021043500000614010000410000000000150435000000040150003900000020020000390000000000210435000005fe01000041000005fe0250009c0000000001054019000000400110021000000615011001c7000017f60001043017f417470000040f000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000b00000003001d000006070330009c0000010d0000213d0000000b030000290000000403300039000a00000003001d00000000023200490000060603000041000002600420008c000000000400001900000000040340190000060602200197000000000502004b000000000300a019000006060220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017f6000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d000000000100041200000608011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000062e0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b00000024041000390000000000340435000000240300003900000000003104350000062f0310009c0000015e0000413d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000001c405700039000000000551034f0000000007720049000000230770008a000000000505043b0000060608000041000000000975004b000000000900001900000000090880190000060607700197000006060a500197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005650019000000000151034f000000000601043b000006070160009c0000010d0000213d000000000162004900000020025000390000060605000041000000000712004b0000000007000019000000000705201900000606011001970000060608200197000000000918004b0000000005008019000000000118013f000006060110009c00000000010700190000000001056019000000000101004b0000010d0000c13d00000000010004140000060a0510009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f00000000040104330000060a0540009c000001740000413d00000614020000410000000000230435000000a40210003900000613040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005fe01000041000005fe0230009c0000000001034019000000400110021000000615011001c7000017f600010430000000c0022002100000061002200197000000400110021000000630011000410000063101100197000000000112019f00000060024002100000063202200197000000000121019f00000633011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917f417e00000040f00030000000103550000006001100270000105fe0010019d000005fe041001970000003f014000390000063405100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000006070630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000102200190000002640000613d0000000901000029000000000101004b000012940000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b000002be0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000003240000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000902000029000000210220003900000000001204350000047b0000013d000000000221034f000000000202043b0000060b02200197000006160720009c0000026e0000c13d000000430260008c000002a00000213d0000061401000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000062901000041000000c40010043f0000062a01000041000000e40010043f0000062b01000041000017f6000104300000000207000367000080060540008c00000000050000190000024b0000c13d000000040560008c00000000050000190000024b0000413d000000000827034f0000000105000039000000000808043b0000060b088001970000060c0980009c0000024a0000613d0000060d0980009c0000024a0000613d0000060e0980009c0000024a0000613d0000060f0580009c00000000050000190000000105006039000000010550018f0000000008260019000005fe02200197000000000227034f000000000703004b0000027a0000c13d000000000368004b000012b00000413d0000000003000031000000000683004b000012b00000413d00000611060000410000061207000041000000000505004b00000000050600190000000005076019000000c0011002100000061001100197000000000115019f0000000003830049000005fe0330019700000000023203df00000000011203af000000000204001917f417ea0000040f000002890000013d0000000001010433000005fe02000041000005fe0410009c0000000001028019000005fe0430009c000000000203401900000040022002100000006001100210000000000121019f000017f600010430000006170120009c000000430000613d0000061401000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000061801000041000000c40010043f0000061901000041000017f600010430000000000668004b000012b00000413d0000000006000031000000000786004b000012b00000413d0000000006860049000005fe0660019700000000026203df000000c001100210000006100110019700000611011001c700000000011203af0000800902000039000000000600001917f417ea0000040f000300000001035500000000030100190000006003300270000105fe0030019d000005fe033001970000000102200190000003090000613d17f417c20000040f0000000002010019000000400100043d000b00000001001d17f417310000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f50001042e0000002402500039000000000221034f000000000202043b000b00000002001d000006080220009c0000010d0000213d000000e402300039000000000221034f0000004403500039000000000131034f000000000101043b000a00000001001d000000000102043b0000061a02000041000000800020043f0000060802400197000800000002001d000000840020043f0000060801100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c0000039d0000c13d0000000103000031000000200130008c00000020040000390000000004034019000003c90000013d000000710320008c000003410000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d00000000044200190000060605000041000000000643004b0000000006000019000000000605801900000606044001970000060607300197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000006070410009c0000010d0000213d000000000212004900000020033000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d00000002044003670000060a0520009c000007d60000413d000000400100043d00000044021000390000061303000041000000000032043500000024021000390000000803000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f6000104300000001f0430018f0000000502300272000003140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000030d0000413d000000000504004b000003220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400200043d000900000002001d000006380220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000003300000413d00000009030000290000000003030433000000000303004b000004720000c13d000006550100004100000000001004350000003201000039000000040010043f0000065601000041000017f600010430000000020120008c000003f00000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ad0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000038a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003820000413d000000000500004b0000038c0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005ca0000013d000005fe02000041000005fe0310009c0000000001028019000000c0011002100000061b011001c70000000b0200002917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003ae0000413d000000000705004b000003c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000044c0000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000061c030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000061d05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c0000054c0000c13d000000010200003900000001010000310000055d0000013d000000010120008c000004cc0000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c0000063f0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004390000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004310000413d000000000500004b0000043b0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000065c0000013d000000400200043d0000001f0430018f0000000503300272000004590000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004510000413d000000000504004b000004680000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004de0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004b90000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004b10000413d000000000500004b000004bb0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004fb0000013d000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001703000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004e80000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006ac0000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005390000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005310000413d000000000600004b0000053b0000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006c90000013d000005fe04000041000005fe0530009c000000000304801900000060033002100000004002200210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000700000003001d000000000301004b0000057d0000c13d00000007010000290000000031010434000300000003001d000000000202004b0000061a0000c13d000000000201004b0000075d0000c13d000000400300043d000b00000003001d000006140100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f00000005055002720000059d0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005950000413d000000000604004b000005610000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000005610000013d000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005b70000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007680000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000006070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005ff0000413d000000000600004b000006090000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007850000013d000000000201004b00000a320000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b00000a2e0000c13d000000400100043d00000044021000390000062803000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000006490000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000009c00000413d00000080032002700000063a0420009c000000000302a0190000063a0420009c0000000004000019000000100400203900000008054001bf000006070630009c00000000040520190000004005300270000006070630009c000000000305201900000004054001bf000005fe0630009c00000000040520190000002005300270000005fe0630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006990000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000006910000413d000000000600004b0000069b0000613d0000000006030433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000009dd0000013d000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006b60000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006d70000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b000006d00000413d000000000143001900000000000104350000000004020433000000000504004b000006e40000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006dd0000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000006070220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f000006380110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000063c0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000bcd0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000007480000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007400000413d000000000400004b0000074a0000613d00000005040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bed0000013d000005fe020000410000000304000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007720000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a6f0000413d00000080043002700000063a0530009c000000000403a0190000063a0530009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007c30000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007bb0000413d000000000700004b000007c50000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a8c0000013d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe033001970003000000010355000000010220019000000add0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008010000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007f90000413d000000000400004b000008030000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008130000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000080b0000413d000000000604004b000008220000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b0000060606000041000000000753004b0000000007000019000000000706801900000606055001970000060608300197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000006070350009c0000010d0000213d0000000503500210000000000434004900000020061000390000060601000041000000000746004b0000000007000019000000000701201900000606044001970000060608600197000000000948004b0000000001008019000000000448013f000006060440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d00000020041000390000064105500198000008610000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008590000413d000000000200004b000008630000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000006070520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005fe02000041000005fe0340009c0000000003020019000000000304401900000040033002100000000001010433000005fe0410009c00000000010280190000006001100210000000000131019f0000000003000414000005fe0430009c0000000002034019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b0000060606000041000000000754004b0000000007000019000000000706801900000606055001970000060608400197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000006070310009c0000010d0000213d000000000212004900000020034000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d0000000204400367000005fe0520009c000002f70000213d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe03300197000300000001035500000001022001900000157d0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008e70000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008df0000413d000000000400004b000008e90000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008f90000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008f10000413d000000000604004b000009080000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000643030000410000000000320435000001c0030000390000000000310435000006440310009c0000012b0000213d000001e003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006450300004100000000003204350000008003400039000000000013043500000060014000390000064603000041000000000031043500000040014000390000064703000041000000000031043500000080010000390000000000140435000006480140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005fe01000041000005fe0320009c000000000201801900000040022002100000000003040433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000301043b000000400100043d0000004202100039000000070400002900000000004204350000002002100039000006490400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006240310009c0000012b0000213d0000008003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400300043d000006380430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000009ca0000413d0000000005030433000000000505004b0000033b0000613d000000f8052002100000060606000041000000000202004b0000000002050019000000000206601900000000050404330000063905500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b5f0000413d00000080042002700000063a0520009c000000000402a0190000063a0520009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200000a1b0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000a130000413d000000000700004b00000a1d0000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b7c0000013d00000007010000290000000001010433000000000201004b00000a5c0000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a5c0000c13d000000400100043d00000064021000390000062603000041000000000032043500000044021000390000062703000041000000000032043500000024021000390000002a03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400300043d0000002401300039000000090200002900000000002104350000061a010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000af80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000b2b0000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a790000413d0000000006040433000000000606004b0000033b0000613d000000f8063002100000060607000041000000000303004b0000000003060019000000000307601900000000060504330000063906600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c620000413d00000080053002700000063a0630009c000000000503a0190000063a0630009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000aca0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ac20000413d000000000800004b00000acc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c7f0000013d0000001f0430018f000000050230027200000ae80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae10000413d000000000504004b00000af60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000005fe02000041000005fe0310009c00000000010280190000000704000029000005fe0340009c00000000020440190000004002200210000000c001100210000000000121019f00000620011001c70000000b0200002917f417e50000040f000000070a00002900000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b170000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b0f0000413d000000000705004b00000b270000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c3c0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000006070410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000cd00000c13d00000044021000390000000a03000029000000000032043500000020021000390000061c03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006240310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006250310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000061d040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000df20000c13d0000000102000039000000010100003100000e050000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b690000413d0000000006040433000000000606004b0000033b0000613d000000f8062002100000060607000041000000000202004b0000000002060019000000000207601900000000060504330000063906600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cf60000413d00000080052002700000063a0620009c000000000502a0190000063a0620009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000bba0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000bb20000413d000000000800004b00000bbc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000d130000013d000000400200043d000500000002001d000006380220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000bd90000413d00000005030000290000000003030433000000000303004b0000033b0000613d000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d00000000044300190000060605000041000000000641004b0000000006000019000000000605801900000606044001970000060607100197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000006070510009c0000010d0000213d000000000513004900000020034000390000060604000041000000000653004b0000000006000019000000000604201900000606055001970000060607300197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000f240000c13d000000000132034f000000000101043b000000010200008a0000060603000041000000000221004b000000000200001900000000020320190000060601100197000006060410009c00000000030080190000060601100167000006060110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010820000c13d000000400100043d000400000001001d000006380110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000063b02000041000000000021043500000001010000390000000000130435000010820000013d000000400200043d0000001f0430018f000000050330027200000c490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c410000413d000000000504004b00000c580000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c6c0000413d0000000007050433000000000707004b0000033b0000613d000000f8073002100000060608000041000000000303004b0000000003070019000000000308601900000000070604330000063907700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d740000413d00000080063002700000063a0730009c000000000603a0190000063a0730009c0000000007000019000000100700203900000008087001bf000006070960009c00000000070820190000004008600270000006070960009c000000000608201900000004087001bf000005fe0960009c00000000070820190000002008600270000005fe0960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000006070a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000cbd0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000cb50000413d000000000900004b00000cbf0000613d0000000009060433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063b0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d910000013d00000064021000390000062103000041000000000032043500000044021000390000062203000041000000000032043500000024021000390000003603000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400100043d00000044021000390000064203000041000000000032043500000024021000390000001f03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000d000000413d0000000007050433000000000707004b0000033b0000613d000000f8072002100000060608000041000000000202004b0000000002070019000000000208601900000000070604330000063907700197000000000227019f0000000000260435000000400600043d000006380260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000063c0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e550000413d00000080072002700000063a0820009c000000000702a0190000063a0820009c0000000008000019000000100800203900000008098001bf000006070a70009c00000000080920190000004009700270000006070a70009c000000000709201900000004098001bf000005fe0a70009c00000000080920190000002009700270000005fe0a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000006070b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d610000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d590000413d000000000a00004b00000d630000613d000000000a070433000000000a0a004b0000033b0000613d000000000a090433000006390aa00197000000f80b800210000000000aab019f0000063b0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e720000013d000000400600043d000006380760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d7e0000413d0000000008060433000000000808004b0000033b0000613d000000f8083002100000060609000041000000000303004b0000000003080019000000000309601900000000080704330000063908800197000000000338019f0000000000370435000000400700043d000006380370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000063c090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f870000413d00000080083002700000063a0930009c000000000803a0190000063a0930009c00000000090000190000001009002039000000080a9001bf000006070b80009c00000000090a2019000000400a800270000006070b80009c00000000080a2019000000040a9001bf000005fe0b80009c00000000090a2019000000200a800270000005fe0b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000006070ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000ddf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000dd70000413d000000000b00004b00000de10000613d000000000b080433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c900210000000000bbc019f0000063b0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000fa40000013d000005fe04000041000005fe0520009c00000000020480190000004002200210000005fe0530009c00000000030480190000006003300210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000900000003001d000000000301004b00000e250000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f5a0000c13d000000000201004b000011510000c13d000000400300043d000b00000003001d0000061401000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e450000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000e3d0000413d000000000604004b00000e090000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000e090000013d000000400700043d000006380870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e5f0000413d0000000009070433000000000909004b0000033b0000613d000000f809200210000006060a000041000000000202004b000000000209001900000000020a601900000000090804330000063909900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e7f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e780000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e8e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e870000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e9d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e960000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000eac0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000ea50000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000ebb0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000eb40000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000eca0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000ec30000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000006070450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000013f30000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000014710000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000014710000013d000000380210008c000010650000413d0000002002100270000005fe0310009c00000000030100190000000003022019000005fe0210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000006380440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f420000413d00000004040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063d044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010820000013d000000000201004b00000f710000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b0000062d0000613d00000009010000290000000001010433000000000201004b000000430000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a470000613d000000430000013d000000400800043d000006380980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f910000413d000000000a080433000000000a0a004b0000033b0000613d000000f80a300210000006060b000041000000000303004b00000000030a001900000000030b6019000000000a090433000006390aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000fb10000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000faa0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000fc00000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000fb90000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000fcf0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000fc80000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000fde0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000fd70000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fed0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fe60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000ffc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000ff50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b0000100b0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b000010040000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000006070450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000014250000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000015040000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000015040000013d000000400200043d000400000002001d000006380220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010710000413d00000004030000290000000003030433000000000303004b0000033b0000613d000000f80110021000000000030204330000063903300197000000000113019f0000060601100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010f70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b0000060604000041000000000659004b0000000006000019000000000604801900000606055001970000060607900197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000006070a20009c0000010d0000213d00000000032300490000002009900039000006060a000041000000000b39004b000000000b000019000000000b0a201900000606033001970000060609900197000000000c39004b000000000a008019000000000339013f000006060330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000060702200197000000380320008c000011990000413d0000002003200270000005fe0420009c00000000040200190000000004032019000005fe0320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d000006380560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010e10000413d0000000005060433000000000505004b0000033b0000613d00000000050404330000063905500197000000f807300210000000000557019f0000063f055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011b30000013d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000115c0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004420436000000210530003900000005055002720000113e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000011360000413d000000000500004b000011400000613d0000000005020433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011790000013d000005fe020000410000000804000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011660000413d0000000004020433000000000404004b0000033b0000613d000000f8041002100000060605000041000000000101004b0000000001040019000000000105601900000000040304330000063904400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000117f0000413d00000000024300190000064a0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000006070420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000108a0000013d000000400600043d000006380360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011a30000413d0000000004060433000000000404004b0000033b0000613d000000f80220021000000000040304330000063904400197000000000242019f0000063e02200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b0000060607000041000000000854004b0000000008000019000000000807801900000606055001970000060609400197000000000a59004b0000000007008019000000000559013f000006060550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000006070340009c0000010d0000213d000000000242004900000020055000390000060603000041000000000725004b0000000007000019000000000703201900000606022001970000060608500197000000000928004b0000000003008019000000000228013f000006060220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011eb0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011e40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011fc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b0000120d0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012050000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b0000121e0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012160000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b0000122f0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012270000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012400000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012380000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012510000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012490000413d000000000a07004b000012600000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000126e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012670000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005fe01000041000005fe0430009c000000000301801900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000900000001001d0000000b01000029000000e4021000390000000201000367000000000221034f000000000202043b0000060802200198000012b60000c13d0000000b03000029000000a402300039000000000221034f0000006403300039000000000331034f000000000303043b000000000402043b00000000523400a9000000000504004b000012a80000613d00000000544200d9000000000334004b000012b00000c13d0000000b030000290000012403300039000000000131034f000000000101043b000000000121001a000700000001001d000012b00000413d000012bb0000013d000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f6000104300000000b020000290000012402200039000000000121034f000000000101043b000700000001001d0000064b01000041000000000010043900000008010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c70000800a0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b0000000702000029000000000112004b000012e20000a13d000000400100043d00000064021000390000065303000041000000000032043500000044021000390000065403000041000000000032043500000024021000390000002203000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f60001043000000000030000310000000b020000290000000001230049000000230410008a000001e4022000390000000201000367000000000221034f000000000202043b0000060605000041000000000642004b0000000006000019000000000605801900000606044001970000060607200197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000002420019000000000121034f000000000101043b000006070410009c0000010d0000213d000000000413004900000020052000390000060602000041000000000645004b0000000006000019000000000602201900000606044001970000060607500197000000000847004b0000000002008019000000000447013f000006060440009c000000000206c019000000000202004b0000010d0000c13d0000003f02100039000000200400008a000000000442016f000000400200043d0000000004420019000000000624004b00000000060000190000000106004039000006070740009c0000012b0000213d00000001066001900000012b0000c13d000000400040043f00000000041204360000000006510019000000000336004b0000010d0000213d0000001f0310018f000000020550036700000005061002720000132b0000613d000000000700001900000005087002100000000009840019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000013230000413d000000000703004b0000133a0000613d0000000506600210000000000565034f00000000066400190000000303300210000000000706043300000000073701cf000000000737022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000373019f0000000000360435000000000114001900000000000104350000000001020433000000410110008c000013580000c13d00000041012000390000000001010433000000ff0310018f0000001d0130008a000000030500008a000000000151004b0000136a0000213d000000400100043d00000044021000390000065203000041000000000032043500000024021000390000001603000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d00000044021000390000064c03000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000000404043300000040012000390000000002010433000000400100043d0000064d0520009c000013810000413d00000044021000390000065103000041000000000032043500000024021000390000000903000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000600510003900000000002504350000004002100039000000000042043500000020021000390000000000320435000000090200002900000000002104350000000000000435000005fe020000410000000003000414000005fe0430009c0000000003028019000005fe0410009c00000000010280190000004001100210000000c002300210000000000112019f0000064e011001c7000000010200003917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000504400272000013a70000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000013a00000413d000000000605004b000013b50000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013cd0000613d000000000100043300000608011001970000000802000029000000000221004b0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000064f01000041000000000100c019000000400200043d0000000000120435000005fe01000041000005fe0320009c0000000001024019000000400110021000000650011001c7000017f50001042e000000400200043d0000001f0430018f0000000503300272000013da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000013d20000413d000000000504004b000013e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000380760008c000014570000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000140e0000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000014710000013d000000380760008c000014ea0000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000014400000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000015040000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014600000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000147b0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c000015980000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000014d40000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000015b10000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014f30000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000150e0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c0000165b0000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000015670000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000016740000013d0000001f0430018f0000000502300272000015880000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015810000413d000000000504004b000015960000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000015a10000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000006060a000041000000000b83004b000000000b000019000000000b0a80190000060608800197000006060c300197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020093000390000060603000041000000000a49004b000000000a000019000000000a0320190000060604400197000006060b900197000000000c4b004b000000000300801900000000044b013f000006060440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006330a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000015e90000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015e20000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000015f80000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b000015f10000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000016070000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016000000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000016180000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016100000413d000000000b06004b000016270000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000016350000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000162e0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000006070510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005fe01000041000005fe0240009c0000000002010019000000000204401900000040022002100000000003030433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000016640000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000006060a000041000000000b82004b000000000b000019000000000b0a80190000060608800197000006060c200197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020092000390000060602000041000000000a49004b000000000a000019000000000a0220190000060604400197000006060b900197000000000c4b004b000000000200801900000000044b013f000006060440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006400a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000016ac0000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000016a50000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000016bb0000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000016b40000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000016ca0000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016c30000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000016db0000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016d30000413d000000000b06004b000016ea0000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000016f80000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000016f10000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000006070510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005fe01000041000005fe0340009c0000000003010019000000000304401900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d00000000030104330000000002320436000000000403004b0000172a0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000017230000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000017400000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000017390000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a000000000310003100000606010000410000005f0230008c000000000200001900000000020120190000060604300197000000000504004b0000000001008019000006060440009c000000000102c019000000000101004b0000178d0000613d00000002010003670000004402100370000000000202043b000006070420009c0000178d0000213d00000000032300490000060604000041000002600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000178d0000c13d0000000003000411000080010330008c0000178b0000c13d000000000300041200000608033001970000000004000410000000000343004b0000178b0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000178f0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005fe02000041000005fe0310009c0000000001028019000000c001100210000080010200003917f417e00000040f000000010300002900030000000103550000006001100270000105fe0010019d000000200130011a00000001012001950000000101200190000017a70000613d0000000001000019000017f50001042e0000000001000019000017f60001043000000000431200a900000000422300d9000000000112004b000017bc0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000177c0000613d000005fe02000041000005fe0410009c0000000001028019000000c00110021000000640011001c700008009020000390000800104000039000000000500001917f417e00000040f0000000003000415000000020330008a00000020033000c9000017840000013d000000400100043d00000064021000390000065703000041000000000032043500000044021000390000065803000041000000000032043500000024021000390000002503000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f600010430000000400100043d000006590210009c000017c90000813d0000002002100039000000400020043f0000000000010435000000000001042d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000000000100041200000608011001970000000002000410000000000121004b000017d80000c13d0000000001000411000080010110008c000017da0000613d000000000001042d0000000001000019000017f50001042e000006550100004100000000001004350000000101000039000000040010043f0000065601000041000017f600010430000017e3002104210000000102000039000000000001042d0000000002000019000000000001042d000017e8002104230000000102000039000000000001042d0000000002000019000000000001042d000017ed002104210000000102000039000000000001042d0000000002000019000000000001042d000017f2002104230000000102000039000000000001042d0000000002000019000000000001042d000017f400000432000017f50001042e000017f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f7065000000000000000000000000000000000000000000000000ffffffffffffffe0f02ad7a6c9bd15b4a609dc9f1d09d0fe7738d949cfb17d2adf03465aa5b8d4d8", - "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005fe0430019700030000004103550002000000010355000005fe0030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000002000031000000040120008c000000410000413d0000000201000367000000000301043b000000e003300270000006000430009c000000450000a13d000006010430009c000000a90000613d000006020430009c000000ea0000613d000006030330009c000000a60000c13d000000040220008a0000060603000041000000200420008c000000000400001900000000040340190000060605200197000000000605004b000000000300a019000006060550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000006070310009c0000010d0000213d00000000011200490000060602000041000002600310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005ff01000041000017f50001042e000000000102004b000000a60000c13d0000000001000019000017f50001042e000006040430009c000000eb0000613d000006050330009c000000a60000c13d000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000006070430009c0000010d0000213d000000040530003900000000045200490000060606000041000002600740008c000000000700001900000000070640190000060604400197000000000804004b000000000600a019000006060440009c00000000040700190000000004066019000000000404004b0000010d0000c13d0000000004000411000080010440008c000000430000c13d000000000400041200000608064001970000000004000410000000000646004b000000430000c13d0000022406300039000000000661034f0000000007320049000000230770008a000000000606043b0000060608000041000000000976004b000000000900001900000000090880190000060607700197000006060a600197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000006070760009c0000010d0000213d000000000762004900000020025000390000060608000041000000000972004b000000000900001900000000090820190000060607700197000006060a200197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000061401000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000062c01000041000000c40010043f0000062d01000041000000e40010043f0000062b01000041000017f60001043017f417cf0000040f0000000001000019000017f50001042e000000040320008a0000060604000041000000600630008c000000000600001900000000060440190000060603300197000000000703004b000000000400a019000006060330009c00000000030600190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000703043b000006070370009c0000010d0000213d000000040670003900000000036200490000060604000041000002600830008c000000000800001900000000080440190000060603300197000000000903004b000000000400a019000006060330009c00000000030800190000000003046019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d000000000300041200000608033001970000000004000410000000000343004b000000430000c13d0000012403700039000000000331034f0000004404700039000000000441034f000000000404043b0000060804400197000000000303043b000006090830009c000001310000413d00000044015000390000061302000041000000000021043500000024015000390000000802000039000000000021043500000614010000410000000000150435000000040150003900000020020000390000000000210435000005fe01000041000005fe0250009c0000000001054019000000400110021000000615011001c7000017f60001043017f417470000040f000000040320008a0000060604000041000000600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000010d0000c13d0000004403100370000000000303043b000b00000003001d000006070330009c0000010d0000213d0000000b030000290000000403300039000a00000003001d00000000023200490000060603000041000002600420008c000000000400001900000000040340190000060602200197000000000502004b000000000300a019000006060220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017f6000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d000000000100041200000608011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000062e0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b00000024041000390000000000340435000000240300003900000000003104350000062f0310009c0000015e0000413d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000001c405700039000000000551034f0000000007720049000000230770008a000000000505043b0000060608000041000000000975004b000000000900001900000000090880190000060607700197000006060a500197000000000b7a004b000000000800801900000000077a013f000006060770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005650019000000000151034f000000000601043b000006070160009c0000010d0000213d000000000162004900000020025000390000060605000041000000000712004b0000000007000019000000000705201900000606011001970000060608200197000000000918004b0000000005008019000000000118013f000006060110009c00000000010700190000000001056019000000000101004b0000010d0000c13d00000000010004140000060a0510009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f00000000040104330000060a0540009c000001740000413d00000614020000410000000000230435000000a40210003900000613040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005fe01000041000005fe0230009c0000000001034019000000400110021000000615011001c7000017f600010430000000c0022002100000061002200197000000400110021000000630011000410000063101100197000000000112019f00000060024002100000063202200197000000000121019f00000633011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917f417e00000040f00030000000103550000006001100270000105fe0010019d000005fe041001970000003f014000390000063405100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000006070630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000102200190000002640000613d0000000901000029000000000101004b000012940000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b000002be0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000003240000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c00000000010020190000000902000029000000210220003900000000001204350000047b0000013d000000000221034f000000000202043b0000060b02200197000006160720009c0000026e0000c13d000000430260008c000002a00000213d0000061401000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000062901000041000000c40010043f0000062a01000041000000e40010043f0000062b01000041000017f6000104300000000207000367000080060540008c00000000050000190000024b0000c13d000000040560008c00000000050000190000024b0000413d000000000827034f0000000105000039000000000808043b0000060b088001970000060c0980009c0000024a0000613d0000060d0980009c0000024a0000613d0000060e0980009c0000024a0000613d0000060f0580009c00000000050000190000000105006039000000010550018f0000000008260019000005fe02200197000000000227034f000000000703004b0000027a0000c13d000000000368004b000012b00000413d0000000003000031000000000683004b000012b00000413d00000611060000410000061207000041000000000505004b00000000050600190000000005076019000000c0011002100000061001100197000000000115019f0000000003830049000005fe0330019700000000023203df00000000011203af000000000204001917f417ea0000040f000002890000013d0000000001010433000005fe02000041000005fe0410009c0000000001028019000005fe0430009c000000000203401900000040022002100000006001100210000000000121019f000017f600010430000006170120009c000000430000613d0000061401000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000061801000041000000c40010043f0000061901000041000017f600010430000000000668004b000012b00000413d0000000006000031000000000786004b000012b00000413d0000000006860049000005fe0660019700000000026203df000000c001100210000006100110019700000611011001c700000000011203af0000800902000039000000000600001917f417ea0000040f000300000001035500000000030100190000006003300270000105fe0030019d000005fe033001970000000102200190000003090000613d17f417c20000040f0000000002010019000000400100043d000b00000001001d17f417310000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f50001042e0000002402500039000000000221034f000000000202043b000b00000002001d000006080220009c0000010d0000213d000000e402300039000000000221034f0000004403500039000000000131034f000000000101043b000a00000001001d000000000102043b0000061a02000041000000800020043f0000060802400197000800000002001d000000840020043f0000060801100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c0000039d0000c13d0000000103000031000000200130008c00000020040000390000000004034019000003c90000013d000000710320008c000003410000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d00000000044200190000060605000041000000000643004b0000000006000019000000000605801900000606044001970000060607300197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000006070410009c0000010d0000213d000000000212004900000020033000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d00000002044003670000060a0520009c000007d60000413d000000400100043d00000044021000390000061303000041000000000032043500000024021000390000000803000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f6000104300000001f0430018f0000000502300272000003140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000030d0000413d000000000504004b000003220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400200043d000900000002001d000006380220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000003300000413d00000009030000290000000003030433000000000303004b000004720000c13d000006550100004100000000001004350000003201000039000000040010043f0000065601000041000017f600010430000000020120008c000003f00000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ad0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004410436000000210530003900000005055002720000038a0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003820000413d000000000500004b0000038c0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005ca0000013d000005fe02000041000005fe0310009c0000000001028019000000c0011002100000061b011001c70000000b0200002917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003b60000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003ae0000413d000000000705004b000003c50000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000044c0000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000061c030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000061d05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c0000054c0000c13d000000010200003900000001010000310000055d0000013d000000010120008c000004cc0000c13d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000201043b000000800120008c0000063f0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004390000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004310000413d000000000500004b0000043b0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c0000000002002019000000210310003900000000002304350000065c0000013d000000400200043d0000001f0430018f0000000503300272000004590000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004510000413d000000000504004b000004680000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004de0000413d00000080012002700000063a0320009c000000000102a0190000063a0320009c0000000003000019000000100300203900000008043001bf000006070510009c00000000030420190000004004100270000006070510009c000000000104201900000004043001bf000005fe0510009c00000000030420190000002004100270000005fe0510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004b90000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000004b10000413d000000000500004b000004bb0000613d0000000005010433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004fb0000013d000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001703000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004e80000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006ac0000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005390000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005310000413d000000000600004b0000053b0000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006c90000013d000005fe04000041000005fe0530009c000000000304801900000060033002100000004002200210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000700000003001d000000000301004b0000057d0000c13d00000007010000290000000031010434000300000003001d000000000202004b0000061a0000c13d000000000201004b0000075d0000c13d000000400300043d000b00000003001d000006140100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f00000005055002720000059d0000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005950000413d000000000604004b000005610000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000005610000013d000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005b70000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007680000413d00000080023002700000063a0430009c000000000203a0190000063a0430009c0000000004000019000000100400203900000008054001bf000006070620009c00000000040520190000004005200270000006070620009c000000000205201900000004054001bf000005fe0620009c00000000040520190000002005200270000005fe0620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000006070000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005ff0000413d000000000600004b000006090000613d0000000006020433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007850000013d000000000201004b00000a320000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b00000a2e0000c13d000000400100043d00000044021000390000062803000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d000006380310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000006490000413d0000000004010433000000000404004b0000033b0000613d000000f8042002100000060605000041000000000202004b0000000002040019000000000205601900000000040304330000063904400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000009c00000413d00000080032002700000063a0420009c000000000302a0190000063a0420009c0000000004000019000000100400203900000008054001bf000006070630009c00000000040520190000004005300270000006070630009c000000000305201900000004054001bf000005fe0630009c00000000040520190000002005300270000005fe0630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000006070750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006990000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000006910000413d000000000600004b0000069b0000613d0000000006030433000000000606004b0000033b0000613d00000000060504330000063906600197000000f807400210000000000667019f0000063b0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000009dd0000013d000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006b60000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006d70000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b000006d00000413d000000000143001900000000000104350000000004020433000000000504004b000006e40000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006dd0000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000006070220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f000006380110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000063c0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000bcd0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000007480000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007400000413d000000000400004b0000074a0000613d00000005040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063b0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bed0000013d000005fe020000410000000304000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007720000413d0000000005020433000000000505004b0000033b0000613d000000f8053002100000060606000041000000000303004b0000000003050019000000000306601900000000050404330000063905500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a6f0000413d00000080043002700000063a0530009c000000000403a0190000063a0530009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007c30000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007bb0000413d000000000700004b000007c50000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a8c0000013d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe033001970003000000010355000000010220019000000add0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008010000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000007f90000413d000000000400004b000008030000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008130000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000080b0000413d000000000604004b000008220000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b0000060606000041000000000753004b0000000007000019000000000706801900000606055001970000060608300197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000006070350009c0000010d0000213d0000000503500210000000000434004900000020061000390000060601000041000000000746004b0000000007000019000000000701201900000606044001970000060608600197000000000948004b0000000001008019000000000448013f000006060440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d00000020041000390000064105500198000008610000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008590000413d000000000200004b000008630000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000006070520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005fe02000041000005fe0340009c0000000003020019000000000304401900000040033002100000000001010433000005fe0410009c00000000010280190000006001100210000000000131019f0000000003000414000005fe0430009c0000000002034019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b0000060606000041000000000754004b0000000007000019000000000706801900000606055001970000060608400197000000000958004b0000000006008019000000000558013f000006060550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000006070310009c0000010d0000213d000000000212004900000020034000390000060604000041000000000523004b0000000005000019000000000504201900000606022001970000060606300197000000000726004b0000000004008019000000000226013f000006060220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005fe04300197000012b00000413d0000000003000031000000000513004b000012b00000413d0000000204400367000005fe0520009c000002f70000213d0000000001130049000005fe0110019700000000011403df000000c002200210000006100220019700000612022001c700000000012103af000080100200003917f417ef0000040f00000000030100190000006003300270000105fe0030019d000005fe03300197000300000001035500000001022001900000157d0000613d0000003f013000390000063401100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000008e70000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008df0000413d000000000400004b000008e90000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008f90000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008f10000413d000000000604004b000009080000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ce40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000643030000410000000000320435000001c0030000390000000000310435000006440310009c0000012b0000213d000001e003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006450300004100000000003204350000008003400039000000000013043500000060014000390000064603000041000000000031043500000040014000390000064703000041000000000031043500000080010000390000000000140435000006480140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005fe01000041000005fe0320009c000000000201801900000040022002100000000003040433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000301043b000000400100043d0000004202100039000000070400002900000000004204350000002002100039000006490400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006240310009c0000012b0000213d0000008003100039000000400030043f000005fe03000041000005fe0420009c000000000203801900000040022002100000000001010433000005fe0410009c00000000010380190000006001100210000000000121019f0000000002000414000005fe0420009c0000000002038019000000c002200210000000000112019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400300043d000006380430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000009ca0000413d0000000005030433000000000505004b0000033b0000613d000000f8052002100000060606000041000000000202004b0000000002050019000000000206601900000000050404330000063905500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b5f0000413d00000080042002700000063a0520009c000000000402a0190000063a0520009c0000000005000019000000100500203900000008065001bf000006070740009c00000000050620190000004006400270000006070740009c000000000406201900000004065001bf000005fe0740009c00000000050620190000002006400270000005fe0740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000006070860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f000000020650003900000000066404360000002107500039000000050770027200000a1b0000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000a130000413d000000000700004b00000a1d0000613d0000000007040433000000000707004b0000033b0000613d00000000070604330000063907700197000000f808500210000000000778019f0000063b0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b7c0000013d00000007010000290000000001010433000000000201004b00000a5c0000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a5c0000c13d000000400100043d00000064021000390000062603000041000000000032043500000044021000390000062703000041000000000032043500000024021000390000002a03000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400300043d0000002401300039000000090200002900000000002104350000061a010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000af80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000b2b0000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a790000413d0000000006040433000000000606004b0000033b0000613d000000f8063002100000060607000041000000000303004b0000000003060019000000000307601900000000060504330000063906600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c620000413d00000080053002700000063a0630009c000000000503a0190000063a0630009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000aca0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000ac20000413d000000000800004b00000acc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c7f0000013d0000001f0430018f000000050230027200000ae80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000ae10000413d000000000504004b00000af60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000005fe02000041000005fe0310009c00000000010280190000000704000029000005fe0340009c00000000020440190000004002200210000000c001100210000000000121019f00000620011001c70000000b0200002917f417e50000040f000000070a00002900000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000b170000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000b0f0000413d000000000705004b00000b270000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c3c0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000006070410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000cd00000c13d00000044021000390000000a03000029000000000032043500000020021000390000061c03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006240310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006250310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000061d040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000df20000c13d0000000102000039000000010100003100000e050000013d000000400400043d000006380540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b690000413d0000000006040433000000000606004b0000033b0000613d000000f8062002100000060607000041000000000202004b0000000002060019000000000207601900000000060504330000063906600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cf60000413d00000080052002700000063a0620009c000000000502a0190000063a0620009c0000000006000019000000100600203900000008076001bf000006070850009c00000000060720190000004007500270000006070850009c000000000507201900000004076001bf000005fe0850009c00000000060720190000002007500270000005fe0850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000006070970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000bba0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000bb20000413d000000000800004b00000bbc0000613d0000000008050433000000000808004b0000033b0000613d00000000080704330000063908800197000000f809600210000000000889019f0000063b0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000d130000013d000000400200043d000500000002001d000006380220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000bd90000413d00000005030000290000000003030433000000000303004b0000033b0000613d000000f8031002100000060604000041000000000101004b0000000001030019000000000104601900000000030204330000063903300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d00000000044300190000060605000041000000000641004b0000000006000019000000000605801900000606044001970000060607100197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000006070510009c0000010d0000213d000000000513004900000020034000390000060604000041000000000653004b0000000006000019000000000604201900000606055001970000060607300197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000f240000c13d000000000132034f000000000101043b000000010200008a0000060603000041000000000221004b000000000200001900000000020320190000060601100197000006060410009c00000000030080190000060601100167000006060110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010820000c13d000000400100043d000400000001001d000006380110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000063b02000041000000000021043500000001010000390000000000130435000010820000013d000000400200043d0000001f0430018f000000050330027200000c490000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c410000413d000000000504004b00000c580000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c6c0000413d0000000007050433000000000707004b0000033b0000613d000000f8073002100000060608000041000000000303004b0000000003070019000000000308601900000000070604330000063907700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d740000413d00000080063002700000063a0730009c000000000603a0190000063a0730009c0000000007000019000000100700203900000008087001bf000006070960009c00000000070820190000004008600270000006070960009c000000000608201900000004087001bf000005fe0960009c00000000070820190000002008600270000005fe0960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000006070a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000cbd0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000cb50000413d000000000900004b00000cbf0000613d0000000009060433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063b0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d910000013d00000064021000390000062103000041000000000032043500000044021000390000062203000041000000000032043500000024021000390000003603000039000000000032043500000614020000410000000000210435000000040210003900000006030000290000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000000400100043d00000044021000390000064203000041000000000032043500000024021000390000001f03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400500043d000006380650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000d000000413d0000000007050433000000000707004b0000033b0000613d000000f8072002100000060608000041000000000202004b0000000002070019000000000208601900000000070604330000063907700197000000000227019f0000000000260435000000400600043d000006380260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000063c0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e550000413d00000080072002700000063a0820009c000000000702a0190000063a0820009c0000000008000019000000100800203900000008098001bf000006070a70009c00000000080920190000004009700270000006070a70009c000000000709201900000004098001bf000005fe0a70009c00000000080920190000002009700270000005fe0a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000006070b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d610000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d590000413d000000000a00004b00000d630000613d000000000a070433000000000a0a004b0000033b0000613d000000000a090433000006390aa00197000000f80b800210000000000aab019f0000063b0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e720000013d000000400600043d000006380760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d7e0000413d0000000008060433000000000808004b0000033b0000613d000000f8083002100000060609000041000000000303004b0000000003080019000000000309601900000000080704330000063908800197000000000338019f0000000000370435000000400700043d000006380370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000063c090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f870000413d00000080083002700000063a0930009c000000000803a0190000063a0930009c00000000090000190000001009002039000000080a9001bf000006070b80009c00000000090a2019000000400a800270000006070b80009c00000000080a2019000000040a9001bf000005fe0b80009c00000000090a2019000000200a800270000005fe0b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000006070ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000ddf0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000dd70000413d000000000b00004b00000de10000613d000000000b080433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c900210000000000bbc019f0000063b0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000fa40000013d000005fe04000041000005fe0520009c00000000020480190000004002200210000005fe0530009c00000000030480190000006003300210000000000223019f000005fe0310009c0000000001048019000000c001100210000000000112019f0000000b0200002917f417e00000040f000000010220018f00030000000103550000006001100270000105fe0010019d000005fe011001970000006003000039000900000003001d000000000301004b00000e250000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f5a0000c13d000000000201004b000011510000c13d000000400300043d000b00000003001d0000061401000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917f4171e0000040f0000000b040000290000000001410049000005fe02000041000005fe0310009c0000000001028019000005fe0340009c000000000204401900000040022002100000006001100210000000000121019f000017f600010430000006070310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000006070530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e450000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000e3d0000413d000000000604004b00000e090000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000e090000013d000000400700043d000006380870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e5f0000413d0000000009070433000000000909004b0000033b0000613d000000f809200210000006060a000041000000000202004b000000000209001900000000020a601900000000090804330000063909900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e7f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e780000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e8e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e870000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e9d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e960000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000eac0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000ea50000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000ebb0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000eb40000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000eca0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000ec30000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000006070450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000013f30000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000014710000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000014710000013d000000380210008c000010650000413d0000002002100270000005fe0310009c00000000030100190000000003022019000005fe0210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d000006380440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f420000413d00000004040000290000000004040433000000000404004b0000033b0000613d00000000040304330000063904400197000000f805200210000000000445019f0000063d044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010820000013d000000000201004b00000f710000c13d0000061e0100004100000000001004390000000b010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c7000080020200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000000101004b0000062d0000613d00000009010000290000000001010433000000000201004b000000430000613d0000060602000041000000200310008c000000000300001900000000030240190000060601100197000000000401004b000000000200a019000006060110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a470000613d000000430000013d000000400800043d000006380980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f910000413d000000000a080433000000000a0a004b0000033b0000613d000000f80a300210000006060b000041000000000303004b00000000030a001900000000030b6019000000000a090433000006390aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000fb10000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000faa0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000fc00000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000fb90000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000fcf0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000fc80000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000fde0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000fd70000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fed0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fe60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000ffc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000ff50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b0000100b0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b000010040000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000006070450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000006060a000041000000000b96004b000000000b000019000000000b0a80190000060609900197000006060c600197000000000d9c004b000000000a00801900000000099c013f000006060990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000006070a60009c0000010d0000213d000000000a68004900000020089000390000060609000041000000000ba8004b000000000b000019000000000b092019000006060aa00197000006060c800197000000000dac004b0000000009008019000000000aac013f000006060aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000014250000c13d000000000687034f000000000606043b000000010700008a0000060608000041000000000776004b000000000700001900000000070820190000060606600197000006060960009c00000000080080190000060606600167000006060660009c00000000070860190000006006000039000000000707004b000015040000c13d000006380650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000063b070000410000000000760435000000010600003900000000006504350000000006050019000015040000013d000000400200043d000400000002001d000006380220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010710000413d00000004030000290000000003030433000000000303004b0000033b0000613d000000f80110021000000000030204330000063903300197000000000113019f0000060601100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010f70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b0000060604000041000000000659004b0000000006000019000000000604801900000606055001970000060607900197000000000857004b0000000004008019000000000557013f000006060550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000006070a20009c0000010d0000213d00000000032300490000002009900039000006060a000041000000000b39004b000000000b000019000000000b0a201900000606033001970000060609900197000000000c39004b000000000a008019000000000339013f000006060330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d00000000034500190000000003630019000000000373001900000000038300190000000002230019000000000301043300000000023200190000060702200197000000380320008c000011990000413d0000002003200270000005fe0420009c00000000040200190000000004032019000005fe0320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d000006380560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010e10000413d0000000005060433000000000505004b0000033b0000613d00000000050404330000063905500197000000f807300210000000000557019f0000063f055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011b30000013d00000636010000410000000000100439000005fe010000410000000002000414000005fe0320009c0000000001024019000000c00110021000000637011001c70000800b0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000115c0000413d00000080021002700000063a0310009c000000000201a0190000063a0310009c0000000003000019000000100300203900000008043001bf000006070520009c00000000030420190000004004200270000006070520009c000000000204201900000004043001bf000005fe0520009c00000000030420190000002004200270000005fe0520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000006070640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f00000002043000390000000004420436000000210530003900000005055002720000113e0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000011360000413d000000000500004b000011400000613d0000000005020433000000000505004b0000033b0000613d00000000050404330000063905500197000000f806300210000000000556019f0000063b0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011790000013d000005fe020000410000000804000029000005fe0340009c00000000030200190000000003044019000005fe0410009c000000000102801900000060011002100000004002300210000000000121019f000017f600010430000000400200043d000006380320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011660000413d0000000004020433000000000404004b0000033b0000613d000000f8041002100000060605000041000000000101004b0000000001040019000000000105601900000000040304330000063904400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000117f0000413d00000000024300190000064a0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000006070420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000108a0000013d000000400600043d000006380360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011a30000413d0000000004060433000000000404004b0000033b0000613d000000f80220021000000000040304330000063904400197000000000242019f0000063e02200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b0000060607000041000000000854004b0000000008000019000000000807801900000606055001970000060609400197000000000a59004b0000000007008019000000000559013f000006060550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000006070340009c0000010d0000213d000000000242004900000020055000390000060603000041000000000725004b0000000007000019000000000703201900000606022001970000060608500197000000000928004b0000000003008019000000000228013f000006060220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011eb0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011e40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011fc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b0000120d0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012050000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b0000121e0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012160000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b0000122f0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012270000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012400000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000012380000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012510000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012490000413d000000000a07004b000012600000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000126e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012670000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000006070510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005fe01000041000005fe0430009c000000000301801900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f00000001022001900000010d0000613d000000000101043b000900000001001d0000000b01000029000000e4021000390000000201000367000000000221034f000000000202043b0000060802200198000012b60000c13d0000000b03000029000000a402300039000000000221034f0000006403300039000000000331034f000000000303043b000000000402043b00000000523400a9000000000504004b000012a80000613d00000000544200d9000000000334004b000012b00000c13d0000000b030000290000012403300039000000000131034f000000000101043b000000000121001a000700000001001d000012b00000413d000012bb0000013d000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f6000104300000000b020000290000012402200039000000000121034f000000000101043b000700000001001d0000064b01000041000000000010043900000008010000290000000400100443000005fe010000410000000002000414000005fe0320009c0000000001024019000000c0011002100000061f011001c70000800a0200003917f417e50000040f00000001022001900000010d0000613d000000000101043b0000000702000029000000000112004b000012e20000a13d000000400100043d00000064021000390000065303000041000000000032043500000044021000390000065403000041000000000032043500000024021000390000002203000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f60001043000000000030000310000000b020000290000000001230049000000230410008a000001e4022000390000000201000367000000000221034f000000000202043b0000060605000041000000000642004b0000000006000019000000000605801900000606044001970000060607200197000000000847004b0000000005008019000000000447013f000006060440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000002420019000000000121034f000000000101043b000006070410009c0000010d0000213d000000000413004900000020052000390000060602000041000000000645004b0000000006000019000000000602201900000606044001970000060607500197000000000847004b0000000002008019000000000447013f000006060440009c000000000206c019000000000202004b0000010d0000c13d0000003f02100039000000200400008a000000000442016f000000400200043d0000000004420019000000000624004b00000000060000190000000106004039000006070740009c0000012b0000213d00000001066001900000012b0000c13d000000400040043f00000000041204360000000006510019000000000336004b0000010d0000213d0000001f0310018f000000020550036700000005061002720000132b0000613d000000000700001900000005087002100000000009840019000000000885034f000000000808043b00000000008904350000000107700039000000000867004b000013230000413d000000000703004b0000133a0000613d0000000506600210000000000565034f00000000066400190000000303300210000000000706043300000000073701cf000000000737022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000373019f0000000000360435000000000114001900000000000104350000000001020433000000410110008c000013580000c13d00000041012000390000000001010433000000ff0310018f0000001d0130008a000000030500008a000000000151004b0000136a0000213d000000400100043d00000044021000390000065203000041000000000032043500000024021000390000001603000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000400100043d00000044021000390000064c03000041000000000032043500000024021000390000001d03000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000000404043300000040012000390000000002010433000000400100043d0000064d0520009c000013810000413d00000044021000390000065103000041000000000032043500000024021000390000000903000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000615011001c7000017f600010430000000600510003900000000002504350000004002100039000000000042043500000020021000390000000000320435000000090200002900000000002104350000000000000435000005fe020000410000000003000414000005fe0430009c0000000003028019000005fe0410009c00000000010280190000004001100210000000c002300210000000000112019f0000064e011001c7000000010200003917f417e50000040f00000000030100190000006003300270000005fe03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000504400272000013a70000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b000013a00000413d000000000605004b000013b50000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f00030000000103550000000102200190000013cd0000613d000000000100043300000608011001970000000802000029000000000221004b0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000064f01000041000000000100c019000000400200043d0000000000120435000005fe01000041000005fe0320009c0000000001024019000000400110021000000650011001c7000017f50001042e000000400200043d0000001f0430018f0000000503300272000013da0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000013d20000413d000000000504004b000013e90000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005fe010000410000000103000031000005fe0430009c0000000003018019000005fe0420009c000000000102401900000040011002100000006002300210000000000112019f000017f600010430000000380760008c000014570000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000140e0000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000014710000013d000000380760008c000014ea0000413d0000002007600270000005fe0860009c00000000080600190000000008072019000005fe0760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c00000000080000190000000108002039000006380950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000014400000413d0000000009050433000000000909004b0000033b0000613d00000000090804330000063909900197000000f80a70021000000000099a019f0000063d099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000015040000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014600000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000147b0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c000015980000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000014d40000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000015b10000013d000006380750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000014f30000413d0000000008050433000000000808004b0000033b0000613d000000f80660021000000000080704330000063908800197000000000668019f000006060660016700000000006704350000000006050019000000400500043d000006380750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000150e0000413d0000000009050433000000000909004b0000033b0000613d000000000907043300000639099001970000063e099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000006060a000041000000000d9c004b000000000d000019000000000d0a80190000060609900197000006060ec00197000000000f9e004b000000000a00801900000000099e013f000006060990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000006070db0009c0000010d0000213d0000000007b70049000000200cc00039000006060d000041000000000e7c004b000000000e000019000000000e0d20190000060607700197000006060cc00197000000000f7c004b000000000d00801900000000077c013f000006060770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b70019000000000905043300000000079700190000060709700197000000380790008c0000165b0000413d0000002007900270000005fe0890009c000000000709a019000005fe0890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d000006380b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000015670000413d000000000b070433000000000b0b004b0000033b0000613d000000000b0a0433000006390bb00197000000f80c800210000000000bbc019f0000063f0bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000016740000013d0000001f0430018f0000000502300272000015880000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000015810000413d000000000504004b000015960000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017f600010430000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000015a10000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000006060a000041000000000b83004b000000000b000019000000000b0a80190000060608800197000006060c300197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020093000390000060603000041000000000a49004b000000000a000019000000000a0320190000060604400197000006060b900197000000000c4b004b000000000300801900000000044b013f000006060440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006330a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000015e90000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015e20000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000015f80000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b000015f10000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000016070000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016000000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000016180000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016100000413d000000000b06004b000016270000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000016350000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000162e0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000006070510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005fe01000041000005fe0240009c0000000002010019000000000204401900000040022002100000000003030433000005fe0430009c00000000030180190000006003300210000000000223019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d000000400700043d000006380a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000016640000413d000000000a070433000000000a0a004b0000033b0000613d000000f809900210000000000a080433000006390aa001970000000009a9019f0000063e099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000006060a000041000000000b82004b000000000b000019000000000b0a80190000060608800197000006060c200197000000000d8c004b000000000a00801900000000088c013f000006060880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000006070480009c0000010d0000213d000000000489004900000020092000390000060602000041000000000a49004b000000000a000019000000000a0220190000060604400197000006060b900197000000000c4b004b000000000200801900000000044b013f000006060440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006400a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000016ac0000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000016a50000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000016bb0000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000016b40000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000016ca0000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000016c30000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000016db0000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000016d30000413d000000000b06004b000016ea0000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000016f80000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000016f10000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000006070510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005fe01000041000005fe0340009c0000000003010019000000000304401900000040033002100000000002020433000005fe0420009c00000000020180190000006002200210000000000232019f0000000003000414000005fe0430009c0000000001034019000000c001100210000000000121019f00000640011001c7000080100200003917f417e50000040f0000000102200190000012920000c13d0000010d0000013d00000000030104330000000002320436000000000403004b0000172a0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000017230000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000017400000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000017390000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a000000000310003100000606010000410000005f0230008c000000000200001900000000020120190000060604300197000000000504004b0000000001008019000006060440009c000000000102c019000000000101004b0000178d0000613d00000002010003670000004402100370000000000202043b000006070420009c0000178d0000213d00000000032300490000060604000041000002600530008c000000000500001900000000050440190000060603300197000000000603004b000000000400a019000006060330009c00000000030500190000000003046019000000000303004b0000178d0000c13d0000000003000411000080010330008c0000178b0000c13d000000000300041200000608033001970000000004000410000000000343004b0000178b0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000178f0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005fe02000041000005fe0310009c0000000001028019000000c001100210000080010200003917f417e00000040f000000010300002900030000000103550000006001100270000105fe0010019d000000200130011a00000001012001950000000101200190000017a70000613d0000000001000019000017f50001042e0000000001000019000017f60001043000000000431200a900000000422300d9000000000112004b000017bc0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000177c0000613d000005fe02000041000005fe0410009c0000000001028019000000c00110021000000640011001c700008009020000390000800104000039000000000500001917f417e00000040f0000000003000415000000020330008a00000020033000c9000017840000013d000000400100043d00000064021000390000065703000041000000000032043500000044021000390000065803000041000000000032043500000024021000390000002503000039000000000032043500000614020000410000000000210435000000040210003900000020030000390000000000320435000005fe02000041000005fe0310009c0000000001028019000000400110021000000623011001c7000017f600010430000006550100004100000000001004350000001101000039000000040010043f0000065601000041000017f600010430000000400100043d000006590210009c000017c90000813d0000002002100039000000400020043f0000000000010435000000000001042d000006550100004100000000001004350000004101000039000000040010043f0000065601000041000017f600010430000000000100041200000608011001970000000002000410000000000121004b000017d80000c13d0000000001000411000080010110008c000017da0000613d000000000001042d0000000001000019000017f50001042e000006550100004100000000001004350000000101000039000000040010043f0000065601000041000017f600010430000017e3002104210000000102000039000000000001042d0000000002000019000000000001042d000017e8002104230000000102000039000000000001042d0000000002000019000000000001042d000017ed002104210000000102000039000000000001042d0000000002000019000000000001042d000017f2002104230000000102000039000000000001042d0000000002000019000000000001042d000017f400000432000017f50001042e000017f600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000010000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f7065000000000000000000000000000000000000000000000000ffffffffffffffe0f02ad7a6c9bd15b4a609dc9f1d09d0fe7738d949cfb17d2adf03465aa5b8d4d8", + "bytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000005070670019700030000006103550002000000010355000005070070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000005090320009c000000440000a13d0000050a0320009c000000960000613d0000050b0320009c000000c50000613d0000050c0220009c000000360000c13d000000040260008a000000200320008c000001270000413d0000000401100370000000000101043b0000050f0310009c000001270000213d00000000011200490000051002000041000002600310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000003010000613d000001270000013d0000000001000416000000000101004b000001270000c13d0000002001000039000001000010044300000120000004430000050801000041000014190001042e000000000106004b000003010000613d000000000100041200000511011001970000000002000410000000000121004b000003010000c13d0000000001000411000080010110008c000003010000c13d0000055e0100004100000000001004350000000101000039000000040010043f0000055f010000410000141a000104300000050d0320009c000001110000613d000900000004001d0000050e0220009c000000360000c13d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040430003900000000054600490000051002000041000002600750008c000000000700001900000000070240190000051008500197000000000908004b000000000200a019000005100880009c000000000207c019000000000202004b000001270000c13d0000000002000411000080010220008c000003010000c13d000000000200041200000511072001970000000002000410000000000727004b000003010000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a0000051008000041000000000957004b000000000900001900000000090880190000051005500197000005100a700197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000005470019000000000451034f000000000404043b0000050f0740009c000001270000213d000000000746004900000020055000390000051008000041000000000975004b000000000900001900000000090820190000051007700197000005100a500197000000000b7a004b000000000800801900000000077a013f000005100770009c000000000809c019000000000708004b000001270000c13d000000030740008c000002570000213d0000051501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000053801000041000000c40010043f0000053901000041000002670000013d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040230003900000000052600490000051004000041000002600850008c000000000800001900000000080440190000051009500197000000000a09004b000000000400a019000005100990009c000000000408c019000000000404004b000001270000c13d0000000004000411000080010440008c000003010000c13d000000000400041200000511044001970000000008000410000000000484004b000003010000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b0000051104400197000000000303043b000005170930009c000001f80000413d0000051501000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000052101000041000000c40010043f00000522010000410000141a00010430000000040360008a000000600230008c000001270000413d0000004402100370000000000202043b0000050f0420009c000001270000213d00000000032300490000051004000041000002600530008c000000000500001900000000050440190000051003300197000000000603004b000000000400a019000005100330009c000000000405c019000000000304004b000001270000c13d0000000003000411000080010330008c000003010000c13d000000000300041200000511033001970000000004000410000000000343004b000003010000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001e00000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d0000050702000041000005070310009c0000000001028019000000c0011002100000800102000039141814040000040f000000090300002900030000000103550000006001100270000105070010019d000000050130027000000001012001950000000101200190000003010000c13d000000400100043d000000640210003900000513030000410000000000320435000000440210003900000514030000410000000000320435000000240210003900000025030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000516011001c70000141a00010430000000040260008a000000600220008c000001270000413d0000004402100370000000000202043b000900000002001d0000050f0220009c000001270000213d0000000902000029000800040020003d000000080260006a0000051003000041000002600420008c000000000400001900000000040340190000051002200197000000000502004b000000000300a019000005100220009c000000000304c019000000000203004b000001290000613d00000000010000190000141a000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000003010000c13d000000000200041200000511022001970000000003000410000600000003001d000000000232004b000003010000c13d00000000020004140000053a03000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c0012002100000051d011001970000053b011001c700008003020000390000000003000019000000000400001900000000050000190000000006000019141814040000040f000300000001035500000000030100190000006003300270000105070030019d00000507083001970000003f038000390000053c04300197000000400600043d0000000003640019000000000443004b000000000400001900000001040040390000050f0530009c000012b60000213d0000000104400190000012b60000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f0980003900000005099002720000016b0000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000001630000413d000000000900004b0000016d0000613d0000001f0980018f0000000508800272000001790000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000001710000413d000000000a09004b000001880000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f000000000018043500000001012001900000024d0000613d000000070100006b000010c80000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b0000026a0000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d000002a10000413d0000008002100270000005420610009c000000000201a019000005420610009c0000000006000019000000100600203900000008076001bf0000050f0820009c000000000706a01900000040062002700000050f0820009c000000000602a01900000004087001bf000005070260009c000000000807a0190000002007600270000005070260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b000000000700001900000001070040390000050f0860009c000012b60000213d0000000107700190000012b60000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001cc0000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001c40000413d000000000700004b000001ce0000613d00000007070000290000000007070433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808200210000000000778019f000005430770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002b20000013d00000000431200a900000000422300d9000000000112004b000010e10000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000ed0000613d0000050702000041000005070410009c0000000001028019000000c00110021000000512011001c7000080090200003900008001040000390000000005000019141814040000040f00000000030004150000000a0330008a00000020033000c9000000f50000013d000000a008800039000000000881034f000000000808043b0000001f0550008a0000051009000041000000000a58004b000000000a000019000000000a0980190000051005500197000005100b800197000000000c5b004b000000000900801900000000055b013f000005100550009c00000000090ac019000000000509004b000001270000c13d0000000002280019000000000521034f000000000805043b0000050f0580009c000001270000213d000000000586004900000020092000390000051002000041000000000a59004b000000000a000019000000000a0220190000051005500197000005100b900197000000000c5b004b000000000200801900000000055b013f000005100550009c00000000020ac019000000000202004b000001270000c13d0000000002000414000005070520009c000000bb0000213d000080060540008c0000000005000019000002340000c13d000000040580008c0000000005000019000002340000413d000000000a91034f0000000105000039000000000a0a043b000005180aa00197000005190ba0009c000002330000613d0000051a0ba0009c000002330000613d0000051b0ba0009c000002330000613d0000051c05a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf0000050708900197000000000181034f000000000803004b0000035d0000c13d0000000103600190000010e10000c13d0000051e030000410000051f06000041000000000505004b000000000603c019000000c0022002100000051d02200197000000000226019f0000000003a70049000005070330019700000000013103df00000000012103af0000000002040019000003680000013d00000000010604330000050702000041000005070310009c0000000001028019000005070370009c000000000702801900000040027002100000006001100210000000000121019f0000141a00010430000000000751034f000000000707043b0000051807700197000005230870009c000002ff0000c13d000000430440008c000003940000213d0000051501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000053501000041000000c40010043f0000053601000041000000e40010043f00000537010000410000141a00010430000000710210008c000003030000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000801100029000000000213034f000000000202043b0000050f0520009c000001270000213d000000000524004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000512001a0000000002000414000010e10000413d000000000654004b000010e10000413d000005490620009c000006700000413d000000400100043d00000044021000390000052103000041000000000032043500000024021000390000000803000039000004920000013d000005400290009c000012b60000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004150000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002ed0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e50000413d000000000900004b000002ef0000613d0000000009010433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004250000013d000005240170009c000003b30000c13d0000000001000019000014190001042e000000020210008c000003bb0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c0000049e0000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000000201500039000000000613043600000002010003670000000002000031000000210750003900000005077002720000034b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003430000413d000000000700004b0000034d0000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004b10000013d0000000106600190000010e10000c13d0000000006a70049000005070660019700000000016103df000000c0022002100000051d022001970000051e022001c700000000012103af000080090200003900000000060000191418140e0000040f000300000001035500000000030100190000006003300270000105070030019d00000507033001970000000102200190000004710000613d000000400200043d000005200120009c000012b60000213d0000002001200039000000400010043f00000000000204350000002003000039000000400100043d0000000004310436000000000302043300000000003404350000004004100039000000000503004b000003860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000037f0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f0000050703000041000005070420009c0000000002038019000005070410009c000000000103801900000040011002100000006002200210000000000112019f000014190001042e0000000404500039000000000541034f000000000505043b000800000005001d000005110550009c000001270000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000052604000041000000800040043f0000051102200197000500000002001d000000840020043f0000051102300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c000004fd0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005290000013d0000051501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000052501000041000000c20000013d000000010110008c0000048c0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c000005500000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004030000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003fb0000413d000000000700004b000004050000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005630000013d000005400710009c000012b60000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005af0000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000045f0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004570000413d000000000900004b000004610000613d0000000009020433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005bf0000013d0000001f0430018f00000005023002720000047c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004750000413d000000000504004b0000048a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000400100043d00000044021000390000053d030000410000000000320435000000240210003900000017030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000534011001c70000141a00010430000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008430000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000004eb0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000004e30000413d000000000800004b000004ed0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008540000013d0000050701000041000005070320009c0000000002018019000000c00120021000000527011001c70000000802000029141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005160000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000050e0000413d000000000705004b000005250000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000064d0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001270000413d000000800400043d000000070440006c000003010000813d000000a00450003900000528060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000052907000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008a20000c13d00000001020000390000050f0430009c000012b60000213d000008b60000013d000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008f80000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000059d0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005950000413d000000000800004b0000059f0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009090000013d000005400720009c000012b60000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005ce0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005c70000413d000000000176001900000000000104350000000007020433000000000807004b000005db0000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000005d40000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d0000050f0220009c000012b60000213d0000000101100190000012b60000c13d0000000401000029000000400010043f000005400110009c000012b60000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f000000200280003900000544060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c000009fe0000413d0000008006200270000005420720009c000000000602a019000005420720009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006390000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000006310000413d000000000800004b0000063b0000613d00000003080000290000000008080433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a100000013d000000400200043d0000001f0430018f00000005053002720000065a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006520000413d000000000604004b000006690000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000050701000041000005070420009c000000000201801900000040012002100000006002300210000000000121019f0000141a000104300000050701100197000000000113034f0000000003540049000005070330019700000000013103df000000c0022002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070530019700030000000103550000000102200190000009570000613d0000003f025000390000053c02200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000050f0420009c000012b60000213d0000000103300190000012b60000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f0750003900000005077002720000069e0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006960000413d000000000700004b000006a00000613d0000001f0750018f0000000505500272000006ac0000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006a40000413d000000000807004b000006bb0000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c000009f70000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b0000051006000041000000000751004b0000000007000019000000000706801900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b0000050f0450009c000001270000213d0000000504500210000000000343004900000020061000390000051001000041000000000736004b0000000007000019000000000701201900000510033001970000051008600197000000000938004b0000000001008019000000000338013f000005100330009c000000000107c019000000000101004b000001270000c13d000000400100043d00000020031000390000054a05500198000006f60000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000006ee0000413d000000000200004b000006f80000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000050f0520009c000012b60000213d0000000104400190000012b60000c13d000000400020043f0000050702000041000005070430009c000000000302801900000040033002100000000001010433000005070410009c00000000010280190000006001100210000000000131019f0000000003000414000005070430009c0000000003028019000000c002300210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b0000051006000041000000000754004b0000000007000019000000000706801900000510055001970000051008400197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000101043b000700000001001d000000000106004b000001270000c13d0000000801400029000000000413034f000000000404043b0000050f0540009c000001270000213d000000000542004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000514001a0000000004000414000010e10000413d000000000652004b000010e10000413d000005070640009c0000029a0000213d0000050701100197000000000113034f0000000002520049000005070220019700000000012103df000000c0024002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070330019700030000000103550000000102200190000011eb0000613d0000003f023000390000053c02200197000000400500043d0000000002250019000000000452004b000000000400001900000001040040390000050f0620009c000012b60000213d0000000104400190000012b60000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007770000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000076f0000413d000000000600004b000007790000613d0000001f0630018f0000000503300272000007850000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b0000077d0000413d000000000706004b000007940000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c000009f70000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a002100039000000000062043500000080021000390000000000520435000000600210003900000000004204350000004002100039000000000032043500000020021000390000054c030000410000000000320435000001c00300003900000000003104350000054d0310009c000012b60000213d000001e003100039000000400030043f0000050704000041000005070320009c000000000204801900000040022002100000000001010433000005070310009c00000000010480190000006001100210000000000121019f0000000002000414000005070320009c0000000002048019000000c002200210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000101043b000500000001001d000000400100043d000700000001001d0000053e0100004100000000001004390000000001000414000005070210009c0000050701008041000000c0011002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d00000007040000290000002002400039000000000101043b0000054e0300004100000000003204350000008003400039000000000013043500000060014000390000054f03000041000000000031043500000040014000390000055003000041000000000031043500000080010000390000000000140435000005510140009c000012b60000213d0000000704000029000000a001400039000000400010043f0000050701000041000005070320009c000000000201801900000040022002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000055204000041000000000042043500000022041000390000000000340435000000420300003900000000003104350000052f0310009c000012b60000213d0000008003100039000000400030043f0000050703000041000005070420009c000000000203801900000040022002100000000001010433000005070410009c00000000010380190000006001100210000000000121019f0000000002000414000005070420009c0000000002038019000000c002200210000000000112019f000010c00000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009910000413d0000008008600270000005420960009c000000000806a019000005420960009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008900000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008880000413d000000000a00004b000008920000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009a20000013d0000050701000041000005070350009c000000000501801900000060035002100000004004400210000000000343019f000005070420009c0000000002018019000000c001200210000000000113019f0000000802000029141814040000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000105070030019d0000050703300198000008e20000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000050f0640009c000012b60000213d0000000105500190000012b60000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008d20000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008ca0000413d000900000008001d000000000504004b000008e20000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b000009720000c13d000000000201004b000009ef0000c13d000000400300043d000900000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000201000029141813f00000040f000000090400002900000000014100490000050702000041000005070310009c0000000001028019000009f30000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a560000413d0000008008700270000005420970009c000000000807a019000005420970009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009450000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000093d0000413d000000000a00004b000009470000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a670000013d0000001f0350018f0000000502500272000009620000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000095b0000413d000000000403004b000009700000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f000000000012043500000060015002100000141a00010430000000000201004b00000b170000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b00000b130000c13d000000400100043d00000044021000390000053303000041000000000032043500000024021000390000001d0300003900000000003204350000051502000041000000000021043500000004021000390000000303000029000004970000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a600210000005100b000041000000000606004b000000000b0ac01900000541069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ab40000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000009dd0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000009d50000413d000000000b00004b000009df0000613d000000000b060433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000ac50000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000040280190000004002400210000002540000013d000000400100043d00000044021000390000054b03000041000000000032043500000024021000390000001f03000039000004920000013d0000000306000029000005400660009c000012b60000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c2f0000613d000000f8082002100000051009000041000000000202004b000000000908c0190000054102700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000005100760019700000510082001970000051009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000005100770009c000000000a09c01900000000070a004b000001270000c13d0000000808200029000000000783034f000000000707043b0000050f0970009c000001270000213d00000000097400490000002008800039000005100a000041000000000b98004b000000000b000019000000000b0a20190000051009900197000005100c800197000000000d9c004b000000000a00801900000000099c013f000005100990009c000000000a0bc01900000000090a004b000001270000c13d000000010970008c00000c5c0000c13d000000000583034f000000000505043b000000010700008a0000051008000041000000000775004b000000000700001900000000070820190000051005500197000005100950009c00000000080080190000051005500167000005100550009c000000000807c019000200600000003d000000000508004b00000dc20000c13d000000400500043d000200000005001d000005400550009c000012b60000213d00000002080000290000004005800039000000400050043f0000002005800039000005430700004100000000007504350000000105000039000000000058043500000dc20000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a700210000005100b000041000000000707004b000000000b0ac01900000541079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b4d0000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000aa20000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a9a0000413d000000000b00004b00000aa40000613d000000000b070433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b5e0000013d000005400960009c000012b60000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c240000413d000000800a900270000005420b90009c000000000a09a019000005420b90009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b000000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000af80000413d000000000700004b00000b020000613d0000000007080433000000000707004b00000c2f0000613d00000000070b04330000054107700197000000f80ca0021000000000077c019f000005430770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d4e0000013d00000004010000290000000001010433000000000201004b00000b3a0000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b00000b3a0000c13d000000400100043d00000064021000390000053103000041000000000032043500000044021000390000053203000041000000000032043500000024021000390000002a03000039000000000032043500000515020000410000000000210435000000040210003900000003030000290000010a0000013d000000400300043d00000024013000390000000602000029000000000021043500000526010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000bbe0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000bf00000013d000005400970009c000012b60000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400900043d000005400890009c000012b60000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000005440b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000c870000413d0000000706000029000000800a600270000005420b60009c000000000a06a019000005420b60009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bab0000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000ba30000413d000000000600004b00000bad0000613d0000000006080433000000000606004b00000c2f0000613d00000000060b04330000054106600197000000f80ca0021000000000066c019f000005430660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000c9a0000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000020440190000004002200210000000c001100210000000000121019f0000052c011001c70000000802000029141814090000040f000000090a000029000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bdd0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000bd50000413d000000000705004b00000bec0000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c330000613d0000001f01400039000000600210018f0000000901200029000000000221004b000000000200001900000001020040390000050f0410009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000200230008c000001270000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c500000c13d0000002002100039000005280600004100000000006204350000000606000029000000000065043500000007050000290000000000540435000000010400002900000000004104350000052f0410009c000012b60000213d0000008004100039000900000004001d000000400040043f000005300410009c000012b60000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000529050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f490000c13d00000001020000390000050f0130009c000012b60000213d00000f5f0000013d000005400780009c000012b60000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d470000c13d0000055e0100004100000000001004350000003201000039000000410000013d000000400200043d0000001f0430018f000000050530027200000c400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c380000413d000000000604004b00000c4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006690000013d00000515020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000052d02000041000000000024043500000064021000390000052e030000410000010a0000013d000000400800043d000200000008001d000000380870008c00000db10000413d0000002009700270000005070870009c000000000907a019000005070870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005400aa0009c000012b60000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c2f0000613d0000054105500197000000f80a80021000000000055a019f00000545055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000dc20000013d000005400680009c000012b60000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c2f0000613d000000070d000029000000f806d00210000005100c000041000000000d0d004b000000000c06c0190000054106b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000ca70000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ca00000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000cb60000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000caf0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cc50000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000cbe0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000cd40000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000ccd0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000ce30000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000cdc0000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000cf20000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000ceb0000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000050f0570009c000012b60000213d0000000104400190000012b60000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c000012060000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012670000c13d000005400870009c000012b60000213d0000004008700039000000400080043f000000200870003900000543090000410000000000980435000000010800003900000000008704350000000008070019000012670000013d000000f807900210000005100c000041000000000909004b000000000c07c0190000054107b001970000000007c7019f00000000007a0435000000400a00043d0000054007a0009c000012b60000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000005440b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e230000413d0000000707000029000000800b700270000005420c70009c000000000b07a019000005420c70009c000000000c000019000000100c002039000000080dc001bf0000050f0eb0009c000000000d0ca019000000400cb002700000050f0eb0009c000000000c0ba019000000040ed001bf000005070bc0009c000000000e0da019000000200dc00270000005070bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000050f0ec0009c000012b60000213d000000010dd00190000012b60000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000d9d0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000d950000413d000000000700004b00000d9f0000613d0000000007090433000000000707004b00000c2f0000613d00000000070c04330000054107700197000000050d000029000000f80bd0021000000000077b019f000005430770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e360000013d0000000208000029000005400880009c000012b60000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c2f0000613d000000f8077002100000054105500197000000000575019f00000510055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000ef20000c13d0000051005000041000000000762004b0000000007000019000000000705801900000510066001970000051008200197000000000968004b0000000005008019000000000668013f000005100660009c000000000507c019000000000505004b000001270000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b0000050f0b20009c000001270000213d000000000b2400490000002005500039000005100c000041000000000db5004b000000000d000019000000000d0c2019000005100bb00197000005100e500197000000000fbe004b000000000c008019000000000bbe013f000005100bb0009c000000000c0dc019000000000b0c004b000001270000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d0000050f06600197000000380860008c000010070000413d0000002009600270000005070860009c000000000906a019000005070860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c2f0000613d0000054109900197000000f80a80021000000000099a019f00000547099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010170000013d000005400790009c000012b60000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c2f0000613d000000070e000029000000f807e00210000005100d000041000000000e0e004b000000000d07c0190000054107c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e430000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e3c0000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e520000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e4b0000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e610000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e5a0000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e700000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e690000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000e7f0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000e780000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000e8e0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000e870000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000e9d0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000e960000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000050f0560009c000012b60000213d0000000104400190000012b60000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c0000122e0000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012b30000c13d000005400860009c000012b60000213d0000004008600039000000400080043f000000200860003900000543090000410000000000980435000000010800003900000000008604350000000008060019000012b30000013d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400200043d000000000101043b000000800310008c00000f9e0000413d0000008003100270000005420410009c000000000301a019000005420410009c0000000004000019000000100400203900000008054001bf0000050f0630009c000000000504a01900000040043002700000050f0630009c000000000403a01900000004035001bf000005070640009c000000000305a0190000002006400270000005070540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b000000000400001900000001040040390000050f0630009c000012b60000213d0000000104400190000012b60000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f370000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f2f0000413d000000000700004b00000f390000613d0000000007020433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fb10000013d0000050703000041000005070520009c00000000020380190000004002200210000005070540009c00000000040380190000006004400210000000000224019f000005070410009c0000000001038019000000c001100210000000000112019f0000000802000029141814040000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000105070010019d000005070310019800000f8c0000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b000000000400001900000001040040390000050f0510009c000012b60000213d0000000104400190000012b60000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000f7c0000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000f740000413d000600000008001d000000000501004b00000f8c0000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b00000fd60000c13d000000000201004b000010020000c13d000000400300043d000800000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000901000029141813f00000040f0000000804000029000008f30000013d000005400320009c000012b60000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fbf0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fb80000413d000000000265001900000553060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b000000000500001900000001050040390000050f0620009c000012b60000213d0000000105500190000012b60000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000dc80000013d000000000201004b00000fed0000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b000009850000613d00000007010000290000000001010433000000000201004b000003010000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b000003010000c13d00000b2b0000013d0000050702000041000005070310009c00000000010280190000000604000029000009f30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c2f0000613d0000054108800197000000f806600210000000000686019f00000546066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010240000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000101d0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010340000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000102d0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010440000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000103d0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010540000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000104d0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010640000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105d0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010740000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106d0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010850000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000107d0000413d000000000a07004b000010940000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010a20000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b0000109b0000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b000000000200001900000001020040390000050f0310009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000050701000041000005070260009c000000000601801900000040026002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000203000367000000000101043b000700000001001d0000000901000029000000e404100039000000000143034f000000000101043b0000051101100198000400000004001d000010e50000c13d000000800140008a000000000213034f000000400140008a000000000513034f000000000402043b000000000505043b00000000624500a9000000000605004b000010db0000613d00000000655200d9000000000445004b000010e10000c13d0000008001100039000000000113034f000000000101043b000500000021001e000010e10000413d000010ea0000013d0000055e0100004100000000001004350000001101000039000000410000013d00000009010000290000012401100039000000000113034f000000000101043b000500000001001d000005540100004100000000001004390000000601000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800a02000039141814090000040f0000000102200190000011050000613d000000000101043b000000050110006b000011060000a13d000000400100043d00000064021000390000055c03000041000000000032043500000044021000390000055d03000041000000000032043500000024021000390000002203000039000001050000013d000000000001042f0000000004000031000000090140006a000000230210008a000000040100002900000100011000390000000203000367000000000113034f000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000802100029000000000123034f000000000101043b0000050f0510009c000001270000213d000000000514004900000020062000390000051002000041000000000756004b0000000007000019000000000702201900000510055001970000051008600197000000000958004b0000000002008019000000000558013f000005100550009c000000000207c019000000000202004b000001270000c13d0000003f02100039000000200500008a000000000552016f000000400200043d0000000005520019000000000725004b000000000700001900000001070040390000050f0850009c000012b60000213d0000000107700190000012b60000c13d000000400050043f00000000051204360000000007610019000000000447004b000001270000213d000000000463034f0000001f0310018f00000005061002720000114d0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000011450000413d000000000703004b0000115c0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000011500190000000000010435000000400100043d0000000003020433000000410330008c0000116f0000c13d00000041032000390000000003030433000000ff0330018f0000001d0430008a000000030600008a000000000464004b000011750000213d00000044021000390000055b03000041000000000032043500000024021000390000001603000039000004920000013d00000044021000390000055503000041000000000032043500000024021000390000001d03000039000004920000013d000000000405043300000040022000390000000002020433000005560520009c000011800000413d00000044021000390000055a03000041000000000032043500000024021000390000000903000039000004920000013d00000060051000390000000000250435000000400210003900000000004204350000002002100039000000000032043500000007020000290000000000210435000000000000043500000507020000410000000003000414000005070430009c0000000003028019000005070410009c00000000010280190000004001100210000000c002300210000000000112019f00000557011001c70000000102000039141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a60000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119f0000413d000000000605004b000011b40000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f0003000000010355000000400400043d0000000102200190000011cb0000613d00000000010004330000051101100197000000060210006c0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000055801000041000000000100c01900000000001404350000050701000041000005070240009c0000000004018019000000400140021000000559011001c7000014190001042e0000001f0230018f0000000505300272000011d70000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011cf0000413d000000000602004b000011e60000613d0000000505500210000000000151034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000161019f00000000001504350000050701000041000005070240009c000000000401801900000040014002100000066d0000013d0000001f0430018f0000000502300272000011f60000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011ef0000413d000000000504004b000012040000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000380840008c000012560000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210970003900000000008904350000000008070019000012670000013d000000380840008c000012a20000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a60009c000012b60000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210960003900000000008904350000000008060019000012b30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008070019000000400700043d000005400970009c000012b60000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000050f09900197000000380d90008c000012f20000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012ff0000013d000005400860009c000012b60000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008060019000000400600043d000005400960009c000012ba0000a13d0000055e0100004100000000001004350000004101000039000000410000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000050f09900197000000380d90008c0000136c0000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013790000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005480b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b0000130f0000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013080000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b0000131e0000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000013170000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b0000132d0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013260000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a4002720000133e0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013360000413d000000000b06004b0000134d0000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b0000135b0000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000013540000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000013e50000613d000012b60000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005120b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013890000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013820000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b000013980000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013910000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b000013a70000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013a00000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a400272000013b80000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013b00000413d000000000b07004b000013c70000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b000013d50000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013ce0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000012b60000c13d000000400010043f0000050701000041000005070390009c000000000901801900000040039002100000000002020433000005070420009c00000000020180190000006002200210000000000232019f000010bb0000013d00000000030104330000000002320436000000000403004b000013fc0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000013f50000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f00001407002104210000000102000039000000000001042d0000000002000019000000000001042d0000140c002104230000000102000039000000000001042d0000000002000019000000000001042d00001411002104210000000102000039000000000001042d0000000002000019000000000001042d00001416002104230000000102000039000000000001042d0000000002000019000000000001042d0000141800000432000014190001042e0000141a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf4f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008869c198fc17d4ea55c9b4b0e2b8d10bd5942970b7f48b5eecabfc6e19a8ead1", + "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000005070670019700030000006103550002000000010355000005070070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000005090320009c000000440000a13d0000050a0320009c000000960000613d0000050b0320009c000000c50000613d0000050c0220009c000000360000c13d000000040260008a000000200320008c000001270000413d0000000401100370000000000101043b0000050f0310009c000001270000213d00000000011200490000051002000041000002600310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000003010000613d000001270000013d0000000001000416000000000101004b000001270000c13d0000002001000039000001000010044300000120000004430000050801000041000014190001042e000000000106004b000003010000613d000000000100041200000511011001970000000002000410000000000121004b000003010000c13d0000000001000411000080010110008c000003010000c13d0000055e0100004100000000001004350000000101000039000000040010043f0000055f010000410000141a000104300000050d0320009c000001110000613d000900000004001d0000050e0220009c000000360000c13d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040430003900000000054600490000051002000041000002600750008c000000000700001900000000070240190000051008500197000000000908004b000000000200a019000005100880009c000000000207c019000000000202004b000001270000c13d0000000002000411000080010220008c000003010000c13d000000000200041200000511072001970000000002000410000000000727004b000003010000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a0000051008000041000000000957004b000000000900001900000000090880190000051005500197000005100a700197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000005470019000000000451034f000000000404043b0000050f0740009c000001270000213d000000000746004900000020055000390000051008000041000000000975004b000000000900001900000000090820190000051007700197000005100a500197000000000b7a004b000000000800801900000000077a013f000005100770009c000000000809c019000000000708004b000001270000c13d000000030740008c000002570000213d0000051501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000053801000041000000c40010043f0000053901000041000002670000013d000000040260008a000000600220008c000001270000413d0000004402100370000000000302043b0000050f0230009c000001270000213d000000040230003900000000052600490000051004000041000002600850008c000000000800001900000000080440190000051009500197000000000a09004b000000000400a019000005100990009c000000000408c019000000000404004b000001270000c13d0000000004000411000080010440008c000003010000c13d000000000400041200000511044001970000000008000410000000000484004b000003010000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b0000051104400197000000000303043b000005170930009c000001f80000413d0000051501000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000052101000041000000c40010043f00000522010000410000141a00010430000000040360008a000000600230008c000001270000413d0000004402100370000000000202043b0000050f0420009c000001270000213d00000000032300490000051004000041000002600530008c000000000500001900000000050440190000051003300197000000000603004b000000000400a019000005100330009c000000000405c019000000000304004b000001270000c13d0000000003000411000080010330008c000003010000c13d000000000300041200000511033001970000000004000410000000000343004b000003010000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001e00000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d0000050702000041000005070310009c0000000001028019000000c0011002100000800102000039141814040000040f000000090300002900030000000103550000006001100270000105070010019d000000050130027000000001012001950000000101200190000003010000c13d000000400100043d000000640210003900000513030000410000000000320435000000440210003900000514030000410000000000320435000000240210003900000025030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000516011001c70000141a00010430000000040260008a000000600220008c000001270000413d0000004402100370000000000202043b000900000002001d0000050f0220009c000001270000213d0000000902000029000800040020003d000000080260006a0000051003000041000002600420008c000000000400001900000000040340190000051002200197000000000502004b000000000300a019000005100220009c000000000304c019000000000203004b000001290000613d00000000010000190000141a000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000003010000c13d000000000200041200000511022001970000000003000410000600000003001d000000000232004b000003010000c13d00000000020004140000053a03000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c0012002100000051d011001970000053b011001c700008003020000390000000003000019000000000400001900000000050000190000000006000019141814040000040f000300000001035500000000030100190000006003300270000105070030019d00000507083001970000003f038000390000053c04300197000000400600043d0000000003640019000000000443004b000000000400001900000001040040390000050f0530009c000012b60000213d0000000104400190000012b60000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f0980003900000005099002720000016b0000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000001630000413d000000000900004b0000016d0000613d0000001f0980018f0000000508800272000001790000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000001710000413d000000000a09004b000001880000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f000000000018043500000001012001900000024d0000613d000000070100006b000010c80000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b0000026a0000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d000002a10000413d0000008002100270000005420610009c000000000201a019000005420610009c0000000006000019000000100600203900000008076001bf0000050f0820009c000000000706a01900000040062002700000050f0820009c000000000602a01900000004087001bf000005070260009c000000000807a0190000002007600270000005070260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b000000000700001900000001070040390000050f0860009c000012b60000213d0000000107700190000012b60000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001cc0000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001c40000413d000000000700004b000001ce0000613d00000007070000290000000007070433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808200210000000000778019f000005430770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002b20000013d00000000431200a900000000422300d9000000000112004b000010e10000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000ed0000613d0000050702000041000005070410009c0000000001028019000000c00110021000000512011001c7000080090200003900008001040000390000000005000019141814040000040f00000000030004150000000a0330008a00000020033000c9000000f50000013d000000a008800039000000000881034f000000000808043b0000001f0550008a0000051009000041000000000a58004b000000000a000019000000000a0980190000051005500197000005100b800197000000000c5b004b000000000900801900000000055b013f000005100550009c00000000090ac019000000000509004b000001270000c13d0000000002280019000000000521034f000000000805043b0000050f0580009c000001270000213d000000000586004900000020092000390000051002000041000000000a59004b000000000a000019000000000a0220190000051005500197000005100b900197000000000c5b004b000000000200801900000000055b013f000005100550009c00000000020ac019000000000202004b000001270000c13d0000000002000414000005070520009c000000bb0000213d000080060540008c0000000005000019000002340000c13d000000040580008c0000000005000019000002340000413d000000000a91034f0000000105000039000000000a0a043b000005180aa00197000005190ba0009c000002330000613d0000051a0ba0009c000002330000613d0000051b0ba0009c000002330000613d0000051c05a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf0000050708900197000000000181034f000000000803004b0000035d0000c13d0000000103600190000010e10000c13d0000051e030000410000051f06000041000000000505004b000000000603c019000000c0022002100000051d02200197000000000226019f0000000003a70049000005070330019700000000013103df00000000012103af0000000002040019000003680000013d00000000010604330000050702000041000005070310009c0000000001028019000005070370009c000000000702801900000040027002100000006001100210000000000121019f0000141a00010430000000000751034f000000000707043b0000051807700197000005230870009c000002ff0000c13d000000430440008c000003940000213d0000051501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000053501000041000000c40010043f0000053601000041000000e40010043f00000537010000410000141a00010430000000710210008c000003030000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000801100029000000000213034f000000000202043b0000050f0520009c000001270000213d000000000524004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000512001a0000000002000414000010e10000413d000000000654004b000010e10000413d000005490620009c000006700000413d000000400100043d00000044021000390000052103000041000000000032043500000024021000390000000803000039000004920000013d000005400290009c000012b60000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004150000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002ed0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e50000413d000000000900004b000002ef0000613d0000000009010433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004250000013d000005240170009c000003b30000c13d0000000001000019000014190001042e000000020210008c000003bb0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c0000049e0000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000000201500039000000000613043600000002010003670000000002000031000000210750003900000005077002720000034b0000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003430000413d000000000700004b0000034d0000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004b10000013d0000000106600190000010e10000c13d0000000006a70049000005070660019700000000016103df000000c0022002100000051d022001970000051e022001c700000000012103af000080090200003900000000060000191418140e0000040f000300000001035500000000030100190000006003300270000105070030019d00000507033001970000000102200190000004710000613d000000400200043d000005200120009c000012b60000213d0000002001200039000000400010043f00000000000204350000002003000039000000400100043d0000000004310436000000000302043300000000003404350000004004100039000000000503004b000003860000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000037f0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f0000050703000041000005070420009c0000000002038019000005070410009c000000000103801900000040011002100000006002200210000000000112019f000014190001042e0000000404500039000000000541034f000000000505043b000800000005001d000005110550009c000001270000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000052604000041000000800040043f0000051102200197000500000002001d000000840020043f0000051102300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c000004fd0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005290000013d0000051501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000052501000041000000c20000013d000000010110008c0000048c0000c13d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400300043d000000000401043b000000800140008c000005500000413d0000008001400270000005420240009c000000000104a019000005420240009c0000000002000019000000100200203900000008052001bf0000050f0610009c000000000502a01900000040021002700000050f0610009c000000000201a01900000004015001bf000005070620009c000000000105a0190000002006200270000005070520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b000000000200001900000001020040390000050f0610009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004030000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000003fb0000413d000000000700004b000004050000613d0000000007030433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005630000013d000005400710009c000012b60000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005af0000413d0000008007600270000005420860009c000000000706a019000005420860009c0000000008000019000000100800203900000008098001bf0000050f0a70009c000000000908a01900000040087002700000050f0a70009c000000000807a019000000040a9001bf000005070780009c000000000a09a0190000002009800270000005070780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b000000000900001900000001090040390000050f0a80009c000012b60000213d0000000109900190000012b60000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000045f0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004570000413d000000000900004b000004610000613d0000000009020433000000000909004b00000c2f0000613d00000000090804330000054109900197000000f80a70021000000000099a019f000005430990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005bf0000013d0000001f0430018f00000005023002720000047c0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004750000413d000000000504004b0000048a0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000400100043d00000044021000390000053d030000410000000000320435000000240210003900000017030000390000000000320435000005150200004100000000002104350000000402100039000000200300003900000000003204350000050702000041000005070310009c0000000001028019000000400110021000000534011001c70000141a00010430000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008430000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000004eb0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000004e30000413d000000000800004b000004ed0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008540000013d0000050701000041000005070320009c0000000002018019000000c00120021000000527011001c70000000802000029141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005160000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000050e0000413d000000000705004b000005250000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000064d0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001270000413d000000800400043d000000070440006c000003010000813d000000a00450003900000528060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000052907000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008a20000c13d00000001020000390000050f0430009c000012b60000213d000008b60000013d000005400130009c000012b60000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8074002100000051008000041000000000404004b000000000807c0190000054104600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008f80000413d0000008006500270000005420750009c000000000605a019000005420750009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000007740436000000210860003900000005088002720000059d0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005950000413d000000000800004b0000059f0000613d0000000008040433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009090000013d000005400720009c000012b60000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c2f0000613d000000f809600210000005100a000041000000000606004b000000000a09c01900000541068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005ce0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005c70000413d000000000176001900000000000104350000000007020433000000000807004b000005db0000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000005d40000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d0000050f0220009c000012b60000213d0000000101100190000012b60000c13d0000000401000029000000400010043f000005400110009c000012b60000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f000000200280003900000544060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c000009fe0000413d0000008006200270000005420720009c000000000602a019000005420720009c0000000007000019000000100700203900000008087001bf0000050f0960009c000000000807a01900000040076002700000050f0960009c000000000706a01900000004098001bf000005070670009c000000000908a0190000002008700270000005070670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c000000000800001900000001080040390000050f0970009c000012b60000213d0000000108800190000012b60000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006390000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b000006310000413d000000000800004b0000063b0000613d00000003080000290000000008080433000000000808004b00000c2f0000613d00000000080704330000054108800197000000f809600210000000000889019f000005430880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a100000013d000000400200043d0000001f0430018f00000005053002720000065a0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006520000413d000000000604004b000006690000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000050701000041000005070420009c000000000201801900000040012002100000006002300210000000000121019f0000141a000104300000050701100197000000000113034f0000000003540049000005070330019700000000013103df000000c0022002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070530019700030000000103550000000102200190000009570000613d0000003f025000390000053c02200197000000400600043d0000000002260019000000000362004b000000000300001900000001030040390000050f0420009c000012b60000213d0000000103300190000012b60000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f0750003900000005077002720000069e0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006960000413d000000000700004b000006a00000613d0000001f0750018f0000000505500272000006ac0000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006a40000413d000000000807004b000006bb0000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c000009f70000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b0000051006000041000000000751004b0000000007000019000000000706801900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b0000050f0450009c000001270000213d0000000504500210000000000343004900000020061000390000051001000041000000000736004b0000000007000019000000000701201900000510033001970000051008600197000000000938004b0000000001008019000000000338013f000005100330009c000000000107c019000000000101004b000001270000c13d000000400100043d00000020031000390000054a05500198000006f60000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000006ee0000413d000000000200004b000006f80000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b000000000400001900000001040040390000050f0520009c000012b60000213d0000000104400190000012b60000c13d000000400020043f0000050702000041000005070430009c000000000302801900000040033002100000000001010433000005070410009c00000000010280190000006001100210000000000131019f0000000003000414000005070430009c0000000003028019000000c002300210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b0000051006000041000000000754004b0000000007000019000000000706801900000510055001970000051008400197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000101043b000700000001001d000000000106004b000001270000c13d0000000801400029000000000413034f000000000404043b0000050f0540009c000001270000213d000000000542004900000020011000390000051006000041000000000751004b0000000007000019000000000706201900000510055001970000051008100197000000000958004b0000000006008019000000000558013f000005100550009c000000000607c019000000000506004b000001270000c13d000000000514001a0000000004000414000010e10000413d000000000652004b000010e10000413d000005070640009c0000029a0000213d0000050701100197000000000113034f0000000002520049000005070220019700000000012103df000000c0024002100000051d022001970000051f022001c700000000012103af0000801002000039141814130000040f00000000030100190000006003300270000105070030019d000005070330019700030000000103550000000102200190000011eb0000613d0000003f023000390000053c02200197000000400500043d0000000002250019000000000452004b000000000400001900000001040040390000050f0620009c000012b60000213d0000000104400190000012b60000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007770000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000076f0000413d000000000600004b000007790000613d0000001f0630018f0000000503300272000007850000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b0000077d0000413d000000000706004b000007940000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c000009f70000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a002100039000000000062043500000080021000390000000000520435000000600210003900000000004204350000004002100039000000000032043500000020021000390000054c030000410000000000320435000001c00300003900000000003104350000054d0310009c000012b60000213d000001e003100039000000400030043f0000050704000041000005070320009c000000000204801900000040022002100000000001010433000005070310009c00000000010480190000006001100210000000000121019f0000000002000414000005070320009c0000000002048019000000c002200210000000000112019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000101043b000500000001001d000000400100043d000700000001001d0000053e0100004100000000001004390000000001000414000005070210009c0000050701008041000000c0011002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d00000007040000290000002002400039000000000101043b0000054e0300004100000000003204350000008003400039000000000013043500000060014000390000054f03000041000000000031043500000040014000390000055003000041000000000031043500000080010000390000000000140435000005510140009c000012b60000213d0000000704000029000000a001400039000000400010043f0000050701000041000005070320009c000000000201801900000040022002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000055204000041000000000042043500000022041000390000000000340435000000420300003900000000003104350000052f0310009c000012b60000213d0000008003100039000000400030043f0000050703000041000005070420009c000000000203801900000040022002100000000001010433000005070410009c00000000010380190000006001100210000000000121019f0000000002000414000005070420009c0000000002038019000000c002200210000000000112019f000010c00000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009910000413d0000008008600270000005420960009c000000000806a019000005420960009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008900000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008880000413d000000000a00004b000008920000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009a20000013d0000050701000041000005070350009c000000000501801900000060035002100000004004400210000000000343019f000005070420009c0000000002018019000000c001200210000000000113019f0000000802000029141814040000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000105070030019d0000050703300198000008e20000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b000000000500001900000001050040390000050f0640009c000012b60000213d0000000105500190000012b60000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008d20000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008ca0000413d000900000008001d000000000504004b000008e20000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b000009720000c13d000000000201004b000009ef0000c13d000000400300043d000900000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000201000029141813f00000040f000000090400002900000000014100490000050702000041000005070310009c0000000001028019000009f30000013d000005400640009c000012b60000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c2f0000613d000000f8085002100000051009000041000000000505004b000000000908c0190000054105700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a560000413d0000008008700270000005420970009c000000000807a019000005420970009c00000000090000190000001009002039000000080a9001bf0000050f0b80009c000000000a09a01900000040098002700000050f0b80009c000000000908a019000000040ba001bf000005070890009c000000000b0aa019000000200a900270000005070890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a0040390000050f0b90009c000012b60000213d000000010aa00190000012b60000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009450000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000093d0000413d000000000a00004b000009470000613d000000000a050433000000000a0a004b00000c2f0000613d000000000a090433000005410aa00197000000f80b800210000000000aab019f000005430aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a670000013d0000001f0350018f0000000502500272000009620000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b0000095b0000413d000000000403004b000009700000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f000000000012043500000060015002100000141a00010430000000000201004b00000b170000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b00000b130000c13d000000400100043d00000044021000390000053303000041000000000032043500000024021000390000001d0300003900000000003204350000051502000041000000000021043500000004021000390000000303000029000004970000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a600210000005100b000041000000000606004b000000000b0ac01900000541069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ab40000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb00272000009dd0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b000009d50000413d000000000b00004b000009df0000613d000000000b060433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000ac50000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000040280190000004002400210000002540000013d000000400100043d00000044021000390000054b03000041000000000032043500000024021000390000001f03000039000004920000013d0000000306000029000005400660009c000012b60000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c2f0000613d000000f8082002100000051009000041000000000202004b000000000908c0190000054102700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000005100760019700000510082001970000051009000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000005100770009c000000000a09c01900000000070a004b000001270000c13d0000000808200029000000000783034f000000000707043b0000050f0970009c000001270000213d00000000097400490000002008800039000005100a000041000000000b98004b000000000b000019000000000b0a20190000051009900197000005100c800197000000000d9c004b000000000a00801900000000099c013f000005100990009c000000000a0bc01900000000090a004b000001270000c13d000000010970008c00000c5c0000c13d000000000583034f000000000505043b000000010700008a0000051008000041000000000775004b000000000700001900000000070820190000051005500197000005100950009c00000000080080190000051005500167000005100550009c000000000807c019000200600000003d000000000508004b00000dc20000c13d000000400500043d000200000005001d000005400550009c000012b60000213d00000002080000290000004005800039000000400050043f0000002005800039000005430700004100000000007504350000000105000039000000000058043500000dc20000013d000005400850009c000012b60000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a700210000005100b000041000000000707004b000000000b0ac01900000541079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b4d0000413d0000008009800270000005420a80009c000000000908a019000005420a80009c000000000a000019000000100a002039000000080ba001bf0000050f0c90009c000000000b0aa019000000400a9002700000050f0c90009c000000000a09a019000000040cb001bf0000050709a0009c000000000c0ba019000000200ba002700000050709a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b0040390000050f0ca0009c000012b60000213d000000010bb00190000012b60000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000aa20000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a9a0000413d000000000b00004b00000aa40000613d000000000b070433000000000b0b004b00000c2f0000613d000000000b0a0433000005410bb00197000000f80c900210000000000bbc019f000005430bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b5e0000013d000005400960009c000012b60000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c240000413d000000800a900270000005420b90009c000000000a09a019000005420b90009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b000000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000af80000413d000000000700004b00000b020000613d0000000007080433000000000707004b00000c2f0000613d00000000070b04330000054107700197000000f80ca0021000000000077c019f000005430770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d4e0000013d00000004010000290000000001010433000000000201004b00000b3a0000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b00000b3a0000c13d000000400100043d00000064021000390000053103000041000000000032043500000044021000390000053203000041000000000032043500000024021000390000002a03000039000000000032043500000515020000410000000000210435000000040210003900000003030000290000010a0000013d000000400300043d00000024013000390000000602000029000000000021043500000526010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000bbe0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000bf00000013d000005400970009c000012b60000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000000f80b800210000005100c000041000000000808004b000000000c0bc0190000054108a001970000000008c8019f0000000000890435000000400900043d000005400890009c000012b60000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a900039000005440b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000c870000413d0000000706000029000000800a600270000005420b60009c000000000a06a019000005420b60009c000000000b000019000000100b002039000000080cb001bf0000050f0da0009c000000000c0ba019000000400ba002700000050f0da0009c000000000b0aa019000000040dc001bf000005070ab0009c000000000d0ca019000000200cb00270000005070ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c0040390000050f0db0009c000012b60000213d000000010cc00190000012b60000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bab0000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000ba30000413d000000000600004b00000bad0000613d0000000006080433000000000606004b00000c2f0000613d00000000060b04330000054106600197000000f80ca0021000000000066c019f000005430660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000c9a0000013d0000050702000041000005070310009c00000000010280190000000904000029000005070340009c00000000020440190000004002200210000000c001100210000000000121019f0000052c011001c70000000802000029141814090000040f000000090a000029000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000bdd0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000bd50000413d000000000705004b00000bec0000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c330000613d0000001f01400039000000600210018f0000000901200029000000000221004b000000000200001900000001020040390000050f0410009c000012b60000213d0000000102200190000012b60000c13d000000400010043f000000200230008c000001270000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c500000c13d0000002002100039000005280600004100000000006204350000000606000029000000000065043500000007050000290000000000540435000000010400002900000000004104350000052f0410009c000012b60000213d0000008004100039000900000004001d000000400040043f000005300410009c000012b60000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000529050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f490000c13d00000001020000390000050f0130009c000012b60000213d00000f5f0000013d000005400780009c000012b60000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d470000c13d0000055e0100004100000000001004350000003201000039000000410000013d000000400200043d0000001f0430018f000000050530027200000c400000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c380000413d000000000604004b00000c4f0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006690000013d00000515020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000052d02000041000000000024043500000064021000390000052e030000410000010a0000013d000000400800043d000200000008001d000000380870008c00000db10000413d0000002009700270000005070870009c000000000907a019000005070870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005400aa0009c000012b60000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c2f0000613d0000054105500197000000f80a80021000000000055a019f00000545055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000dc20000013d000005400680009c000012b60000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c2f0000613d000000070d000029000000f806d00210000005100c000041000000000d0d004b000000000c06c0190000054106b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000ca70000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ca00000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000cb60000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000caf0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cc50000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000cbe0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000cd40000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000ccd0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000ce30000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000cdc0000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000cf20000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000ceb0000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b000000000400001900000001040040390000050f0570009c000012b60000213d0000000104400190000012b60000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c000012060000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012670000c13d000005400870009c000012b60000213d0000004008700039000000400080043f000000200870003900000543090000410000000000980435000000010800003900000000008704350000000008070019000012670000013d000000f807900210000005100c000041000000000909004b000000000c07c0190000054107b001970000000007c7019f00000000007a0435000000400a00043d0000054007a0009c000012b60000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a00039000005440b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e230000413d0000000707000029000000800b700270000005420c70009c000000000b07a019000005420c70009c000000000c000019000000100c002039000000080dc001bf0000050f0eb0009c000000000d0ca019000000400cb002700000050f0eb0009c000000000c0ba019000000040ed001bf000005070bc0009c000000000e0da019000000200dc00270000005070bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d0040390000050f0ec0009c000012b60000213d000000010dd00190000012b60000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000d9d0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000d950000413d000000000700004b00000d9f0000613d0000000007090433000000000707004b00000c2f0000613d00000000070c04330000054107700197000000050d000029000000f80bd0021000000000077b019f000005430770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e360000013d0000000208000029000005400880009c000012b60000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c2f0000613d000000f8077002100000054105500197000000000575019f00000510055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000ef20000c13d0000051005000041000000000762004b0000000007000019000000000705801900000510066001970000051008200197000000000968004b0000000005008019000000000668013f000005100660009c000000000507c019000000000505004b000001270000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b0000050f0b20009c000001270000213d000000000b2400490000002005500039000005100c000041000000000db5004b000000000d000019000000000d0c2019000005100bb00197000005100e500197000000000fbe004b000000000c008019000000000bbe013f000005100bb0009c000000000c0dc019000000000b0c004b000001270000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d0000050f06600197000000380860008c000010070000413d0000002009600270000005070860009c000000000906a019000005070860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c2f0000613d0000054109900197000000f80a80021000000000099a019f00000547099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010170000013d000005400790009c000012b60000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c2f0000613d000000070e000029000000f807e00210000005100d000041000000000e0e004b000000000d07c0190000054107c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e430000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e3c0000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e520000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e4b0000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e610000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e5a0000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e700000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e690000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000e7f0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000e780000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000e8e0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000e870000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000e9d0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000e960000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b000000000400001900000001040040390000050f0560009c000012b60000213d0000000104400190000012b60000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b0000051008000041000000000954004b000000000900001900000000090880190000051005500197000005100a400197000000000b5a004b000000000800801900000000055a013f000005100550009c000000000809c019000000000508004b000001270000c13d0000000805400029000000000451034f000000000404043b0000050f0840009c000001270000213d000000000842004900000020055000390000051009000041000000000a85004b000000000a000019000000000a0920190000051008800197000005100b500197000000000c8b004b000000000900801900000000088b013f000005100880009c00000000090ac019000000000809004b000001270000c13d000000010840008c0000122e0000c13d000000000851034f000000000808043b000000010900008a000005100a000041000000000998004b000000000900001900000000090a20190000051008800197000005100b80009c000000000a0080190000051008800167000005100880009c000000000a09c019000000600800003900000000090a004b000012b30000c13d000005400860009c000012b60000213d0000004008600039000000400080043f000000200860003900000543090000410000000000980435000000010800003900000000008604350000000008060019000012b30000013d0000053e01000041000000000010043900000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000053f011001c70000800b02000039141814090000040f0000000102200190000011050000613d000000400200043d000000000101043b000000800310008c00000f9e0000413d0000008003100270000005420410009c000000000301a019000005420410009c0000000004000019000000100400203900000008054001bf0000050f0630009c000000000504a01900000040043002700000050f0630009c000000000403a01900000004035001bf000005070640009c000000000305a0190000002006400270000005070540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b000000000400001900000001040040390000050f0630009c000012b60000213d0000000104400190000012b60000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f370000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f2f0000413d000000000700004b00000f390000613d0000000007020433000000000707004b00000c2f0000613d00000000070604330000054107700197000000f808500210000000000778019f000005430770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fb10000013d0000050703000041000005070520009c00000000020380190000004002200210000005070540009c00000000040380190000006004400210000000000224019f000005070410009c0000000001038019000000c001100210000000000112019f0000000802000029141814040000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000105070010019d000005070310019800000f8c0000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b000000000400001900000001040040390000050f0510009c000012b60000213d0000000104400190000012b60000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000f7c0000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000f740000413d000600000008001d000000000501004b00000f8c0000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b00000fd60000c13d000000000201004b000010020000c13d000000400300043d000800000003001d0000051501000041000000000013043500000004013000390000000302000029000000000021043500000024023000390000000901000029141813f00000040f0000000804000029000008f30000013d000005400320009c000012b60000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c2f0000613d000000f8071002100000051008000041000000000101004b000000000807c0190000054101600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fbf0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fb80000413d000000000265001900000553060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b000000000500001900000001050040390000050f0620009c000012b60000213d0000000105500190000012b60000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000dc80000013d000000000201004b00000fed0000c13d0000052a0100004100000000001004390000000801000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800202000039141814090000040f0000000102200190000011050000613d000000000101043b000000000101004b000009850000613d00000007010000290000000001010433000000000201004b000003010000613d0000051002000041000000200310008c000000000300001900000000030240190000051001100197000000000401004b000000000200a019000005100110009c000000000203c019000000000102004b000001270000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001270000c13d000000000101004b000003010000c13d00000b2b0000013d0000050702000041000005070310009c00000000010280190000000604000029000009f30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c2f0000613d0000054108800197000000f806600210000000000686019f00000546066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010240000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000101d0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010340000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000102d0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010440000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000103d0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010540000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000104d0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010640000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105d0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010740000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106d0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010850000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000107d0000413d000000000a07004b000010940000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010a20000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b0000109b0000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b000000000200001900000001020040390000050f0310009c000012b60000213d0000000102200190000012b60000c13d000000400010043f0000050701000041000005070260009c000000000601801900000040026002100000000003040433000005070430009c00000000030180190000006003300210000000000223019f0000000003000414000005070430009c0000000003018019000000c001300210000000000121019f00000512011001c70000801002000039141814090000040f0000000102200190000001270000613d0000000203000367000000000101043b000700000001001d0000000901000029000000e404100039000000000143034f000000000101043b0000051101100198000400000004001d000010e50000c13d000000800140008a000000000213034f000000400140008a000000000513034f000000000402043b000000000505043b00000000624500a9000000000605004b000010db0000613d00000000655200d9000000000445004b000010e10000c13d0000008001100039000000000113034f000000000101043b000500000021001e000010e10000413d000010ea0000013d0000055e0100004100000000001004350000001101000039000000410000013d00000009010000290000012401100039000000000113034f000000000101043b000500000001001d000005540100004100000000001004390000000601000029000000040010044300000507010000410000000002000414000005070320009c0000000002018019000000c0012002100000052b011001c70000800a02000039141814090000040f0000000102200190000011050000613d000000000101043b000000050110006b000011060000a13d000000400100043d00000064021000390000055c03000041000000000032043500000044021000390000055d03000041000000000032043500000024021000390000002203000039000001050000013d000000000001042f0000000004000031000000090140006a000000230210008a000000040100002900000100011000390000000203000367000000000113034f000000000101043b0000051005000041000000000621004b0000000006000019000000000605801900000510022001970000051007100197000000000827004b0000000005008019000000000227013f000005100220009c000000000506c019000000000205004b000001270000c13d0000000802100029000000000123034f000000000101043b0000050f0510009c000001270000213d000000000514004900000020062000390000051002000041000000000756004b0000000007000019000000000702201900000510055001970000051008600197000000000958004b0000000002008019000000000558013f000005100550009c000000000207c019000000000202004b000001270000c13d0000003f02100039000000200500008a000000000552016f000000400200043d0000000005520019000000000725004b000000000700001900000001070040390000050f0850009c000012b60000213d0000000107700190000012b60000c13d000000400050043f00000000051204360000000007610019000000000447004b000001270000213d000000000463034f0000001f0310018f00000005061002720000114d0000613d000000000700001900000005087002100000000009850019000000000884034f000000000808043b00000000008904350000000107700039000000000867004b000011450000413d000000000703004b0000115c0000613d0000000506600210000000000464034f00000000066500190000000303300210000000000706043300000000073701cf000000000737022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000373019f000000000036043500000000011500190000000000010435000000400100043d0000000003020433000000410330008c0000116f0000c13d00000041032000390000000003030433000000ff0330018f0000001d0430008a000000030600008a000000000464004b000011750000213d00000044021000390000055b03000041000000000032043500000024021000390000001603000039000004920000013d00000044021000390000055503000041000000000032043500000024021000390000001d03000039000004920000013d000000000405043300000040022000390000000002020433000005560520009c000011800000413d00000044021000390000055a03000041000000000032043500000024021000390000000903000039000004920000013d00000060051000390000000000250435000000400210003900000000004204350000002002100039000000000032043500000007020000290000000000210435000000000000043500000507020000410000000003000414000005070430009c0000000003028019000005070410009c00000000010280190000004001100210000000c002300210000000000112019f00000557011001c70000000102000039141814090000040f000000000301001900000060033002700000050703300197000000200430008c000000000403001900000020040080390000001f0540018f0000000504400272000011a60000613d00000000060000190000000507600210000000000871034f000000000808043b00000000008704350000000106600039000000000746004b0000119f0000413d000000000605004b000011b40000613d00000003055002100000000504400210000000000604043300000000065601cf000000000656022f000000000741034f000000000707043b0000010005500089000000000757022f00000000055701cf000000000565019f0000000000540435000100000003001f0003000000010355000000400400043d0000000102200190000011cb0000613d00000000010004330000051101100197000000060210006c0000000002000019000000010200c039000000000101004b0000000001000019000000010100603900000000011201a00000055801000041000000000100c01900000000001404350000050701000041000005070240009c0000000004018019000000400140021000000559011001c7000014190001042e0000001f0230018f0000000505300272000011d70000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000011cf0000413d000000000602004b000011e60000613d0000000505500210000000000151034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000101043b0000010002200089000000000121022f00000000012101cf000000000161019f00000000001504350000050701000041000005070240009c000000000401801900000040014002100000066d0000013d0000001f0430018f0000000502300272000011f60000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011ef0000413d000000000504004b000012040000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000141a00010430000000380840008c000012560000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a70009c000012b60000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210970003900000000008904350000000008070019000012670000013d000000380840008c000012a20000413d0000002009400270000005070840009c000000000904a019000005070840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005400a60009c000012b60000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c2f0000613d000005410aa00197000000f80b800210000000000aab019f000005450aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf000000210960003900000000008904350000000008060019000012b30000013d000005400870009c000012b60000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008070019000000400700043d000005400970009c000012b60000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d0000050f09900197000000380d90008c000012f20000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012ff0000013d000005400860009c000012b60000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c2f0000613d000000f80a40021000000541099001970000000009a9019f000005100990016700000000009804350000000008060019000000400600043d000005400960009c000012ba0000a13d0000055e0100004100000000001004350000004101000039000000410000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c2f0000613d0000054102b00197000005460a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d0000050f09900197000000380d90008c0000136c0000413d000000200d900270000005070c90009c000000000d09a019000005070c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005400ea0009c000012b60000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c2f0000613d000000f80bc0021000000000022b019f00000547022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013790000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005480b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b0000130f0000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013080000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b0000131e0000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000013170000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b0000132d0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013260000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a4002720000133e0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013360000413d000000000b06004b0000134d0000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b0000135b0000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000013540000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000013e50000613d000012b60000013d000005400da0009c000012b60000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c2f0000613d000000f809900210000000000229019f000005460220004100000000002d0435000000400200043d0000002009200039000005120b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013890000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013820000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b000013980000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013910000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b000013a70000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013a00000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a400272000013b80000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013b00000413d000000000b07004b000013c70000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b000013d50000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013ce0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b000000000300001900000001030040390000050f0410009c000012b60000213d0000000103300190000012b60000c13d000000400010043f0000050701000041000005070390009c000000000901801900000040039002100000000002020433000005070420009c00000000020180190000006002200210000000000232019f000010bb0000013d00000000030104330000000002320436000000000403004b000013fc0000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000013f50000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f00001407002104210000000102000039000000000001042d0000000002000019000000000001042d0000140c002104230000000102000039000000000001042d0000000002000019000000000001042d00001411002104210000000102000039000000000001042d0000000002000019000000000001042d00001416002104230000000102000039000000000001042d0000000002000019000000000001042d0000141800000432000014190001042e0000141a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf4f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395369676e6174757265206c656e67746820697320696e636f72726563740000007fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a10000000000000000000000000000000000000080000000000000000000000000202bcce7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000496e76616c69642073000000000000000000000000000000000000000000000076206973206e656974686572203237206e6f722032380000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000008869c198fc17d4ea55c9b4b0e2b8d10bd5942970b7f48b5eecabfc6e19a8ead1", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/DefaultAccountNoSecurity.json b/src/deps/contracts/DefaultAccountNoSecurity.json index a9fe4831..e4ad6ebc 100644 --- a/src/deps/contracts/DefaultAccountNoSecurity.json +++ b/src/deps/contracts/DefaultAccountNoSecurity.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "DefaultAccountNoSecurity", - "sourceName": "cache-zk/solpp-generated-contracts/DefaultAccountNoSecurity.sol", + "sourceName": "contracts-preprocessed/DefaultAccountNoSecurity.sol", "abi": [ { "stateMutability": "payable", @@ -539,8 +539,8 @@ "type": "receive" } ], - "bytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005f20430019700030000004103550002000000010355000005f20030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000004000031000000040140008c000000410000413d0000000201000367000000000201043b000000e002200270000005f40320009c000000450000a13d000005f50320009c000000a90000613d000005f60320009c000000ea0000613d000005f70220009c000000a60000c13d000000040240008a000005fa03000041000000200420008c00000000040000190000000004034019000005fa05200197000000000605004b000000000300a019000005fa0550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000005fb0310009c0000010d0000213d0000000001120049000005fa02000041000002600310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005f301000041000017c40001042e000000000104004b000000a60000c13d0000000001000019000017c40001042e000005f80320009c000000eb0000613d000005f90220009c000000a60000c13d000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000005fb0320009c0000010d0000213d00000004052000390000000003540049000005fa06000041000002600730008c00000000070000190000000007064019000005fa03300197000000000803004b000000000600a019000005fa0330009c00000000030700190000000003066019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d0000000003000412000005fc063001970000000003000410000000000636004b000000430000c13d0000022406200039000000000661034f0000000007240049000000230770008a000000000606043b000005fa08000041000000000976004b00000000090000190000000009088019000005fa07700197000005fa0a600197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000005fb0760009c0000010d0000213d00000000076400490000002004500039000005fa08000041000000000974004b00000000090000190000000009082019000005fa07700197000005fa0a400197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000060501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000061d01000041000000c40010043f0000061e01000041000000e40010043f0000061c01000041000017c50001043017c316ce0000040f0000000001000019000017c40001042e000000040240008a000005fa03000041000000600620008c00000000060000190000000006034019000005fa02200197000000000702004b000000000300a019000005fa0220009c00000000020600190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000702043b000005fb0270009c0000010d0000213d00000004067000390000000002640049000005fa03000041000002600820008c00000000080000190000000008034019000005fa02200197000000000902004b000000000300a019000005fa0220009c00000000020800190000000002036019000000000202004b0000010d0000c13d0000000002000411000080010220008c000000430000c13d0000000002000412000005fc022001970000000003000410000000000232004b000000430000c13d0000012402700039000000000321034f0000004402700039000000000221034f000000000202043b000005fc02200197000000000303043b000005fd0830009c000001310000413d00000044015000390000060402000041000000000021043500000024015000390000000802000039000000000021043500000605010000410000000000150435000000040150003900000020020000390000000000210435000005f201000041000005f20250009c0000000001054019000000400110021000000606011001c7000017c50001043017c315d50000040f000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000b00000002001d000005fb0220009c0000010d0000213d0000000b020000290000000402200039000a00000002001d0000000002240049000005fa03000041000002600420008c00000000040000190000000004034019000005fa02200197000000000502004b000000000300a019000005fa0220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017c5000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d0000000001000412000005fc011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000061f0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b0000002404100039000000000034043500000024030000390000000000310435000006200310009c0000015e0000413d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c500010430000001c405700039000000000551034f0000000007740049000000230770008a000000000505043b000005fa08000041000000000975004b00000000090000190000000009088019000005fa07700197000005fa0a500197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000006650019000000000161034f000000000501043b000005fb0150009c0000010d0000213d00000000015400490000002004600039000005fa06000041000000000714004b00000000070000190000000007062019000005fa01100197000005fa08400197000000000918004b0000000006008019000000000118013f000005fa0110009c00000000010700190000000001066019000000000101004b0000010d0000c13d0000000001000414000005fe0610009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f0000000004010433000005fe0540009c000001740000413d00000605020000410000000000230435000000a40210003900000604040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005f201000041000005f20230009c0000000001034019000000400110021000000606011001c7000017c500010430000000c0022002100000062102200197000000400110021000000622011000410000062301100197000000000112019f00000060024002100000062402200197000000000121019f00000625011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917c317af0000040f00030000000103550000006001100270000105f20010019d000005f2041001970000003f014000390000062605100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000005fb0630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001022001900000025b0000613d0000000901000029000000000101004b000012520000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b0000028f0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000002cf0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000090200002900000021022000390000000000120435000004260000013d000000000441034f000000000404043b000005ff04400197000006070740009c000002650000c13d000000430460008c000002710000213d0000060501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000061a01000041000000c40010043f0000061b01000041000000e40010043f0000061c01000041000017c500010430000080060620008c00000000060000190000024a0000c13d000000040650008c00000000060000190000024a0000413d00000001060000390000000207400367000000000707043b000005ff07700197000006000870009c000002490000613d000006010870009c000002490000613d000006020870009c000002490000613d000006030670009c00000000060000190000000106006039000000010660018f17c316d80000040f17c317230000040f0000000002010019000000400100043d000b00000001001d17c315bf0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c40001042e0000000001010433000005f202000041000005f20410009c0000000001028019000005f20430009c000000000203401900000040022002100000006001100210000000000121019f000017c500010430000006080140009c000000430000613d0000060501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000060901000041000000c40010043f0000060a01000041000017c5000104300000002404500039000000000441034f000000000404043b000b00000004001d000005fc0440009c0000010d0000213d000000e402200039000000000221034f0000004404500039000000000141034f000000000101043b000a00000001001d000000000102043b0000060b02000041000000800020043f000005fc02300197000800000002001d000000840020043f000005fc01100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c000003480000c13d0000000103000031000000200130008c00000020040000390000000004034019000003740000013d000000710320008c000002ec0000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d0000000004420019000005fa05000041000000000643004b00000000060000190000000006058019000005fa04400197000005fa07300197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000005fb0410009c0000010d0000213d00000000021200490000002003300039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d00000000020004140000000004310019000000000114004b00000000010000190000000101004039000005f2033001970000000101100190000002c90000c13d0000000001000031000000000541004b000007130000813d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400200043d000900000002001d0000062a0220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000002db0000413d00000009030000290000000003030433000000000303004b0000041d0000c13d0000063d0100004100000000001004350000003201000039000000040010043f0000063e01000041000017c500010430000000020120008c0000039b0000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005580000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003350000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000032d0000413d000000000500004b000003370000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005750000013d000005f202000041000005f20310009c0000000001028019000000c0011002100000060c011001c70000000b0200002917c317b40000040f00000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003610000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003590000413d000000000705004b000003700000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000003f70000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000060d030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000060e05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c000004f70000c13d00000001020000390000000101000031000005080000013d000000010120008c000004770000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ea0000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003e40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003dc0000413d000000000500004b000003e60000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000006070000013d000000400200043d0000001f0430018f0000000503300272000004040000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003fc0000413d000000000504004b000004130000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004890000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004640000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000045c0000413d000000000500004b000004660000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004a60000013d000000400100043d00000044021000390000062703000041000000000032043500000024021000390000001703000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004930000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006570000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000004e40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000004dc0000413d000000000600004b000004e60000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006740000013d000005f204000041000005f20530009c000000000304801900000060033002100000004002200210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000700000003001d000000000301004b000005280000c13d00000007010000290000000031010434000300000003001d000000000202004b000005c50000c13d000000000201004b000007080000c13d000000400300043d000b00000003001d000006050100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f0000000505500272000005480000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005400000413d000000000604004b0000050c0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000050c0000013d000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005620000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007280000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005b20000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005aa0000413d000000000600004b000005b40000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007450000013d000000000201004b000009f20000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000009ee0000c13d000000400100043d00000044021000390000061903000041000000000032043500000024021000390000001d03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005f40000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000007960000413d00000080032002700000062c0420009c000000000302a0190000062c0420009c0000000004000019000000100400203900000008054001bf000005fb0630009c00000000040520190000004005300270000005fb0630009c000000000305201900000004054001bf000005f20630009c00000000040520190000002005300270000005f20630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006440000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000063c0000413d000000000600004b000006460000613d0000000006030433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000007b30000013d000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006610000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006820000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b0000067b0000413d000000000143001900000000000104350000000004020433000000000504004b0000068f0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006880000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000005fb0220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f0000062a0110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000062e0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000b8d0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000006f30000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006eb0000413d000000000400004b000006f50000613d00000005040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bad0000013d000005f2020000410000000304000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c5000104300000000203300367000005fe0520009c000008040000413d000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007320000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a2f0000413d00000080043002700000062c0530009c000000000403a0190000062c0530009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000077b0000413d000000000700004b000007850000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a4c0000013d000000400300043d0000062a0430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007a00000413d0000000005030433000000000505004b000002e60000613d000000f805200210000005fa06000041000000000202004b0000000002050019000000000206601900000000050404330000062b05500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b1f0000413d00000080042002700000062c0520009c000000000402a0190000062c0520009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007f10000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007e90000413d000000000700004b000007f30000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b3c0000013d0000000001410049000005f20110019700000000011303df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f2033001970003000000010355000000010220019000000a9d0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f0430003900000005044002720000082f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008270000413d000000000400004b000008310000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008410000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008390000413d000000000604004b000008500000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b000005fa06000041000000000753004b00000000070000190000000007068019000005fa05500197000005fa08300197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000005fb0350009c0000010d0000213d000000050350021000000000043400490000002006100039000005fa01000041000000000746004b00000000070000190000000007012019000005fa04400197000005fa08600197000000000948004b0000000001008019000000000448013f000005fa0440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d000000200410003900000634055001980000088f0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008870000413d000000000200004b000008910000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000005fb0520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005f202000041000005f20340009c0000000003020019000000000304401900000040033002100000000001010433000005f20410009c00000000010280190000006001100210000000000131019f0000000003000414000005f20430009c0000000002034019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b000005fa06000041000000000754004b00000000070000190000000007068019000005fa05500197000005fa08400197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000005fb0310009c0000010d0000213d00000000021200490000002003400039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005f204300197000002c90000413d0000000003000031000000000513004b000002c90000413d0000000204400367000005f20520009c000007160000213d0000000001130049000005f20110019700000000011403df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f20330019700030000000103550000000102200190000013fa0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000009150000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000090d0000413d000000000400004b000009170000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000009270000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000091f0000413d000000000604004b000009360000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000636030000410000000000320435000001c0030000390000000000310435000006370310009c0000012b0000213d000001e003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006380300004100000000003204350000008003400039000000000013043500000060014000390000063903000041000000000031043500000040014000390000063a030000410000000000310435000000800100003900000000001404350000063b0140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005f201000041000005f20320009c000000000201801900000040022002100000000003040433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000301043b000000400100043d00000042021000390000000704000029000000000042043500000020021000390000063c0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006150310009c0000012b0000213d0000008003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d00000007010000290000000001010433000000000201004b00000a1c0000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a1c0000c13d000000400100043d00000064021000390000061703000041000000000032043500000044021000390000061803000041000000000032043500000024021000390000002a03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400300043d0000002401300039000000090200002900000000002104350000060b010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000ab80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000aeb0000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a390000413d0000000006040433000000000606004b000002e60000613d000000f806300210000005fa07000041000000000303004b0000000003060019000000000307601900000000060504330000062b06600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c220000413d00000080053002700000062c0630009c000000000503a0190000062c0630009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000a8a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000a820000413d000000000800004b00000a8c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c3f0000013d0000001f0430018f000000050230027200000aa80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000aa10000413d000000000504004b00000ab60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000005f202000041000005f20310009c00000000010280190000000704000029000005f20340009c00000000020440190000004002200210000000c001100210000000000121019f00000611011001c70000000b0200002917c317b40000040f000000070a00002900000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000ad70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000acf0000413d000000000705004b00000ae70000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000bfc0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000005fb0410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000c900000c13d00000044021000390000000a03000029000000000032043500000020021000390000060d03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006150310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006160310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000060e040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000db20000c13d0000000102000039000000010100003100000dc50000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b290000413d0000000006040433000000000606004b000002e60000613d000000f806200210000005fa07000041000000000202004b0000000002060019000000000207601900000000060504330000062b06600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cb60000413d00000080052002700000062c0620009c000000000502a0190000062c0620009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000b7a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000b720000413d000000000800004b00000b7c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000cd30000013d000000400200043d000500000002001d0000062a0220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000b990000413d00000005030000290000000003030433000000000303004b000002e60000613d000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d0000000004430019000005fa05000041000000000641004b00000000060000190000000006058019000005fa04400197000005fa07100197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000005fb0510009c0000010d0000213d00000000051300490000002003400039000005fa04000041000000000653004b00000000060000190000000006042019000005fa05500197000005fa07300197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000ee40000c13d000000000132034f000000000101043b000000010200008a000005fa03000041000000000221004b00000000020000190000000002032019000005fa01100197000005fa0410009c0000000003008019000005fa01100167000005fa0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010420000c13d000000400100043d000400000001001d0000062a0110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000062d02000041000000000021043500000001010000390000000000130435000010420000013d000000400200043d0000001f0430018f000000050330027200000c090000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c010000413d000000000504004b00000c180000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c2c0000413d0000000007050433000000000707004b000002e60000613d000000f807300210000005fa08000041000000000303004b0000000003070019000000000308601900000000070604330000062b07700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d340000413d00000080063002700000062c0730009c000000000603a0190000062c0730009c0000000007000019000000100700203900000008087001bf000005fb0960009c00000000070820190000004008600270000005fb0960009c000000000608201900000004087001bf000005f20960009c00000000070820190000002008600270000005f20960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000005fb0a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000c7d0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000c750000413d000000000900004b00000c7f0000613d0000000009060433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062d0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d510000013d00000064021000390000061203000041000000000032043500000044021000390000061303000041000000000032043500000024021000390000003603000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001f03000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000cc00000413d0000000007050433000000000707004b000002e60000613d000000f807200210000005fa08000041000000000202004b0000000002070019000000000208601900000000070604330000062b07700197000000000227019f0000000000260435000000400600043d0000062a0260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000062e0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e150000413d00000080072002700000062c0820009c000000000702a0190000062c0820009c0000000008000019000000100800203900000008098001bf000005fb0a70009c00000000080920190000004009700270000005fb0a70009c000000000709201900000004098001bf000005f20a70009c00000000080920190000002009700270000005f20a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000005fb0b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d210000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d190000413d000000000a00004b00000d230000613d000000000a070433000000000a0a004b000002e60000613d000000000a0904330000062b0aa00197000000f80b800210000000000aab019f0000062d0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e320000013d000000400600043d0000062a0760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d3e0000413d0000000008060433000000000808004b000002e60000613d000000f808300210000005fa09000041000000000303004b0000000003080019000000000309601900000000080704330000062b08800197000000000338019f0000000000370435000000400700043d0000062a0370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000062e090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f470000413d00000080083002700000062c0930009c000000000803a0190000062c0930009c00000000090000190000001009002039000000080a9001bf000005fb0b80009c00000000090a2019000000400a800270000005fb0b80009c00000000080a2019000000040a9001bf000005f20b80009c00000000090a2019000000200a800270000005f20b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000005fb0ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000d9f0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000d970000413d000000000b00004b00000da10000613d000000000b080433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c900210000000000bbc019f0000062d0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000f640000013d000005f204000041000005f20520009c00000000020480190000004002200210000005f20530009c00000000030480190000006003300210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000900000003001d000000000301004b00000de50000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f1a0000c13d000000000201004b000011110000c13d000000400300043d000b00000003001d0000060501000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e050000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000dfd0000413d000000000604004b00000dc90000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000dc90000013d000000400700043d0000062a0870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e1f0000413d0000000009070433000000000909004b000002e60000613d000000f809200210000005fa0a000041000000000202004b000000000209001900000000020a601900000000090804330000062b09900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e3f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e380000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e4e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e470000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e5d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e560000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000e6c0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000e650000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000e7b0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000e740000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000e8a0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000e830000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000005fb0450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012700000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000012ee0000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000012ee0000013d000000380210008c000010250000413d0000002002100270000005f20310009c00000000030100190000000003022019000005f20210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d0000062a0440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f020000413d00000004040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062f044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010420000013d000000000201004b00000f310000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000005d80000613d00000009010000290000000001010433000000000201004b000000430000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a070000613d000000430000013d000000400800043d0000062a0980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f510000413d000000000a080433000000000a0a004b000002e60000613d000000f80a300210000005fa0b000041000000000303004b00000000030a001900000000030b6019000000000a0904330000062b0aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000f710000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000f6a0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000f800000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000f790000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000f8f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000f880000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000f9e0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000f970000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fad0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fa60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000fbc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000fb50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b00000fcb0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b00000fc40000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000005fb0450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012a20000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000013810000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000013810000013d000000400200043d000400000002001d0000062a0220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010310000413d00000004030000290000000003030433000000000303004b000002e60000613d000000f80110021000000000030204330000062b03300197000000000113019f000005fa01100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010b70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b000005fa04000041000000000659004b00000000060000190000000006048019000005fa05500197000005fa07900197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000005fb0a20009c0000010d0000213d00000000032300490000002009900039000005fa0a000041000000000b39004b000000000b000019000000000b0a2019000005fa03300197000005fa09900197000000000c39004b000000000a008019000000000339013f000005fa0330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d0000000003450019000000000363001900000000037300190000000003830019000000000223001900000000030104330000000002320019000005fb02200197000000380320008c000011590000413d0000002003200270000005f20420009c00000000040200190000000004032019000005f20320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d0000062a0560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010a10000413d0000000005060433000000000505004b000002e60000613d00000000050404330000062b05500197000000f807300210000000000557019f00000631055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011730000013d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000111c0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000442043600000021053000390000000505500272000010fe0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000010f60000413d000000000500004b000011000000613d0000000005020433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011390000013d000005f2020000410000000804000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c500010430000000400200043d0000062a0320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011260000413d0000000004020433000000000404004b000002e60000613d000000f804100210000005fa05000041000000000101004b0000000001040019000000000105601900000000040304330000062b04400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011460000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000113f0000413d00000000024300190000063f0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000005fb0420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000104a0000013d000000400600043d0000062a0360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011630000413d0000000004060433000000000404004b000002e60000613d000000f80220021000000000040304330000062b04400197000000000242019f0000063002200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b000005fa07000041000000000854004b00000000080000190000000008078019000005fa05500197000005fa09400197000000000a59004b0000000007008019000000000559013f000005fa0550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000005fb0340009c0000010d0000213d00000000024200490000002005500039000005fa03000041000000000725004b00000000070000190000000007032019000005fa02200197000005fa08500197000000000928004b0000000003008019000000000228013f000005fa0220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011ab0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011a40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011bc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011b40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b000011cd0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011c50000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b000011de0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011d60000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b000011ef0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011e70000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012000000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f80000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012110000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012090000413d000000000a07004b000012200000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000122e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012270000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005f201000041000005f20430009c000000000301801900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001012001900000010d0000613d0000000a0100002917c3178d0000040f0000064002000041000000000020043900000008020000290000000400200443000900000001001d0000800a01000039000000240200003917c3159b0000040f0000000902000029000000000112004b0000000001000019000000010100a03917c316500000040f0000000b01000029000001e4021000390000000a0100002917c316680000040f000000000300003117c316940000040f0000064101000041000000400200043d0000000000120435000005f201000041000005f20320009c0000000001024019000000400110021000000642011001c7000017c40001042e000000380760008c000012d40000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000128b0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000012ee0000013d000000380760008c000013670000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012bd0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000013810000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000012dd0000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012f80000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014150000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013510000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000142e0000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000013700000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000138b0000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014d80000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013e40000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000014f10000013d0000001f0430018f0000000502300272000014050000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013fe0000413d000000000504004b000014130000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000141e0000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000005fa0a000041000000000b83004b000000000b000019000000000b0a8019000005fa08800197000005fa0c300197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009300039000005fa03000041000000000a49004b000000000a000019000000000a032019000005fa04400197000005fa0b900197000000000c4b004b000000000300801900000000044b013f000005fa0440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006250a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000014660000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b0000145f0000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000014750000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b0000146e0000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000014840000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b0000147d0000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000014950000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b0000148d0000413d000000000b06004b000014a40000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000014b20000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000014ab0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000005fb0510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005f201000041000005f20240009c0000000002010019000000000204401900000040022002100000000003030433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000014e10000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000005fa0a000041000000000b82004b000000000b000019000000000b0a8019000005fa08800197000005fa0c200197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009200039000005fa02000041000000000a49004b000000000a000019000000000a022019000005fa04400197000005fa0b900197000000000c4b004b000000000200801900000000044b013f000005fa0440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006320a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000015290000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015220000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000015380000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000015310000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000015470000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000015400000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000015580000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000015500000413d000000000b06004b000015670000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000015750000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000156e0000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000005fb0510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005f201000041000005f20340009c0000000003010019000000000304401900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d0000000003010019000005f2010000410000000004000414000005f20540009c0000000001044019000000c001100210000000600220021000000000011200190000064301100041000000000203001917c317b40000040f0000000102200190000015aa0000613d000000000101043b000000000001042d0000000001000019000017c50001043000000000030104330000000002320436000000000403004b000015b80000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000015b10000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000015ce0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000015c70000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a0000000003100031000005fa010000410000005f0230008c00000000020000190000000002012019000005fa04300197000000000504004b0000000001008019000005fa0440009c000000000102c019000000000101004b0000161b0000613d00000002010003670000004402100370000000000202043b000005fb0420009c0000161b0000213d0000000003230049000005fa04000041000002600530008c00000000050000190000000005044019000005fa03300197000000000603004b000000000400a019000005fa0330009c00000000030500190000000003046019000000000303004b0000161b0000c13d0000000003000411000080010330008c000016190000c13d0000000003000412000005fc033001970000000004000410000000000343004b000016190000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000161d0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005f202000041000005f20310009c0000000001028019000000c001100210000080010200003917c317af0000040f000000010300002900030000000103550000006001100270000105f20010019d000000200130011a00000001012001950000000101200190000016350000613d0000000001000019000017c40001042e0000000001000019000017c50001043000000000431200a900000000422300d9000000000112004b0000164a0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000160a0000613d000005f202000041000005f20410009c0000000001028019000000c00110021000000632011001c700008009020000390000800104000039000000000500001917c317af0000040f0000000003000415000000020330008a00000020033000c9000016120000013d000000400100043d00000064021000390000064403000041000000000032043500000044021000390000064503000041000000000032043500000024021000390000002503000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c5000104300000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000000101004b000016530000613d000000000001042d000000400100043d00000064021000390000064603000041000000000032043500000044021000390000064703000041000000000032043500000024021000390000002203000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000000300003100000000041300490000001f0540008a0000000204000367000000000224034f000000000202043b000005fa06000041000000000752004b00000000070000190000000007064019000005fa05500197000005fa08200197000000000958004b000000000600a019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b000016920000613d0000000001120019000000000214034f000000000202043b000005fb0420009c000016920000213d00000000032300490000002001100039000005fa04000041000000000531004b00000000050000190000000005042019000005fa03300197000005fa06100197000000000736004b0000000004008019000000000336013f000005fa0330009c00000000030500190000000003046019000000000303004b000016920000c13d000000000001042d0000000001000019000017c500010430000006480420009c000016c60000813d0000003f04200039000000200500008a000000000554016f000000400400043d0000000005540019000000000645004b00000000060000190000000106004039000005fb0750009c000016c60000213d0000000106600190000016c60000c13d000000400050043f00000000042404360000000005120019000000000335004b000016cc0000213d0000001f0320018f00000002011003670000000505200272000016b40000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000016ac0000413d000000000603004b000016c30000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f000000000015043500000000012400190000000000010435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c5000104300000000001000019000017c5000104300000000001000411000080010110008c000016d20000613d000000000001042d0000063d0100004100000000001004350000000101000039000000040010043f0000063e01000041000017c50001043000000000070200190000000008450019000005f2024001970000000202200367000000000403004b000016f40000613d000000000458004b0000170b0000413d0000000004000031000000000584004b0000170b0000413d000005fe0510009c000017110000813d0000000004840049000005f20440019700000000024203df000000c001100210000006210110019700000649011001c700000000011203af000000000206004b0000000005000019000000010500c03900008009020000390000000004070019000000000600001917c317b90000040f000017060000013d000000000358004b0000170b0000413d0000000003000031000000000483004b0000170b0000413d00000649040000410000063305000041000000000606004b0000000004056019000000c0011002100000062101100197000000000114019f0000000003830049000005f20330019700000000023203df00000000011203af000000000207001917c317b90000040f00030000000103550000006001100270000105f20010019d000000010120018f000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c5000104300000000102000031000000000101004b0000176c0000613d000006480120009c000017660000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000005fb0530009c000017660000213d0000000104400190000017660000c13d000000400030043f00000000032104360000001f042000390000000504400272000017440000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000173c0000413d000000000400004b000017460000613d0000000104000031000000000442004b0000178b0000213d00000003050003670000001f0420018f0000000502200272000017560000613d000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000726004b0000174e0000413d000000000604004b000017650000613d0000000502200210000000000525034f00000000022300190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c50001043000000003010003670000001f0420018f0000000503200272000017780000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000635004b000017710000413d000000000504004b000017860000613d00000003044002100000000503300210000000000503043300000000054501cf000000000545022f000000000131034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f201000041000005f20320009c00000000010240190000006001100210000017c5000104300000000001000019000017c500010430000000e0031000390000000202000367000000000332034f000000000303043b000005fc03300198000017970000613d0000012001100039000000000112034f000000000101043b000017a80000013d000000a003100039000000000332034f0000006004100039000000000442034f000000000404043b000000000503043b00000000634500a9000000000605004b000017a30000613d00000000655300d9000000000445004b000017a90000c13d0000012001100039000000000112034f000000000101043b000000000131001a000017a90000413d000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000017b2002104210000000102000039000000000001042d0000000002000019000000000001042d000017b7002104230000000102000039000000000001042d0000000002000019000000000001042d000017bc002104210000000102000039000000000001042d0000000002000019000000000001042d000017c1002104230000000102000039000000000001042d0000000002000019000000000001042d000017c300000432000017c40001042e000017c5000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f19010000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002000002000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706575650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c000000000000000000000000000000000000000000000001000000000000000001000001000000000000000000000000000000000000000000000000000000008f19edac323ff4d08b76da2079015d4dfbe240eda064363680b7748cc46bf8dd", - "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006003300270000005f20430019700030000004103550002000000010355000005f20030019d000100000000001f0000008005000039000000400050043f0000000101200190000000390000c13d0000000004000031000000040140008c000000410000413d0000000201000367000000000201043b000000e002200270000005f40320009c000000450000a13d000005f50320009c000000a90000613d000005f60320009c000000ea0000613d000005f70220009c000000a60000c13d000000040240008a000005fa03000041000000200420008c00000000040000190000000004034019000005fa05200197000000000605004b000000000300a019000005fa0550009c000000000304c019000000000303004b0000010d0000c13d0000000401100370000000000101043b000005fb0310009c0000010d0000213d0000000001120049000005fa02000041000002600310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b000000430000613d0000010d0000013d0000000001000416000000000101004b0000010d0000c13d000000200100003900000100001004430000012000000443000005f301000041000017c40001042e000000000104004b000000a60000c13d0000000001000019000017c40001042e000005f80320009c000000eb0000613d000005f90220009c000000a60000c13d000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000005fb0320009c0000010d0000213d00000004052000390000000003540049000005fa06000041000002600730008c00000000070000190000000007064019000005fa03300197000000000803004b000000000600a019000005fa0330009c00000000030700190000000003066019000000000303004b0000010d0000c13d0000000003000411000080010330008c000000430000c13d0000000003000412000005fc063001970000000003000410000000000636004b000000430000c13d0000022406200039000000000661034f0000000007240049000000230770008a000000000606043b000005fa08000041000000000976004b00000000090000190000000009088019000005fa07700197000005fa0a600197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000005560019000000000651034f000000000606043b000005fb0760009c0000010d0000213d00000000076400490000002004500039000005fa08000041000000000974004b00000000090000190000000009082019000005fa07700197000005fa0a400197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d000000030760008c000002230000213d0000060501000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000061d01000041000000c40010043f0000061e01000041000000e40010043f0000061c01000041000017c50001043017c316ce0000040f0000000001000019000017c40001042e000000040240008a000005fa03000041000000600620008c00000000060000190000000006034019000005fa02200197000000000702004b000000000300a019000005fa0220009c00000000020600190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000702043b000005fb0270009c0000010d0000213d00000004067000390000000002640049000005fa03000041000002600820008c00000000080000190000000008034019000005fa02200197000000000902004b000000000300a019000005fa0220009c00000000020800190000000002036019000000000202004b0000010d0000c13d0000000002000411000080010220008c000000430000c13d0000000002000412000005fc022001970000000003000410000000000232004b000000430000c13d0000012402700039000000000321034f0000004402700039000000000221034f000000000202043b000005fc02200197000000000303043b000005fd0830009c000001310000413d00000044015000390000060402000041000000000021043500000024015000390000000802000039000000000021043500000605010000410000000000150435000000040150003900000020020000390000000000210435000005f201000041000005f20250009c0000000001054019000000400110021000000606011001c7000017c50001043017c315d50000040f000000040240008a000005fa03000041000000600520008c00000000050000190000000005034019000005fa02200197000000000602004b000000000300a019000005fa0220009c00000000020500190000000002036019000000000202004b0000010d0000c13d0000004402100370000000000202043b000b00000002001d000005fb0220009c0000010d0000213d0000000b020000290000000402200039000a00000002001d0000000002240049000005fa03000041000002600420008c00000000040000190000000004034019000005fa02200197000000000502004b000000000300a019000005fa0220009c00000000020400190000000002036019000000000202004b0000010f0000613d0000000001000019000017c5000104300000002401100370000000000101043b000900000001001d0000000001000411000080010110008c000000430000c13d0000000001000412000005fc011001970000000002000410000800000002001d000000000121004b000000430000c13d0000000002000414000000400100043d00000020031000390000061f0400004100000000004304350000000b030000290000010403300039000700000003001d0000000203300367000000000303043b0000002404100039000000000034043500000024030000390000000000310435000006200310009c0000015e0000413d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c500010430000001c405700039000000000551034f0000000007740049000000230770008a000000000505043b000005fa08000041000000000975004b00000000090000190000000009088019000005fa07700197000005fa0a500197000000000b7a004b000000000800801900000000077a013f000005fa0770009c00000000070900190000000007086019000000000707004b0000010d0000c13d0000000006650019000000000161034f000000000501043b000005fb0150009c0000010d0000213d00000000015400490000002004600039000005fa06000041000000000714004b00000000070000190000000007062019000005fa01100197000005fa08400197000000000918004b0000000006008019000000000118013f000005fa0110009c00000000010700190000000001066019000000000101004b0000010d0000c13d0000000001000414000005fe0610009c000002360000413d000000400500043d000000d90000013d0000006003100039000000400030043f0000000004010433000005fe0540009c000001740000413d00000605020000410000000000230435000000a40210003900000604040000410000000000420435000000840210003900000008040000390000000000420435000000640110003900000020020000390000000000210435000005f201000041000005f20230009c0000000001034019000000400110021000000606011001c7000017c500010430000000c0022002100000062102200197000000400110021000000622011000410000062301100197000000000112019f00000060024002100000062402200197000000000121019f00000625011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001917c317af0000040f00030000000103550000006001100270000105f20010019d000005f2041001970000003f014000390000062605100197000000400100043d0000000003150019000000000553004b00000000050000190000000105004039000005fb0630009c0000012b0000213d00000001055001900000012b0000c13d000000400030043f00000000034104360000001f054000390000000505500272000001a30000613d00000000060000310000000206600367000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000019b0000413d000000000500004b000001a50000613d0000000105000031000000000554004b0000010d0000213d00000003060003670000001f0540018f0000000504400272000001b50000613d000000000700001900000005087002100000000009830019000000000886034f000000000808043b00000000008904350000000107700039000000000847004b000001ad0000413d000000000705004b000001c40000613d0000000504400210000000000646034f00000000044300190000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001022001900000025b0000613d0000000901000029000000000101004b000012520000c13d00000002010003670000000a02000029000000000221034f000000000202043b000000000302004b0000028f0000c13d0000000702000029000000000121034f000000000101043b000000800210008c000002cf0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c000000000200001900000001020020390000000002230019000000200300008a0000004104200039000000000334016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f000000020320003900000009040000290000000003340436000000210420003900000005044002720000020e0000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000002060000413d000000000400004b000002100000613d00000009040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c0000000001002019000000090200002900000021022000390000000000120435000004260000013d000000000441034f000000000404043b000005ff04400197000006070740009c000002650000c13d000000430460008c000002710000213d0000060501000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000061a01000041000000c40010043f0000061b01000041000000e40010043f0000061c01000041000017c500010430000080060620008c00000000060000190000024a0000c13d000000040650008c00000000060000190000024a0000413d00000001060000390000000207400367000000000707043b000005ff07700197000006000870009c000002490000613d000006010870009c000002490000613d000006020870009c000002490000613d000006030670009c00000000060000190000000106006039000000010660018f17c316d80000040f17c317230000040f0000000002010019000000400100043d000b00000001001d17c315bf0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c40001042e0000000001010433000005f202000041000005f20410009c0000000001028019000005f20430009c000000000203401900000040022002100000006001100210000000000121019f000017c500010430000006080140009c000000430000613d0000060501000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000060901000041000000c40010043f0000060a01000041000017c5000104300000002404500039000000000441034f000000000404043b000b00000004001d000005fc0440009c0000010d0000213d000000e402200039000000000221034f0000004404500039000000000141034f000000000101043b000a00000001001d000000000102043b0000060b02000041000000800020043f000005fc02300197000800000002001d000000840020043f000005fc01100197000900000001001d000000a40010043f00000000010004140000000b02000029000000040220008c000003480000c13d0000000103000031000000200130008c00000020040000390000000004034019000003740000013d000000710320008c000002ec0000c13d000000230200008a0000000b030000290000000004320049000001c402300039000000000221034f000000000302043b0000000002000031000900000004001d0000000004420019000005fa05000041000000000643004b00000000060000190000000006058019000005fa04400197000005fa07300197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000003430019000000000131034f000000000101043b000005fb0410009c0000010d0000213d00000000021200490000002003300039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d00000000020004140000000004310019000000000114004b00000000010000190000000101004039000005f2033001970000000101100190000002c90000c13d0000000001000031000000000541004b000007130000813d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400200043d000900000002001d0000062a0220009c0000012b0000213d00000009030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000002db0000413d00000009030000290000000003030433000000000303004b0000041d0000c13d0000063d0100004100000000001004350000003201000039000000040010043f0000063e01000041000017c500010430000000020120008c0000039b0000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005580000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003350000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000032d0000413d000000000500004b000003370000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000005750000013d000005f202000041000005f20310009c0000000001028019000000c0011002100000060c011001c70000000b0200002917c317b40000040f00000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003610000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000003590000413d000000000705004b000003700000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000003f70000613d0000001f01400039000000600410018f00000080014001bf000000400010043f000000200230008c0000010d0000413d000000800200043d0000000a03000029000000000232004b000000430000813d000000a0024000390000060d030000410000000000320435000000a40340003900000009050000290000000000530435000000c40340003900000000000304350000004403000039000400000003001d00000000003104350000014003400039000000400030043f00000120034000390000060e05000041000000000053043500000100044001bf0000002003000039000600000003001d000500000004001d0000000000340435000000000301043300000000010004140000000b04000029000000040440008c000004f70000c13d00000001020000390000000101000031000005080000013d000000010120008c000004770000c13d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000201043b000000800120008c000005ea0000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000003e40000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003dc0000413d000000000500004b000003e60000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000006070000013d000000400200043d0000001f0430018f0000000503300272000004040000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003fc0000413d000000000504004b000004130000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f00000000001204350000000b01000029000000a4011000390000000201100367000000000201043b000000800120008c000004890000413d00000080012002700000062c0320009c000000000102a0190000062c0320009c0000000003000019000000100300203900000008043001bf000005fb0510009c00000000030420190000004004100270000005fb0510009c000000000104201900000004043001bf000005f20510009c00000000030420190000002004100270000005f20510009c000000000104201900000002043001bf0000ffff0510008c000000000304201900000010041002700000000001042019000000ff0110008c000000000100001900000001010020390000000003130019000000200100008a0000004104300039000000000414016f000000400100043d0000000004410019000000000514004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000441043600000021053000390000000505500272000004640000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000045c0000413d000000000500004b000004660000613d0000000005010433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000023201cf000000ff0330008c000000000200201900000021031000390000000000230435000004a60000013d000000400100043d00000044021000390000062703000041000000000032043500000024021000390000001703000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000004930000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f00000000002304350000000b0200002900000064022000390000000202200367000000000302043b000000800230008c000006570000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000004e40000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000004dc0000413d000000000600004b000004e60000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000006740000013d000005f204000041000005f20530009c000000000304801900000060033002100000004002200210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000700000003001d000000000301004b000005280000c13d00000007010000290000000031010434000300000003001d000000000202004b000005c50000c13d000000000201004b000007080000c13d000000400300043d000b00000003001d000006050100004100000000001304350000000401300039000000060200002900000000002104350000002402300039000000050100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000700000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000007030000290000000001130436000000030300036700000001050000310000001f0450018f0000000505500272000005480000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000005400000413d000000000604004b0000050c0000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000050c0000013d000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005620000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000302043b000000800230008c000007280000413d00000080023002700000062c0430009c000000000203a0190000062c0430009c0000000004000019000000100400203900000008054001bf000005fb0620009c00000000040520190000004005200270000005fb0620009c000000000205201900000004054001bf000005f20620009c00000000040520190000002005200270000005f20620009c000000000205201900000002054001bf0000ffff0620008c000000000405201900000010052002700000000002052019000000ff0220008c000000000200001900000001020020390000000004240019000000200200008a0000004105400039000000000525016f000000400200043d0000000005520019000000000625004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000552043600000021064000390000000506600272000005b20000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b000005aa0000413d000000000600004b000005b40000613d0000000006020433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000034301cf000000ff0440008c000000000300201900000021042000390000000000340435000007450000013d000000000201004b000009f20000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000009ee0000c13d000000400100043d00000044021000390000061903000041000000000032043500000024021000390000001d03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400100043d0000062a0310009c0000012b0000213d0000004003100039000000400030043f0000000103000039000000000331043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000005f40000413d0000000004010433000000000404004b000002e60000613d000000f804200210000005fa05000041000000000202004b0000000002040019000000000205601900000000040304330000062b04400197000000000224019f000000000023043500000007020000290000000202200367000000000202043b000000800320008c000007960000413d00000080032002700000062c0420009c000000000302a0190000062c0420009c0000000004000019000000100400203900000008054001bf000005fb0630009c00000000040520190000004005300270000005fb0630009c000000000305201900000004054001bf000005f20630009c00000000040520190000002005300270000005f20630009c000000000305201900000002054001bf0000ffff0630008c000000000405201900000010053002700000000003052019000000ff0330008c000000000300001900000001030020390000000004340019000000200300008a0000004105400039000000000535016f000000400300043d0000000005530019000000000635004b00000000060000190000000106004039000005fb0750009c0000012b0000213d00000001066001900000012b0000c13d000000400050043f0000000205400039000000000553043600000021064000390000000506600272000006440000613d0000000007000031000000020770036700000000080000190000000509800210000000000a950019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000063c0000413d000000000600004b000006460000613d0000000006030433000000000606004b000002e60000613d00000000060504330000062b06600197000000f807400210000000000667019f0000062d0660004100000000006504350000000304400210000000f80440008900000000024201cf000000ff0440008c000000000200201900000021043000390000000000240435000007b30000013d000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000006610000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f0000000000340435000000400300043d000700000003001d00000020043000390000000003010433000000000503004b000006820000613d000000000500001900000000064500190000002005500039000000000715001900000000070704330000000000760435000000000635004b0000067b0000413d000000000143001900000000000104350000000004020433000000000504004b0000068f0000613d000000000500001900000000061500190000002005500039000000000725001900000000070704330000000000760435000000000645004b000006880000413d000000000114001900000000000104350000000001340019000000070300002900000000001304350000003f01100039000000200200008a000300000002001d000000000121016f0000000002310019000000000112004b00000000010000190000000101004039000600000002001d000005fb0220009c0000012b0000213d00000001011001900000012b0000c13d0000000601000029000000400010043f0000062a0110009c0000012b0000213d0000000b0400002900000044014000390000000201100367000000000101043b00000006050000290000004002500039000000400020043f00000020025000390000062e0300004100000000003204350000001502000039000000000025043500000021025000390000006001100210000000000012043500000124014000390000000201100367000000000101043b000000800210008c00000b8d0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000223001900000041032000390000000304000029000000000343016f000000400400043d0000000003340019000500000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000002032000390000000504000029000000000334043600000021042000390000000504400272000006f30000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006eb0000413d000000000400004b000006f50000613d00000005040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062d0440004100000000004304350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000005020000290000002102200039000000000012043500000bad0000013d000005f2020000410000000304000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c5000104300000000203300367000005fe0520009c000008040000413d000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400200043d0000062a0420009c0000012b0000213d0000004004200039000000400040043f0000000104000039000000000442043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007320000413d0000000005020433000000000505004b000002e60000613d000000f805300210000005fa06000041000000000303004b0000000003050019000000000306601900000000050404330000062b05500197000000000335019f00000000003404350000000b03000029000000c4033000390000000203300367000000000303043b000000800430008c00000a2f0000413d00000080043002700000062c0530009c000000000403a0190000062c0530009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007830000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000077b0000413d000000000700004b000007850000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000035301cf000000ff0550008c00000000030020190000002105400039000000000035043500000a4c0000013d000000400300043d0000062a0430009c0000012b0000213d0000004004300039000000400040043f0000000104000039000000000443043600000000050000310000000205500367000000000600001900000005076002100000000008740019000000000775034f000000000707043b0000000000780435000000010660003a000007a00000413d0000000005030433000000000505004b000002e60000613d000000f805200210000005fa06000041000000000202004b0000000002050019000000000206601900000000050404330000062b05500197000000000225019f00000000002404350000000b02000029000000a4022000390000000202200367000000000202043b000000800420008c00000b1f0000413d00000080042002700000062c0520009c000000000402a0190000062c0520009c0000000005000019000000100500203900000008065001bf000005fb0740009c00000000050620190000004006400270000005fb0740009c000000000406201900000004065001bf000005f20740009c00000000050620190000002006400270000005f20740009c000000000406201900000002065001bf0000ffff0740008c000000000506201900000010064002700000000004062019000000ff0440008c000000000400001900000001040020390000000005450019000000200400008a0000004106500039000000000646016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000005fb0860009c0000012b0000213d00000001077001900000012b0000c13d000000400060043f0000000206500039000000000664043600000021075000390000000507700272000007f10000613d000000000800003100000002088003670000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000007e90000413d000000000700004b000007f30000613d0000000007040433000000000707004b000002e60000613d00000000070604330000062b07700197000000f808500210000000000778019f0000062d0770004100000000007604350000000305500210000000f80550008900000000025201cf000000ff0550008c00000000020020190000002105400039000000000025043500000b3c0000013d0000000001410049000005f20110019700000000011303df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f2033001970003000000010355000000010220019000000a9d0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f0430003900000005044002720000082f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000008270000413d000000000400004b000008310000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000008410000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000008390000413d000000000604004b000008500000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000004000031000000090200002900000000052400190000000b0200002900000204032000390000000202000367000000000332034f000000000303043b000005fa06000041000000000753004b00000000070000190000000007068019000005fa05500197000005fa08300197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b0000010d0000c13d0000000001010433000600000001001d0000000a010000290000000001130019000000000312034f000000000503043b000005fb0350009c0000010d0000213d000000050350021000000000043400490000002006100039000005fa01000041000000000746004b00000000070000190000000007012019000005fa04400197000005fa08600197000000000948004b0000000001008019000000000448013f000005fa0440009c000000000107c019000000000101004b0000010d0000c13d000000400100043d000000200410003900000634055001980000088f0000613d000000000262034f000000000600001900000005076002100000000008740019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b000008870000413d000000000200004b000008910000613d00000000003104350000003f02300039000000200300008a000000000232016f0000000002210019000000000312004b00000000030000190000000103004039000005fb0520009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f000005f202000041000005f20340009c0000000003020019000000000304401900000040033002100000000001010433000005f20410009c00000000010280190000006001100210000000000131019f0000000003000414000005f20430009c0000000002034019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d0000000002000031000000090300002900000000053200190000000b0300002900000224043000390000000203000367000000000443034f000000000404043b000005fa06000041000000000754004b00000000070000190000000007068019000005fa05500197000005fa08400197000000000958004b0000000006008019000000000558013f000005fa0550009c00000000050700190000000005066019000000000101043b000900000001001d000000000105004b0000010d0000c13d0000000a010000290000000004140019000000000143034f000000000101043b000005fb0310009c0000010d0000213d00000000021200490000002003400039000005fa04000041000000000523004b00000000050000190000000005042019000005fa02200197000005fa06300197000000000726004b0000000004008019000000000226013f000005fa0220009c00000000020500190000000002046019000000000202004b0000010d0000c13d0000000002000414000000000131001a000005f204300197000002c90000413d0000000003000031000000000513004b000002c90000413d0000000204400367000005f20520009c000007160000213d0000000001130049000005f20110019700000000011403df000000c002200210000006210220019700000633022001c700000000012103af000080100200003917c317be0000040f00000000030100190000006003300270000105f20030019d000005f20330019700030000000103550000000102200190000013fa0000613d0000003f013000390000062601100197000000400200043d0000000001120019000000000421004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f00000000013204360000001f043000390000000504400272000009150000613d00000000050000310000000205500367000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000090d0000413d000000000400004b000009170000613d0000000104000031000000000443004b0000010d0000213d00000003050003670000001f0430018f0000000503300272000009270000613d000000000600001900000005076002100000000008710019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b0000091f0000413d000000000604004b000009360000613d0000000503300210000000000535034f00000000033100190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000002020433000000200220008c00000ca40000c13d0000000b0a0000290000006402a000390000000203000367000000000523034f0000004402a00039000000000423034f0000002402a00039000000000623034f0000008402a00039000000a407a00039000000c408a00039000000e409a00039000001240aa00039000000000aa3034f000000070b000029000000000bb3034f000000000993034f000000000883034f000000000773034f000000000c23034f0000000a02000029000000000223034f000000000202043b000000000306043b000000000404043b000000000505043b00000000060c043b000000000707043b000000000808043b000000000909043b000000000b0b043b000000000a0a043b000000000c010433000000400100043d000001c00d1000390000000000cd0435000001a00c100039000000090d0000290000000000dc0435000001800c100039000000060d0000290000000000dc0435000001600c1000390000000000ac0435000001400a1000390000000000ba0435000001200a10003900000000009a043500000100091000390000000000890435000000e0081000390000000000780435000000c0071000390000000000670435000000a0061000390000000000560435000000800510003900000000004504350000006004100039000000000034043500000040031000390000000000230435000000200210003900000636030000410000000000320435000001c0030000390000000000310435000006370310009c0000012b0000213d000001e003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000700000001001d000000400100043d000900000001001d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d00000009040000290000002002400039000000000101043b000006380300004100000000003204350000008003400039000000000013043500000060014000390000063903000041000000000031043500000040014000390000063a030000410000000000310435000000800100003900000000001404350000063b0140009c0000012b0000213d0000000904000029000000a001400039000000400010043f000005f201000041000005f20320009c000000000201801900000040022002100000000003040433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001022001900000010d0000613d000000000301043b000000400100043d00000042021000390000000704000029000000000042043500000020021000390000063c0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000006150310009c0000012b0000213d0000008003100039000000400030043f000005f203000041000005f20420009c000000000203801900000040022002100000000001010433000005f20410009c00000000010380190000006001100210000000000121019f0000000002000414000005f20420009c0000000002038019000000c002200210000000000112019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d00000007010000290000000001010433000000000201004b00000a1c0000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000003010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a1c0000c13d000000400100043d00000064021000390000061703000041000000000032043500000044021000390000061803000041000000000032043500000024021000390000002a03000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400300043d0000002401300039000000090200002900000000002104350000060b010000410000000000130435000700000003001d00000004013000390000000802000029000000000021043500000000010004140000000b02000029000000040220008c00000ab80000c13d0000000103000031000000200130008c0000002004000039000000000403401900000aeb0000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000a390000413d0000000006040433000000000606004b000002e60000613d000000f806300210000005fa07000041000000000303004b0000000003060019000000000307601900000000060504330000062b06600197000000000336019f00000000003504350000000b03000029000000a4033000390000000203300367000000000303043b000000800530008c00000c220000413d00000080053002700000062c0630009c000000000503a0190000062c0630009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000a8a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000a820000413d000000000800004b00000a8c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000036301cf000000ff0660008c00000000030020190000002106500039000000000036043500000c3f0000013d0000001f0430018f000000050230027200000aa80000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000aa10000413d000000000504004b00000ab60000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000005f202000041000005f20310009c00000000010280190000000704000029000005f20340009c00000000020440190000004002200210000000c001100210000000000121019f00000611011001c70000000b0200002917c317b40000040f000000070a00002900000000030100190000006003300270000005f203300197000000200430008c000000200400003900000000040340190000001f0540018f000000050640027200000ad70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000acf0000413d000000000705004b00000ae70000613d0000000506600210000000000761034f000000070800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000bfc0000613d0000001f01400039000000600210018f00000007010000290000000001120019000000000221004b00000000020000190000000102004039000005fb0410009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000000200230008c0000010d0000413d00000007020000290000000002020433000000000202004b00000c900000c13d00000044021000390000000a03000029000000000032043500000020021000390000060d03000041000000000032043500000024031000390000000904000029000000000043043500000004030000290000000000310435000006150310009c0000012b0000213d0000008003100039000a00000003001d000000400030043f000006160310009c0000012b0000213d000000c003100039000000400030043f00000006030000290000000a040000290000000000340435000000a0031000390000060e040000410000000000430435000000000301043300000000010004140000000b04000029000000040440008c00000db20000c13d0000000102000039000000010100003100000dc50000013d000000400400043d0000062a0540009c0000012b0000213d0000004005400039000000400050043f0000000105000039000000000554043600000000060000310000000206600367000000000700001900000005087002100000000009850019000000000886034f000000000808043b0000000000890435000000010770003a00000b290000413d0000000006040433000000000606004b000002e60000613d000000f806200210000005fa07000041000000000202004b0000000002060019000000000207601900000000060504330000062b06600197000000000226019f00000000002504350000000b0200002900000064022000390000000202200367000000000202043b000000800520008c00000cb60000413d00000080052002700000062c0620009c000000000502a0190000062c0620009c0000000006000019000000100600203900000008076001bf000005fb0850009c00000000060720190000004007500270000005fb0850009c000000000507201900000004076001bf000005f20850009c00000000060720190000002007500270000005f20850009c000000000507201900000002076001bf0000ffff0850008c000000000607201900000010075002700000000005072019000000ff0550008c000000000500001900000001050020390000000006560019000000200500008a0000004107600039000000000757016f000000400500043d0000000007750019000000000857004b00000000080000190000000108004039000005fb0970009c0000012b0000213d00000001088001900000012b0000c13d000000400070043f000000020760003900000000077504360000002108600039000000050880027200000b7a0000613d00000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b00000b720000413d000000000800004b00000b7c0000613d0000000008050433000000000808004b000002e60000613d00000000080704330000062b08800197000000f809600210000000000889019f0000062d0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000002106500039000000000026043500000cd30000013d000000400200043d000500000002001d0000062a0220009c0000012b0000213d00000005030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a00000b990000413d00000005030000290000000003030433000000000303004b000002e60000613d000000f803100210000005fa04000041000000000101004b0000000001030019000000000104601900000000030204330000062b03300197000000000113019f0000000000120435000000230100008a0000000b020000290000000004210049000001c4012000390000000202000367000200000001001d000000000112034f000000000101043b0000000003000031000100000004001d0000000004430019000005fa05000041000000000641004b00000000060000190000000006058019000005fa04400197000005fa07100197000000000847004b0000000005008019000000000447013f000005fa0440009c00000000040600190000000004056019000000000404004b0000010d0000c13d0000000a040000290000000004410019000000000142034f000000000101043b000005fb0510009c0000010d0000213d00000000051300490000002003400039000005fa04000041000000000653004b00000000060000190000000006042019000005fa05500197000005fa07300197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d000000010410008c00000ee40000c13d000000000132034f000000000101043b000000010200008a000005fa03000041000000000221004b00000000020000190000000002032019000005fa01100197000005fa0410009c0000000003008019000005fa01100167000005fa0110009c000000000102001900000000010360190000006002000039000400000002001d000000000101004b000010420000c13d000000400100043d000400000001001d0000062a0110009c0000012b0000213d00000004030000290000004001300039000000400010043f00000020013000390000062d02000041000000000021043500000001010000390000000000130435000010420000013d000000400200043d0000001f0430018f000000050330027200000c090000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b00000c010000413d000000000504004b00000c180000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f2010000410000000103000031000005f20430009c0000000003018019000005f20420009c000000000102401900000040011002100000006002300210000000000112019f000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000c2c0000413d0000000007050433000000000707004b000002e60000613d000000f807300210000005fa08000041000000000303004b0000000003070019000000000308601900000000070604330000062b07700197000000000337019f00000000003604350000000b0300002900000064033000390000000203300367000000000303043b000000800630008c00000d340000413d00000080063002700000062c0730009c000000000603a0190000062c0730009c0000000007000019000000100700203900000008087001bf000005fb0960009c00000000070820190000004008600270000005fb0960009c000000000608201900000004087001bf000005f20960009c00000000070820190000002008600270000005f20960009c000000000608201900000002087001bf0000ffff0960008c000000000708201900000010086002700000000006082019000000ff0660008c000000000600001900000001060020390000000007670019000000200600008a0000004108700039000000000868016f000000400600043d0000000008860019000000000968004b00000000090000190000000109004039000005fb0a80009c0000012b0000213d00000001099001900000012b0000c13d000000400080043f000000020870003900000000088604360000002109700039000000050990027200000c7d0000613d000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb00039000000000c9b004b00000c750000413d000000000900004b00000c7f0000613d0000000009060433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062d0990004100000000009804350000000307700210000000f80770008900000000037301cf000000ff0770008c00000000030020190000002107600039000000000037043500000d510000013d00000064021000390000061203000041000000000032043500000044021000390000061303000041000000000032043500000024021000390000003603000039000000000032043500000605020000410000000000210435000000040210003900000006030000290000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000400100043d00000044021000390000063503000041000000000032043500000024021000390000001f03000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c500010430000000400500043d0000062a0650009c0000012b0000213d0000004006500039000000400060043f000000010600003900000000066504360000000007000031000000020770036700000000080000190000000509800210000000000a960019000000000997034f000000000909043b00000000009a0435000000010880003a00000cc00000413d0000000007050433000000000707004b000002e60000613d000000f807200210000005fa08000041000000000202004b0000000002070019000000000208601900000000070604330000062b07700197000000000227019f0000000000260435000000400600043d0000062a0260009c0000012b0000213d0000000b0900002900000044029000390000000202200367000000000202043b0000004007600039000000400070043f00000020076000390000062e0800004100000000008704350000001507000039000000000076043500000021076000390000006002200210000000000027043500000124029000390000000202200367000000000202043b000000800720008c00000e150000413d00000080072002700000062c0820009c000000000702a0190000062c0820009c0000000008000019000000100800203900000008098001bf000005fb0a70009c00000000080920190000004009700270000005fb0a70009c000000000709201900000004098001bf000005f20a70009c00000000080920190000002009700270000005f20a70009c000000000709201900000002098001bf0000ffff0a70008c000000000809201900000010097002700000000007092019000000ff0770008c000000000700001900000001070020390000000008780019000000200700008a0000004109800039000000000979016f000000400700043d0000000009970019000000000a79004b000000000a000019000000010a004039000005fb0b90009c0000012b0000213d000000010aa001900000012b0000c13d000000400090043f00000002098000390000000009970436000000210a800039000000050aa0027200000d210000613d000000000b000031000000020bb00367000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b00000d190000413d000000000a00004b00000d230000613d000000000a070433000000000a0a004b000002e60000613d000000000a0904330000062b0aa00197000000f80b800210000000000aab019f0000062d0aa000410000000000a904350000000308800210000000f80880008900000000028201cf000000ff0880008c00000000020020190000002108700039000000000028043500000e320000013d000000400600043d0000062a0760009c0000012b0000213d0000004007600039000000400070043f00000001070000390000000007760436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a00000d3e0000413d0000000008060433000000000808004b000002e60000613d000000f808300210000005fa09000041000000000303004b0000000003080019000000000309601900000000080704330000062b08800197000000000338019f0000000000370435000000400700043d0000062a0370009c0000012b0000213d0000000b0a0000290000004403a000390000000203300367000000000303043b0000004008700039000000400080043f00000020087000390000062e090000410000000000980435000000150800003900000000008704350000002108700039000000600330021000000000003804350000012403a000390000000203300367000000000303043b000000800830008c00000f470000413d00000080083002700000062c0930009c000000000803a0190000062c0930009c00000000090000190000001009002039000000080a9001bf000005fb0b80009c00000000090a2019000000400a800270000005fb0b80009c00000000080a2019000000040a9001bf000005f20b80009c00000000090a2019000000200a800270000005f20b80009c00000000080a2019000000020a9001bf0000ffff0b80008c00000000090a2019000000100a80027000000000080a2019000000ff0880008c000000000800001900000001080020390000000009890019000000200800008a000000410a900039000000000a8a016f000000400800043d000000000aa80019000000000b8a004b000000000b000019000000010b004039000005fb0ca0009c0000012b0000213d000000010bb001900000012b0000c13d0000004000a0043f000000020a900039000000000aa80436000000210b900039000000050bb0027200000d9f0000613d000000000c000031000000020cc00367000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000d970000413d000000000b00004b00000da10000613d000000000b080433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c900210000000000bbc019f0000062d0bb000410000000000ba04350000000309900210000000f80990008900000000039301cf000000ff0990008c00000000030020190000002109800039000000000039043500000f640000013d000005f204000041000005f20520009c00000000020480190000004002200210000005f20530009c00000000030480190000006003300210000000000223019f000005f20310009c0000000001048019000000c001100210000000000112019f0000000b0200002917c317af0000040f000000010220018f00030000000103550000006001100270000105f20010019d000005f2011001970000006003000039000900000003001d000000000301004b00000de50000c13d00000009010000290000000031010434000800000003001d000000000202004b00000f1a0000c13d000000000201004b000011110000c13d000000400300043d000b00000003001d0000060501000041000000000013043500000004013000390000000602000029000000000021043500000024023000390000000a0100002917c315ac0000040f0000000b040000290000000001410049000005f202000041000005f20310009c0000000001028019000005f20340009c000000000204401900000040022002100000006001100210000000000121019f000017c500010430000005fb0310009c0000012b0000213d0000003f03100039000000200400008a000000000343016f000000400400043d0000000003340019000900000004001d000000000443004b00000000040000190000000104004039000005fb0530009c0000012b0000213d00000001044001900000012b0000c13d000000400030043f00000009030000290000000001130436000000030300036700000001050000310000001f0450018f000000050550027200000e050000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b00000dfd0000413d000000000604004b00000dc90000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000dc90000013d000000400700043d0000062a0870009c0000012b0000213d0000004008700039000000400080043f0000000108000039000000000887043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a00000e1f0000413d0000000009070433000000000909004b000002e60000613d000000f809200210000005fa0a000041000000000202004b000000000209001900000000020a601900000000090804330000062b09900197000000000229019f0000000000280435000000400200043d00000020092000390000000008010433000000000a08004b00000e3f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c1a0019000000000c0c04330000000000cb0435000000000b8a004b00000e380000413d00000000019800190000000000010435000000000128001900000020091000390000000008030433000000000a08004b00000e4e0000613d000000000a000019000000000b9a0019000000200aa00039000000000c3a0019000000000c0c04330000000000cb0435000000000b8a004b00000e470000413d00000000039800190000000000030435000000000118001900000020081000390000000003040433000000000903004b00000e5d0000613d0000000009000019000000000a8900190000002009900039000000000b490019000000000b0b04330000000000ba0435000000000a39004b00000e560000413d00000000048300190000000000040435000000000113001900000020041000390000000003050433000000000803004b00000e6c0000613d000000000800001900000000094800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000938004b00000e650000413d00000000044300190000000000040435000000000113001900000020041000390000000003060433000000000503004b00000e7b0000613d000000000500001900000000084500190000002005500039000000000965001900000000090904330000000000980435000000000835004b00000e740000413d00000000044300190000000000040435000000000113001900000020041000390000000003070433000000000503004b00000e8a0000613d000000000500001900000000064500190000002005500039000000000875001900000000080804330000000000860435000000000635004b00000e830000413d000000000443001900000000000404350000000001210049000000000113001900000000001204350000003f03100039000000200100008a000000000313016f0000000005230019000000000335004b00000000030000190000000103004039000005fb0450009c0000012b0000213d00000001033001900000012b0000c13d000000400050043f000000230300008a0000000b060000290000000004630049000001c4036000390000000207000367000000000637034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012700000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000012ee0000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000012ee0000013d000000380210008c000010250000413d0000002002100270000005f20310009c00000000030100190000000003022019000005f20210009c0000000002000019000000040200203900000002042001bf0000ffff0530008c000000000204201900000010043002700000000003042019000000ff0330008c00000000030000190000000103002039000000400400043d000400000004001d0000062a0440009c0000012b0000213d000000000232019f00000004040000290000004003400039000000400030043f0000000203200039000000000334043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a00000f020000413d00000004040000290000000004040433000000000404004b000002e60000613d00000000040304330000062b04400197000000f805200210000000000445019f0000062f044001c700000000004304350000000302200210000000f80220008900000000012101cf000000040200002900000021022000390000000000120435000010420000013d000000000201004b00000f310000c13d0000060f0100004100000000001004390000000b010000290000000400100443000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000610011001c7000080020200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000000101004b000005d80000613d00000009010000290000000001010433000000000201004b000000430000613d000005fa02000041000000200310008c00000000030000190000000003024019000005fa01100197000000000401004b000000000200a019000005fa0110009c00000000010300190000000001026019000000000101004b0000010d0000c13d00000008010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b0000010d0000c13d000000000101004b00000a070000613d000000430000013d000000400800043d0000062a0980009c0000012b0000213d0000004009800039000000400090043f00000001090000390000000009980436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc90019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a00000f510000413d000000000a080433000000000a0a004b000002e60000613d000000f80a300210000005fa0b000041000000000303004b00000000030a001900000000030b6019000000000a0904330000062b0aa0019700000000033a019f0000000000390435000000400300043d000000200a3000390000000009010433000000000b09004b00000f710000613d000000000b000019000000000cab0019000000200bb00039000000000d1b0019000000000d0d04330000000000dc0435000000000c9b004b00000f6a0000413d0000000001a9001900000000000104350000000001390019000000200a1000390000000009020433000000000b09004b00000f800000613d000000000b000019000000000cab0019000000200bb00039000000000d2b0019000000000d0d04330000000000dc0435000000000c9b004b00000f790000413d0000000002a900190000000000020435000000000119001900000020091000390000000002040433000000000a02004b00000f8f0000613d000000000a000019000000000b9a0019000000200aa00039000000000c4a0019000000000c0c04330000000000cb0435000000000b2a004b00000f880000413d00000000049200190000000000040435000000000112001900000020041000390000000002050433000000000902004b00000f9e0000613d0000000009000019000000000a4900190000002009900039000000000b590019000000000b0b04330000000000ba0435000000000a29004b00000f970000413d00000000044200190000000000040435000000000112001900000020041000390000000002060433000000000502004b00000fad0000613d000000000500001900000000094500190000002005500039000000000a650019000000000a0a04330000000000a90435000000000925004b00000fa60000413d00000000044200190000000000040435000000000112001900000020041000390000000002070433000000000502004b00000fbc0000613d000000000500001900000000064500190000002005500039000000000975001900000000090904330000000000960435000000000625004b00000fb50000413d00000000044200190000000000040435000000000112001900000020041000390000000002080433000000000502004b00000fcb0000613d000000000500001900000000064500190000002005500039000000000785001900000000070704330000000000760435000000000625004b00000fc40000413d000000000442001900000000000404350000000001310049000000000112001900000000001304350000003f02100039000000200100008a000000000212016f0000000005320019000000000225004b00000000020000190000000102004039000005fb0450009c0000012b0000213d00000001022001900000012b0000c13d000000400050043f000000230200008a0000000b060000290000000004620049000001c4026000390000000207000367000000000627034f000000000606043b00000000080000310000000009480019000005fa0a000041000000000b96004b000000000b000019000000000b0a8019000005fa09900197000005fa0c600197000000000d9c004b000000000a00801900000000099c013f000005fa0990009c00000000090b001900000000090a6019000000000909004b0000010d0000c13d0000000a090000290000000009960019000000000697034f000000000606043b000005fb0a60009c0000010d0000213d000000000a6800490000002008900039000005fa09000041000000000ba8004b000000000b000019000000000b092019000005fa0aa00197000005fa0c800197000000000dac004b0000000009008019000000000aac013f000005fa0aa0009c00000000090bc019000000000909004b0000010d0000c13d000000010960008c000012a20000c13d000000000687034f000000000606043b000000010700008a000005fa08000041000000000776004b00000000070000190000000007082019000005fa06600197000005fa0960009c0000000008008019000005fa06600167000005fa0660009c00000000070860190000006006000039000000000707004b000013810000c13d0000062a0650009c0000012b0000213d0000004006500039000000400060043f00000020065000390000062d070000410000000000760435000000010600003900000000006504350000000006050019000013810000013d000000400200043d000400000002001d0000062a0220009c0000012b0000213d00000004030000290000004002300039000000400020043f0000000102000039000000000223043600000000030000310000000203300367000000000400001900000005054002100000000006520019000000000553034f000000000505043b0000000000560435000000010440003a000010310000413d00000004030000290000000003030433000000000303004b000002e60000613d000000f80110021000000000030204330000062b03300197000000000113019f000005fa01100167000000000012043500000060010000390000000b0200002900000144032000390000000202000367000000000332034f000000000303043b000000000303004b000010b70000c13d0000000203000029000000000432034f000000000300003100000001050000290000000005530019000000000904043b000005fa04000041000000000659004b00000000060000190000000006048019000005fa05500197000005fa07900197000000000857004b0000000004008019000000000557013f000005fa0550009c000000000406c019000000000404004b0000010d0000c13d00000009040000290000000004040433000000070500002900000000050504330000000606000029000000000606043300000005070000290000000007070433000000040800002900000000080804330000000a0a0000290000000009a90019000000000292034f000000000202043b000005fb0a20009c0000010d0000213d00000000032300490000002009900039000005fa0a000041000000000b39004b000000000b000019000000000b0a2019000005fa03300197000005fa09900197000000000c39004b000000000a008019000000000339013f000005fa0330009c00000000030b001900000000030a6019000000000303004b0000010d0000c13d0000000003450019000000000363001900000000037300190000000003830019000000000223001900000000030104330000000002320019000005fb02200197000000380320008c000011590000413d0000002003200270000005f20420009c00000000040200190000000004032019000005f20320009c0000000003000019000000040300203900000002053001bf0000ffff0640008c000000000305201900000010054002700000000004052019000000ff0440008c00000000040000190000000104002039000000400600043d0000062a0560009c0000012b0000213d000000000343019f0000004004600039000000400040043f0000000204300039000000000446043600000000050000310000000205500367000000000700001900000005087002100000000009840019000000000885034f000000000808043b0000000000890435000000010770003a000010a10000413d0000000005060433000000000505004b000002e60000613d00000000050404330000062b05500197000000f807300210000000000557019f00000631055001c700000000005404350000000303300210000000f80330008900000000023201cf00000021036000390000000000230435000011730000013d00000628010000410000000000100439000005f2010000410000000002000414000005f20320009c0000000001024019000000c00110021000000629011001c70000800b0200003917c317b40000040f00000001022001900000010d0000613d000000000101043b000000800210008c0000111c0000413d00000080021002700000062c0310009c000000000201a0190000062c0310009c0000000003000019000000100300203900000008043001bf000005fb0520009c00000000030420190000004004200270000005fb0520009c000000000204201900000004043001bf000005f20520009c00000000030420190000002004200270000005f20520009c000000000204201900000002043001bf0000ffff0520008c000000000304201900000010042002700000000002042019000000ff0220008c00000000020000190000000102002039000000000323001900000041023000390000000304000029000000000442016f000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000005fb0640009c0000012b0000213d00000001055001900000012b0000c13d000000400040043f0000000204300039000000000442043600000021053000390000000505500272000010fe0000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000010f60000413d000000000500004b000011000000613d0000000005020433000000000505004b000002e60000613d00000000050404330000062b05500197000000f806300210000000000556019f0000062d0550004100000000005404350000000303300210000000f80330008900000000013101cf000000ff0330008c000000000100201900000021032000390000000000130435000011390000013d000005f2020000410000000804000029000005f20340009c00000000030200190000000003044019000005f20410009c000000000102801900000060011002100000004002300210000000000121019f000017c500010430000000400200043d0000062a0320009c0000012b0000213d0000004003200039000000400030043f0000000103000039000000000332043600000000040000310000000204400367000000000500001900000005065002100000000007630019000000000664034f000000000606043b0000000000670435000000010550003a000011260000413d0000000004020433000000000404004b000002e60000613d000000f804100210000005fa05000041000000000101004b0000000001040019000000000105601900000000040304330000062b04400197000000000114019f0000000000130435000000400100043d00000020041000390000000003020433000000000503004b000011460000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b0000113f0000413d00000000024300190000063f0400004100000000004204350000000202300039000000000021043500000041023000390000000303000029000000000332016f0000000002130019000000000332004b00000000030000190000000103004039000005fb0420009c0000012b0000213d00000001033001900000012b0000c13d000000400020043f00000002020003670000104a0000013d000000400600043d0000062a0360009c0000012b0000213d0000004003600039000000400030043f0000000103000039000000000336043600000000040000310000000204400367000000000500001900000005075002100000000008730019000000000774034f000000000707043b0000000000780435000000010550003a000011630000413d0000000004060433000000000404004b000002e60000613d000000f80220021000000000040304330000062b04400197000000000242019f0000063002200041000000000023043500000000020000310000000103000029000000000532001900000002030003670000000204000029000000000443034f000000000404043b000005fa07000041000000000854004b00000000080000190000000008078019000005fa05500197000005fa09400197000000000a59004b0000000007008019000000000559013f000005fa0550009c00000000050800190000000005076019000000000505004b0000010d0000c13d0000000a050000290000000005540019000000000353034f000000000403043b000005fb0340009c0000010d0000213d00000000024200490000002005500039000005fa03000041000000000725004b00000000070000190000000007032019000005fa02200197000005fa08500197000000000928004b0000000003008019000000000228013f000005fa0220009c00000000020700190000000002036019000000000202004b0000010d0000c13d000000400200043d00000020032000390000000007060433000000000807004b000011ab0000613d000000000800001900000000093800190000002008800039000000000a680019000000000a0a04330000000000a90435000000000978004b000011a40000413d000000000637001900000000000604350000000006270019000000200860003900000009070000290000000007070433000000000907004b000011bc0000613d0000000009000019000000000a8900190000002009900039000000090b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011b40000413d000000000887001900000000000804350000000006670019000000200860003900000007070000290000000007070433000000000907004b000011cd0000613d0000000009000019000000000a8900190000002009900039000000070b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011c50000413d000000000887001900000000000804350000000006670019000000200860003900000006070000290000000007070433000000000907004b000011de0000613d0000000009000019000000000a8900190000002009900039000000060b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011d60000413d000000000887001900000000000804350000000006670019000000200860003900000005070000290000000007070433000000000907004b000011ef0000613d0000000009000019000000000a8900190000002009900039000000050b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011e70000413d000000000887001900000000000804350000000006670019000000200860003900000004070000290000000007070433000000000907004b000012000000613d0000000009000019000000000a8900190000002009900039000000040b000029000000000bb90019000000000b0b04330000000000ba0435000000000a79004b000011f80000413d0000000008870019000000000008043500000000066700190000001f0740018f000000200860003900000002055003670000000509400272000012110000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000012090000413d000000000a07004b000012200000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000004460019000000200640003900000000000604350000000005010433000000000705004b0000122e0000613d000000000700001900000000086700190000002007700039000000000917001900000000090904330000000000980435000000000857004b000012270000413d000000000165001900000000000104350000000001240049000000000115001900000000001204350000003f011000390000000304000029000000000441016f0000000001240019000000000441004b00000000040000190000000104004039000005fb0510009c0000012b0000213d00000001044001900000012b0000c13d000000400010043f000005f201000041000005f20430009c000000000301801900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f00000001012001900000010d0000613d0000000a0100002917c3178d0000040f0000064002000041000000000020043900000008020000290000000400200443000900000001001d0000800a01000039000000240200003917c3159b0000040f0000000902000029000000000112004b0000000001000019000000010100a03917c316500000040f0000000b01000029000001e4021000390000000a0100002917c316680000040f000000000300003117c316940000040f0000064101000041000000400200043d0000000000120435000005f201000041000005f20320009c0000000001024019000000400110021000000642011001c7000017c40001042e000000380760008c000012d40000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000128b0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000012ee0000013d000000380760008c000013670000413d0000002007600270000005f20860009c00000000080600190000000008072019000005f20760009c0000000007000019000000040700203900000002097001bf0000ffff0a80008c000000000709201900000010098002700000000008092019000000ff0880008c000000000800001900000001080020390000062a0950009c0000012b0000213d000000000787019f0000004008500039000000400080043f0000000208700039000000000885043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb80019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012bd0000413d0000000009050433000000000909004b000002e60000613d00000000090804330000062b09900197000000f80a70021000000000099a019f0000062f099001c700000000009804350000000307700210000000f80770008900000000067601cf000000210750003900000000006704350000000006050019000013810000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000012dd0000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a000012f80000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a3b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009020433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014150000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013510000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf000000210970003900000000008904350000142e0000013d0000062a0750009c0000012b0000213d0000004007500039000000400070043f00000001070000390000000007750436000000000800003100000002088003670000000009000019000000050a900210000000000ba70019000000000aa8034f000000000a0a043b0000000000ab0435000000010990003a000013700000413d0000000008050433000000000808004b000002e60000613d000000f80660021000000000080704330000062b08800197000000000668019f000005fa0660016700000000006704350000000006050019000000400500043d0000062a0750009c0000012b0000213d0000004007500039000000400070043f0000000108000039000000000785043600000000090000310000000209900367000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa0003a0000138b0000413d0000000009050433000000000909004b000002e60000613d00000000090704330000062b0990019700000630099001c7000000000097043500000000070000310000000009470019000000020b000367000000000a2b034f000000000c0a043b000005fa0a000041000000000d9c004b000000000d000019000000000d0a8019000005fa09900197000005fa0ec00197000000000f9e004b000000000a00801900000000099e013f000005fa0990009c00000000090d001900000000090a6019000000000909004b0000010d0000c13d0000000009030433000000000a0604330000000a0d000029000000000cdc0019000000000bcb034f000000000b0b043b000005fb0db0009c0000010d0000213d0000000007b70049000000200cc00039000005fa0d000041000000000e7c004b000000000e000019000000000e0d2019000005fa07700197000005fa0cc00197000000000f7c004b000000000d00801900000000077c013f000005fa0770009c00000000070e001900000000070d6019000000000707004b0000010d0000c13d00000000079a00190000000007b7001900000000090504330000000007970019000005fb09700197000000380790008c000014d80000413d0000002007900270000005f20890009c000000000709a019000005f20890009c00000000080000190000000408002039000000020a8001bf0000ffff0b70008c00000000080a2019000000100a70027000000000070a2019000000ff0770008c000000000a000019000000010a002039000000400700043d0000062a0b70009c0000012b0000213d0000000008a8019f000000400a7000390000004000a0043f000000020a800039000000000aa70436000000000b000031000000020bb00367000000000c000019000000050dc00210000000000eda0019000000000ddb034f000000000d0d043b0000000000de0435000000010cc0003a000013e40000413d000000000b070433000000000b0b004b000002e60000613d000000000b0a04330000062b0bb00197000000f80c800210000000000bbc019f000006310bb001c70000000000ba04350000000308800210000000f80880008900000000088901cf00000021097000390000000000890435000014f10000013d0000001f0430018f0000000502300272000014050000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000013fe0000413d000000000504004b000014130000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000017c500010430000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a0000141e0000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000334034f000000000303043b000005fa0a000041000000000b83004b000000000b000019000000000b0a8019000005fa08800197000005fa0c300197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000003830019000000000434034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009300039000005fa03000041000000000a49004b000000000a000019000000000a032019000005fa04400197000005fa0b900197000000000c4b004b000000000300801900000000044b013f000005fa0440009c00000000030ac019000000000303004b0000010d0000c13d000000400300043d0000002004300039000006250a0000410000000000a40435000000210b300039000000000a070433000000000c0a004b000014660000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b0000145f0000413d0000000007ba0019000000000007043500000000073a0019000000210b700039000000000a020433000000000c0a004b000014750000613d000000000c000019000000000dbc0019000000200cc00039000000000e2c0019000000000e0e04330000000000ed0435000000000dac004b0000146e0000413d0000000002ba0019000000000002043500000000027a0019000000210a2000390000000007060433000000000b07004b000014840000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b0000147d0000413d0000000006a70019000000000006043500000000022700190000001f0680018f00000021072000390000000209900367000000050a800272000014950000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b0000148d0000413d000000000b06004b000014a40000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000002820019000000210720003900000000000704350000000006050433000000000806004b000014b20000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b000014ab0000413d0000000005760019000000000005043500000000023200490000000002260019000000010520003900000000005304350000004002200039000000000212016f0000000001320019000000000221004b00000000020000190000000102004039000005fb0510009c0000012b0000213d00000001022001900000012b0000c13d000000400010043f000005f201000041000005f20240009c0000000002010019000000000204401900000040022002100000000003030433000005f20430009c00000000030180190000006003300210000000000223019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d000000400700043d0000062a0a70009c0000012b0000213d000000400a7000390000004000a0043f0000000008870436000000000a000031000000020aa00367000000000b000019000000050cb00210000000000dc80019000000000cca034f000000000c0c043b0000000000cd0435000000010bb0003a000014e10000413d000000000a070433000000000a0a004b000002e60000613d000000f809900210000000000a0804330000062b0aa001970000000009a9019f00000630099000410000000000980435000000000900003100000000084900190000000204000367000000000224034f000000000202043b000005fa0a000041000000000b82004b000000000b000019000000000b0a8019000005fa08800197000005fa0c200197000000000d8c004b000000000a00801900000000088c013f000005fa0880009c00000000080b001900000000080a6019000000000808004b0000010d0000c13d0000000a080000290000000002820019000000000424034f000000000804043b000005fb0480009c0000010d0000213d00000000048900490000002009200039000005fa02000041000000000a49004b000000000a000019000000000a022019000005fa04400197000005fa0b900197000000000c4b004b000000000200801900000000044b013f000005fa0440009c00000000020ac019000000000202004b0000010d0000c13d000000400200043d0000002004200039000006320a0000410000000000a40435000000210b200039000000000a070433000000000c0a004b000015290000613d000000000c000019000000000dbc0019000000200cc00039000000000e7c0019000000000e0e04330000000000ed0435000000000dac004b000015220000413d0000000007ba0019000000000007043500000000072a0019000000210b700039000000000a030433000000000c0a004b000015380000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b000015310000413d0000000003ba0019000000000003043500000000037a0019000000210a3000390000000007060433000000000b07004b000015470000613d000000000b000019000000000cab0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c7b004b000015400000413d0000000006a70019000000000006043500000000033700190000001f0680018f00000021073000390000000209900367000000050a800272000015580000613d000000000b000019000000050cb00210000000000dc70019000000000cc9034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000015500000413d000000000b06004b000015670000613d000000050aa002100000000009a9034f0000000007a700190000000306600210000000000a070433000000000a6a01cf000000000a6a022f000000000909043b0000010006600089000000000969022f00000000066901cf0000000006a6019f00000000006704350000000003830019000000210730003900000000000704350000000006050433000000000806004b000015750000613d000000000800001900000000097800190000002008800039000000000a580019000000000a0a04330000000000a90435000000000968004b0000156e0000413d0000000005760019000000000005043500000000032300490000000003360019000000010530003900000000005204350000004003300039000000000313016f0000000001230019000000000331004b00000000030000190000000103004039000005fb0510009c0000012b0000213d00000001033001900000012b0000c13d000000400010043f000005f201000041000005f20340009c0000000003010019000000000304401900000040033002100000000002020433000005f20420009c00000000020180190000006002200210000000000232019f0000000003000414000005f20430009c0000000001034019000000c001100210000000000121019f00000632011001c7000080100200003917c317b40000040f0000000101200190000012520000c13d0000010d0000013d0000000003010019000005f2010000410000000004000414000005f20540009c0000000001044019000000c001100210000000600220021000000000011200190000064301100041000000000203001917c317b40000040f0000000102200190000015aa0000613d000000000101043b000000000001042d0000000001000019000017c50001043000000000030104330000000002320436000000000403004b000015b80000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000015b10000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d00000020030000390000000004310436000000000302043300000000003404350000004001100039000000000403004b000015ce0000613d000000000400001900000000051400190000002004400039000000000624001900000000060604330000000000650435000000000534004b000015c70000413d000000000213001900000000000204350000001f02300039000000200300008a000000000232016f0000000001120019000000000001042d0003000000000002000000040100008a0000000003100031000005fa010000410000005f0230008c00000000020000190000000002012019000005fa04300197000000000504004b0000000001008019000005fa0440009c000000000102c019000000000101004b0000161b0000613d00000002010003670000004402100370000000000202043b000005fb0420009c0000161b0000213d0000000003230049000005fa04000041000002600530008c00000000050000190000000005044019000005fa03300197000000000603004b000000000400a019000005fa0330009c00000000030500190000000003046019000000000303004b0000161b0000c13d0000000003000411000080010330008c000016190000c13d0000000003000412000005fc033001970000000004000410000000000343004b000016190000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b0000161d0000c13d0000000004000415000000030440008a00000020044000c90000000001000414000300000000001d000100000004001d000005f202000041000005f20310009c0000000001028019000000c001100210000080010200003917c317af0000040f000000010300002900030000000103550000006001100270000105f20010019d000000200130011a00000001012001950000000101200190000016350000613d0000000001000019000017c40001042e0000000001000019000017c50001043000000000431200a900000000422300d9000000000112004b0000164a0000c13d0000000004000415000000020440008a00000020044000c90000000001000414000200000000001d000000000203004b0000160a0000613d000005f202000041000005f20410009c0000000001028019000000c00110021000000632011001c700008009020000390000800104000039000000000500001917c317af0000040f0000000003000415000000020330008a00000020033000c9000016120000013d000000400100043d00000064021000390000064403000041000000000032043500000044021000390000064503000041000000000032043500000024021000390000002503000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c5000104300000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000000101004b000016530000613d000000000001042d000000400100043d00000064021000390000064603000041000000000032043500000044021000390000064703000041000000000032043500000024021000390000002203000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000614011001c7000017c500010430000000000300003100000000041300490000001f0540008a0000000204000367000000000224034f000000000202043b000005fa06000041000000000752004b00000000070000190000000007064019000005fa05500197000005fa08200197000000000958004b000000000600a019000000000558013f000005fa0550009c00000000050700190000000005066019000000000505004b000016920000613d0000000001120019000000000214034f000000000202043b000005fb0420009c000016920000213d00000000032300490000002001100039000005fa04000041000000000531004b00000000050000190000000005042019000005fa03300197000005fa06100197000000000736004b0000000004008019000000000336013f000005fa0330009c00000000030500190000000003046019000000000303004b000016920000c13d000000000001042d0000000001000019000017c500010430000006480420009c000016c60000813d0000003f04200039000000200500008a000000000554016f000000400400043d0000000005540019000000000645004b00000000060000190000000106004039000005fb0750009c000016c60000213d0000000106600190000016c60000c13d000000400050043f00000000042404360000000005120019000000000335004b000016cc0000213d0000001f0320018f00000002011003670000000505200272000016b40000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000016ac0000413d000000000603004b000016c30000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f000000000015043500000000012400190000000000010435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c5000104300000000001000019000017c5000104300000000001000411000080010110008c000016d20000613d000000000001042d0000063d0100004100000000001004350000000101000039000000040010043f0000063e01000041000017c50001043000000000070200190000000008450019000005f2024001970000000202200367000000000403004b000016f40000613d000000000458004b0000170b0000413d0000000004000031000000000584004b0000170b0000413d000005fe0510009c000017110000813d0000000004840049000005f20440019700000000024203df000000c001100210000006210110019700000649011001c700000000011203af000000000206004b0000000005000019000000010500c03900008009020000390000000004070019000000000600001917c317b90000040f000017060000013d000000000358004b0000170b0000413d0000000003000031000000000483004b0000170b0000413d00000649040000410000063305000041000000000606004b0000000004056019000000c0011002100000062101100197000000000114019f0000000003830049000005f20330019700000000023203df00000000011203af000000000207001917c317b90000040f00030000000103550000006001100270000105f20010019d000000010120018f000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000000400100043d00000044021000390000060403000041000000000032043500000024021000390000000803000039000000000032043500000605020000410000000000210435000000040210003900000020030000390000000000320435000005f202000041000005f20310009c0000000001028019000000400110021000000606011001c7000017c5000104300000000102000031000000000101004b0000176c0000613d000006480120009c000017660000813d0000003f01200039000000200300008a000000000331016f000000400100043d0000000003310019000000000413004b00000000040000190000000104004039000005fb0530009c000017660000213d0000000104400190000017660000c13d000000400030043f00000000032104360000001f042000390000000504400272000017440000613d00000000050000310000000205500367000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000173c0000413d000000000400004b000017460000613d0000000104000031000000000442004b0000178b0000213d00000003050003670000001f0420018f0000000502200272000017560000613d000000000600001900000005076002100000000008730019000000000775034f000000000707043b00000000007804350000000106600039000000000726004b0000174e0000413d000000000604004b000017650000613d0000000502200210000000000525034f00000000022300190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d0000063d0100004100000000001004350000004101000039000000040010043f0000063e01000041000017c50001043000000003010003670000001f0420018f0000000503200272000017780000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000635004b000017710000413d000000000504004b000017860000613d00000003044002100000000503300210000000000503043300000000054501cf000000000545022f000000000131034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000005f201000041000005f20320009c00000000010240190000006001100210000017c5000104300000000001000019000017c500010430000000e0031000390000000202000367000000000332034f000000000303043b000005fc03300198000017970000613d0000012001100039000000000112034f000000000101043b000017a80000013d000000a003100039000000000332034f0000006004100039000000000442034f000000000404043b000000000503043b00000000634500a9000000000605004b000017a30000613d00000000655300d9000000000445004b000017a90000c13d0000012001100039000000000112034f000000000101043b000000000131001a000017a90000413d000000000001042d0000063d0100004100000000001004350000001101000039000000040010043f0000063e01000041000017c500010430000017b2002104210000000102000039000000000001042d0000000002000019000000000001042d000017b7002104230000000102000039000000000001042d0000000002000019000000000001042d000017bc002104210000000102000039000000000001042d0000000002000019000000000001042d000017c1002104230000000102000039000000000001042d0000000002000019000000000001042d000017c300000432000017c40001042e000017c5000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d382700000000000000000000000000000000000000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f770000000000000000000000000000000000000000000000000064000000800000000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000004400000000000000000000000020746f206e6f6e2d7a65726f20616c6c6f77616e6365000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f0000000000000000000000000000000000000084000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000ffffffff000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f19010000000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000002000002000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706575650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c000000000000000000000000000000000000000000000001000000000000000001000001000000000000000000000000000000000000000000000000000000008f19edac323ff4d08b76da2079015d4dfbe240eda064363680b7748cc46bf8dd", + "bytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000004f10670019700030000006103550002000000010355000004f10070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000004f30320009c0000003f0000a13d000004f40320009c000000910000613d000004f50320009c000000c00000613d000004f60220009c000000360000c13d000000040260008a000000200320008c000001220000413d0000000401100370000000000101043b000004f90310009c000001220000213d0000000001120049000004fa02000041000002600310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000002fc0000613d000001220000013d0000000001000416000000000101004b000001220000c13d000000200100003900000100001004430000012000000443000004f201000041000013c00001042e000000000106004b000002fc0000613d0000000001000411000080010110008c000002fc0000c13d000005420100004100000000001004350000000101000039000000040010043f0000054301000041000013c100010430000004f70320009c0000010c0000613d000900000004001d000004f80220009c000000360000c13d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004043000390000000005460049000004fa02000041000002600750008c00000000070000190000000007024019000004fa08500197000000000908004b000000000200a019000004fa0880009c000000000207c019000000000202004b000001220000c13d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb072001970000000002000410000000000727004b000002fc0000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a000004fa08000041000000000957004b00000000090000190000000009088019000004fa05500197000004fa0a700197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000005470019000000000451034f000000000404043b000004f90740009c000001220000213d00000000074600490000002005500039000004fa08000041000000000975004b00000000090000190000000009082019000004fa07700197000004fa0a500197000000000b7a004b000000000800801900000000077a013f000004fa0770009c000000000809c019000000000708004b000001220000c13d000000030740008c000002520000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000052201000041000000c40010043f0000052301000041000002620000013d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004023000390000000005260049000004fa04000041000002600850008c00000000080000190000000008044019000004fa09500197000000000a09004b000000000400a019000004fa0990009c000000000408c019000000000404004b000001220000c13d0000000004000411000080010440008c000002fc0000c13d0000000004000412000004fb044001970000000008000410000000000484004b000002fc0000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b000004fb04400197000000000303043b000005010930009c000001f30000413d000004ff01000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000050b01000041000000c40010043f0000050c01000041000013c100010430000000040360008a000000600230008c000001220000413d0000004402100370000000000202043b000004f90420009c000001220000213d0000000003230049000004fa04000041000002600530008c00000000050000190000000005044019000004fa03300197000000000603004b000000000400a019000004fa0330009c000000000405c019000000000304004b000001220000c13d0000000003000411000080010330008c000002fc0000c13d0000000003000412000004fb033001970000000004000410000000000343004b000002fc0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001db0000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d000004f102000041000004f10310009c0000000001028019000000c001100210000080010200003913bf13ab0000040f000000090300002900030000000103550000006001100270000104f10010019d000000050130027000000001012001950000000101200190000002fc0000c13d000000400100043d0000006402100039000004fd0300004100000000003204350000004402100039000004fe030000410000000000320435000000240210003900000025030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c0000000001028019000000400110021000000500011001c7000013c100010430000000040260008a000000600220008c000001220000413d0000004402100370000000000202043b000900000002001d000004f90220009c000001220000213d0000000902000029000800040020003d000000080260006a000004fa03000041000002600420008c00000000040000190000000004034019000004fa02200197000000000502004b000000000300a019000004fa0220009c000000000304c019000000000203004b000001240000613d0000000001000019000013c1000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb022001970000000003000410000600000003001d000000000232004b000002fc0000c13d00000000020004140000052403000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c001200210000005070110019700000525011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001913bf13ab0000040f000300000001035500000000030100190000006003300270000104f10030019d000004f1083001970000003f038000390000050a04300197000000400600043d0000000003640019000000000443004b00000000040000190000000104004039000004f90530009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f098000390000000509900272000001660000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000015e0000413d000000000900004b000001680000613d0000001f0980018f0000000508800272000001740000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b0000016c0000413d000000000a09004b000001830000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f00000000001804350000000101200190000002480000613d000000070100006b000010f20000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b000002650000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d0000029c0000413d00000080021002700000052b0610009c000000000201a0190000052b0610009c0000000006000019000000100600203900000008076001bf000004f90820009c000000000706a0190000004006200270000004f90820009c000000000602a01900000004087001bf000004f10260009c000000000807a0190000002007600270000004f10260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001c70000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001bf0000413d000000000700004b000001c90000613d00000007070000290000000007070433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808200210000000000778019f0000052c0770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002ad0000013d00000000431200a900000000422300d9000000000112004b0000110c0000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000e80000613d000004f102000041000004f10410009c0000000001028019000000c001100210000004fc011001c700008009020000390000800104000039000000000500001913bf13ab0000040f00000000030004150000000a0330008a00000020033000c9000000f00000013d000000a008800039000000000881034f000000000808043b0000001f0550008a000004fa09000041000000000a58004b000000000a000019000000000a098019000004fa05500197000004fa0b800197000000000c5b004b000000000900801900000000055b013f000004fa0550009c00000000090ac019000000000509004b000001220000c13d0000000002280019000000000521034f000000000805043b000004f90580009c000001220000213d00000000058600490000002009200039000004fa02000041000000000a59004b000000000a000019000000000a022019000004fa05500197000004fa0b900197000000000c5b004b000000000200801900000000055b013f000004fa0550009c00000000020ac019000000000202004b000001220000c13d0000000002000414000004f10520009c000000b60000213d000080060540008c00000000050000190000022f0000c13d000000040580008c00000000050000190000022f0000413d000000000a91034f0000000105000039000000000a0a043b000005020aa00197000005030ba0009c0000022e0000613d000005040ba0009c0000022e0000613d000005050ba0009c0000022e0000613d0000050605a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf000004f108900197000000000181034f000000000803004b000003580000c13d00000001036001900000110c0000c13d00000508030000410000050906000041000000000505004b000000000603c019000000c0022002100000050702200197000000000226019f0000000003a70049000004f10330019700000000013103df00000000012103af0000000002040019000003630000013d0000000001060433000004f102000041000004f10310009c0000000001028019000004f10370009c000000000702801900000040027002100000006001100210000000000121019f000013c100010430000000000751034f000000000707043b00000502077001970000050d0870009c000002fa0000c13d000000430440008c000003c10000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000051f01000041000000c40010043f0000052001000041000000e40010043f0000052101000041000013c100010430000000710210008c000002fe0000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b000004fa05000041000000000621004b00000000060000190000000006058019000004fa02200197000004fa07100197000000000827004b0000000005008019000000000227013f000004fa0220009c000000000506c019000000000205004b000001220000c13d0000000801100029000000000213034f000000000202043b000004f90520009c000001220000213d00000000052400490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000512001a00000000020004140000110c0000413d000000000654004b0000110c0000413d000005320620009c0000069d0000413d000000400100043d00000044021000390000050b03000041000000000032043500000024021000390000000803000039000004bf0000013d000005290290009c0000125d0000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004420000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002e80000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e00000413d000000000900004b000002ea0000613d0000000009010433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004520000013d0000050e0170009c000003e00000c13d0000000001000019000013c00001042e000000020210008c000003e80000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c000004cb0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000003460000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000033e0000413d000000000700004b000003480000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004de0000013d00000001066001900000110c0000c13d0000000006a70049000004f10660019700000000016103df000000c002200210000005070220019700000508022001c700000000012103af0000800902000039000000000600001913bf13b50000040f000300000001035500000000030100190000006003300270000104f10030019d000004f10330019700000001022001900000049e0000613d0000003f023000390000050a04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f00000000043204360000001f053000390000000505500272000003860000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000037e0000413d000000000500004b000003880000613d0000001f0530018f0000000503300272000003940000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000038c0000413d000000000605004b000003a30000613d0000000503300210000000000131034f00000000033400190000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000400100043d00000020030000390000000004310436000000000302043300000000003404350000004004100039000000000503004b000003b30000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b000003ac0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f000004f103000041000004f10420009c0000000002038019000004f10410009c000000000103801900000040011002100000006002200210000000000112019f000013c00001042e0000000404500039000000000541034f000000000505043b000800000005001d000004fb0550009c000001220000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000051004000041000000800040043f000004fb02200197000500000002001d000000840020043f000004fb02300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c0000052a0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005560000013d000004ff01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000050f01000041000000bd0000013d000000010110008c000004b90000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c0000057d0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004300000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004280000413d000000000700004b000004320000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005900000013d000005290710009c0000125d0000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005dc0000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000048c0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004840000413d000000000900004b0000048e0000613d0000000009020433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005ec0000013d0000001f0430018f0000000502300272000004a90000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a20000413d000000000504004b000004b70000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000400100043d000000440210003900000526030000410000000000320435000000240210003900000017030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c000000000102801900000040011002100000051e011001c7000013c100010430000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008700000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005180000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005100000413d000000000800004b0000051a0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008810000013d000004f101000041000004f10320009c0000000002018019000000c00120021000000511011001c7000000080200002913bf13b00000040f00000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005430000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000053b0000413d000000000705004b000005520000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000067a0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001220000413d000000800400043d000000070440006c000002fc0000813d000000a00450003900000512060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000051307000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008cf0000c13d0000000102000039000004f90430009c0000125d0000213d000008e30000013d000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000009250000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005ca0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005c20000413d000000000800004b000005cc0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009360000013d000005290720009c0000125d0000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005fb0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005f40000413d000000000176001900000000000104350000000007020433000000000807004b000006080000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000006010000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d000004f90220009c0000125d0000213d00000001011001900000125d0000c13d0000000401000029000000400010043f000005290110009c0000125d0000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f00000020028000390000052d060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c00000a2b0000413d00000080062002700000052b0720009c000000000602a0190000052b0720009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006660000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000065e0000413d000000000800004b000006680000613d00000003080000290000000008080433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a3d0000013d000000400200043d0000001f0430018f0000000505300272000006870000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000067f0000413d000000000604004b000006960000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f101000041000004f10420009c000000000201801900000040012002100000006002300210000000000121019f000013c100010430000004f101100197000000000113034f0000000003540049000004f10330019700000000013103df000000c002200210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10530019700030000000103550000000102200190000009840000613d0000003f025000390000050a02200197000000400600043d0000000002260019000000000362004b00000000030000190000000103004039000004f90420009c0000125d0000213d00000001033001900000125d0000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f075000390000000507700272000006cb0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006c30000413d000000000700004b000006cd0000613d0000001f0750018f0000000505500272000006d90000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006d10000413d000000000807004b000006e80000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000a240000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b000004fa06000041000000000751004b00000000070000190000000007068019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b000004f90450009c000001220000213d000000050450021000000000034300490000002006100039000004fa01000041000000000736004b00000000070000190000000007012019000004fa03300197000004fa08600197000000000938004b0000000001008019000000000338013f000004fa0330009c000000000107c019000000000101004b000001220000c13d000000400100043d00000020031000390000053305500198000007230000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000071b0000413d000000000200004b000007250000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b00000000040000190000000104004039000004f90520009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000004f102000041000004f10430009c000000000302801900000040033002100000000001010433000004f10410009c00000000010280190000006001100210000000000131019f0000000003000414000004f10430009c0000000003028019000000c002300210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b000004fa06000041000000000754004b00000000070000190000000007068019000004fa05500197000004fa08400197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000101043b000700000001001d000000000106004b000001220000c13d0000000801400029000000000413034f000000000404043b000004f90540009c000001220000213d00000000054200490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000514001a00000000040004140000110c0000413d000000000652004b0000110c0000413d000004f10640009c000002950000213d000004f101100197000000000113034f0000000002520049000004f10220019700000000012103df000000c002400210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10330019700030000000103550000000102200190000011920000613d0000003f023000390000050a02200197000000400500043d0000000002250019000000000452004b00000000040000190000000104004039000004f90620009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007a40000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000079c0000413d000000000600004b000007a60000613d0000001f0630018f0000000503300272000007b20000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000007aa0000413d000000000706004b000007c10000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c00000a240000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a0021000390000000000620435000000800210003900000000005204350000006002100039000000000042043500000040021000390000000000320435000000200210003900000535030000410000000000320435000001c0030000390000000000310435000005360310009c0000125d0000213d000001e003100039000000400030043f000004f104000041000004f10320009c000000000204801900000040022002100000000001010433000004f10310009c00000000010480190000006001100210000000000121019f0000000002000414000004f10320009c0000000002048019000000c002200210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000101043b000500000001001d000000400100043d000700000001001d000005270100004100000000001004390000000001000414000004f10210009c000004f101008041000000c00110021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d00000007040000290000002002400039000000000101043b0000053703000041000000000032043500000080034000390000000000130435000000600140003900000538030000410000000000310435000000400140003900000539030000410000000000310435000000800100003900000000001404350000053a0140009c0000125d0000213d0000000704000029000000a001400039000000400010043f000004f101000041000004f10320009c000000000201801900000040022002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000053b0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000005190310009c0000125d0000213d0000008003100039000000400030043f000004f103000041000004f10420009c000000000203801900000040022002100000000001010433000004f10410009c00000000010380190000006001100210000000000121019f0000000002000414000004f10420009c0000000002038019000000c002200210000000000112019f000010ed0000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009be0000413d00000080086002700000052b0960009c000000000806a0190000052b0960009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008bd0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008b50000413d000000000a00004b000008bf0000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009cf0000013d000004f101000041000004f10350009c000000000501801900000060035002100000004004400210000000000343019f000004f10420009c0000000002018019000000c001200210000000000113019f000000080200002913bf13ab0000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000104f10030019d000004f1033001980000090f0000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008ff0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008f70000413d000900000008001d000000000504004b0000090f0000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b0000099f0000c13d000000000201004b00000a1c0000c13d000000400300043d000900000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000020100002913bf13970000040f00000009040000290000000001410049000004f102000041000004f10310009c000000000102801900000a200000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a830000413d00000080087002700000052b0970009c000000000807a0190000052b0970009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009720000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000096a0000413d000000000a00004b000009740000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a940000013d0000001f0350018f00000005025002720000098f0000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b000009880000413d000000000403004b0000099d0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f00000000001204350000006001500210000013c100010430000000000201004b00000b440000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b00000b400000c13d000000400100043d00000044021000390000051d03000041000000000032043500000024021000390000001d030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000004c40000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a600210000004fa0b000041000000000606004b000000000b0ac0190000052a069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ae10000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb0027200000a0a0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a020000413d000000000b00004b00000a0c0000613d000000000b060433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000af20000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c000000000402801900000040024002100000024f0000013d000000400100043d00000044021000390000053403000041000000000032043500000024021000390000001f03000039000004bf0000013d0000000306000029000005290660009c0000125d0000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c5c0000613d000000f808200210000004fa09000041000000000202004b000000000908c0190000052a02700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000004fa07600197000004fa08200197000004fa09000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000004fa0770009c000000000a09c01900000000070a004b000001220000c13d0000000808200029000000000783034f000000000707043b000004f90970009c000001220000213d00000000097400490000002008800039000004fa0a000041000000000b98004b000000000b000019000000000b0a2019000004fa09900197000004fa0c800197000000000d9c004b000000000a00801900000000099c013f000004fa0990009c000000000a0bc01900000000090a004b000001220000c13d000000010970008c00000c890000c13d000000000583034f000000000505043b000000010700008a000004fa08000041000000000775004b00000000070000190000000007082019000004fa05500197000004fa0950009c0000000008008019000004fa05500167000004fa0550009c000000000807c019000200600000003d000000000508004b00000def0000c13d000000400500043d000200000005001d000005290550009c0000125d0000213d00000002080000290000004005800039000000400050043f00000020058000390000052c0700004100000000007504350000000105000039000000000058043500000def0000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a700210000004fa0b000041000000000707004b000000000b0ac0190000052a079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b7a0000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000acf0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000ac70000413d000000000b00004b00000ad10000613d000000000b070433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b8b0000013d000005290960009c0000125d0000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c510000413d000000800a9002700000052b0b90009c000000000a09a0190000052b0b90009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b2d0000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000b250000413d000000000700004b00000b2f0000613d0000000007080433000000000707004b00000c5c0000613d00000000070b04330000052a07700197000000f80ca0021000000000077c019f0000052c0770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d7b0000013d00000004010000290000000001010433000000000201004b00000b670000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b00000b670000c13d000000400100043d00000064021000390000051b03000041000000000032043500000044021000390000051c03000041000000000032043500000024021000390000002a030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000001050000013d000000400300043d00000024013000390000000602000029000000000021043500000510010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000beb0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000c1d0000013d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400900043d000005290890009c0000125d0000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a9000390000052d0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000cb40000413d0000000706000029000000800a6002700000052b0b60009c000000000a06a0190000052b0b60009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bd80000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000bd00000413d000000000600004b00000bda0000613d0000000006080433000000000606004b00000c5c0000613d00000000060b04330000052a06600197000000f80ca0021000000000066c019f0000052c0660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000cc70000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c00000000020440190000004002200210000000c001100210000000000121019f00000516011001c7000000080200002913bf13b00000040f000000090a00002900000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000c0a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000c020000413d000000000705004b00000c190000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c600000613d0000001f01400039000000600210018f0000000901200029000000000221004b00000000020000190000000102004039000004f90410009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000200230008c000001220000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c7d0000c13d000000200210003900000512060000410000000000620435000000060600002900000000006504350000000705000029000000000054043500000001040000290000000000410435000005190410009c0000125d0000213d0000008004100039000900000004001d000000400040043f0000051a0410009c0000125d0000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000513050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f760000c13d0000000102000039000004f90130009c0000125d0000213d00000f8c0000013d000005290780009c0000125d0000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d740000c13d0000054201000041000000000010043500000032010000390000003c0000013d000000400200043d0000001f0430018f000000050530027200000c6d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c650000413d000000000604004b00000c7c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006960000013d000004ff020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000051702000041000000000024043500000064021000390000051803000041000001050000013d000000400800043d000200000008001d000000380870008c00000dde0000413d0000002009700270000004f10870009c000000000907a019000004f10870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005290aa0009c0000125d0000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c5c0000613d0000052a05500197000000f80a80021000000000055a019f0000052e055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000def0000013d000005290680009c0000125d0000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c5c0000613d000000070d000029000000f806d00210000004fa0c000041000000000d0d004b000000000c06c0190000052a06b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000cd40000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ccd0000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000ce30000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000cdc0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cf20000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000ceb0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000d010000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000cfa0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000d100000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000d090000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000d1f0000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000d180000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b00000000040000190000000104004039000004f90570009c0000125d0000213d00000001044001900000125d0000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011ad0000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000120e0000c13d000005290870009c0000125d0000213d0000004008700039000000400080043f00000020087000390000052c0900004100000000009804350000000108000039000000000087043500000000080700190000120e0000013d000000f807900210000004fa0c000041000000000909004b000000000c07c0190000052a07b001970000000007c7019f00000000007a0435000000400a00043d0000052907a0009c0000125d0000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a000390000052d0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e500000413d0000000707000029000000800b7002700000052b0c70009c000000000b07a0190000052b0c70009c000000000c000019000000100c002039000000080dc001bf000004f90eb0009c000000000d0ca019000000400cb00270000004f90eb0009c000000000c0ba019000000040ed001bf000004f10bc0009c000000000e0da019000000200dc00270000004f10bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d004039000004f90ec0009c0000125d0000213d000000010dd001900000125d0000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000dca0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000dc20000413d000000000700004b00000dcc0000613d0000000007090433000000000707004b00000c5c0000613d00000000070c04330000052a07700197000000050d000029000000f80bd0021000000000077b019f0000052c0770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e630000013d0000000208000029000005290880009c0000125d0000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c5c0000613d000000f8077002100000052a05500197000000000575019f000004fa055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000f1f0000c13d000004fa05000041000000000762004b00000000070000190000000007058019000004fa06600197000004fa08200197000000000968004b0000000005008019000000000668013f000004fa0660009c000000000507c019000000000505004b000001220000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b000004f90b20009c000001220000213d000000000b2400490000002005500039000004fa0c000041000000000db5004b000000000d000019000000000d0c2019000004fa0bb00197000004fa0e500197000000000fbe004b000000000c008019000000000bbe013f000004fa0bb0009c000000000c0dc019000000000b0c004b000001220000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d000004f906600197000000380860008c000010340000413d0000002009600270000004f10860009c000000000906a019000004f10860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c5c0000613d0000052a09900197000000f80a80021000000000099a019f00000530099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010440000013d000005290790009c0000125d0000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c5c0000613d000000070e000029000000f807e00210000004fa0d000041000000000e0e004b000000000d07c0190000052a07c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e700000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e690000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e7f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e780000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e8e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e870000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e9d0000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e960000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000eac0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000ea50000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000ebb0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000eb40000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000eca0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000ec30000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b00000000040000190000000104004039000004f90560009c0000125d0000213d00000001044001900000125d0000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011d50000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000125a0000c13d000005290860009c0000125d0000213d0000004008600039000000400080043f00000020086000390000052c0900004100000000009804350000000108000039000000000086043500000000080600190000125a0000013d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400200043d000000000101043b000000800310008c00000fcb0000413d00000080031002700000052b0410009c000000000301a0190000052b0410009c0000000004000019000000100400203900000008054001bf000004f90630009c000000000504a0190000004004300270000004f90630009c000000000403a01900000004035001bf000004f10640009c000000000305a0190000002006400270000004f10540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b00000000040000190000000104004039000004f90630009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f640000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f5c0000413d000000000700004b00000f660000613d0000000007020433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fde0000013d000004f103000041000004f10520009c00000000020380190000004002200210000004f10540009c00000000040380190000006004400210000000000224019f000004f10410009c0000000001038019000000c001100210000000000112019f000000080200002913bf13ab0000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000104f10010019d000004f10310019800000fb90000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b00000000040000190000000104004039000004f90510009c0000125d0000213d00000001044001900000125d0000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000fa90000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000fa10000413d000600000008001d000000000501004b00000fb90000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b000010030000c13d000000000201004b0000102f0000c13d000000400300043d000800000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000090100002913bf13970000040f0000000804000029000009200000013d000005290320009c0000125d0000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fec0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fe50000413d00000000026500190000053c060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b00000000050000190000000105004039000004f90620009c0000125d0000213d00000001055001900000125d0000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000df50000013d000000000201004b0000101a0000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b000009b20000613d00000007010000290000000001010433000000000201004b000002fc0000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b000002fc0000c13d00000b580000013d000004f102000041000004f10310009c0000000001028019000000060400002900000a200000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c5c0000613d0000052a08800197000000f806600210000000000686019f0000052f066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010510000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000104a0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010610000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105a0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010710000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106a0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010810000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000107a0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010910000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000108a0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010a10000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000109a0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010b20000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010aa0000413d000000000a07004b000010c10000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010cf0000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b000010c80000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b00000000020000190000000102004039000004f90310009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000004f101000041000004f10260009c000000000601801900000040026002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000101200190000001220000613d0000000901000029000000e4041000390000000201000367000000000241034f000000000202043b000004fb02200198000500000004001d000011100000c13d000000800240008a000000000321034f000000400240008a000000000521034f000000000403043b000000000505043b00000000634500a9000000000605004b000011060000613d00000000655300d9000000000445004b0000110c0000c13d0000008002200039000000000121034f000000000101043b000700000031001e0000110c0000413d000011150000013d0000054201000041000000000010043500000011010000390000003c0000013d00000009020000290000012402200039000000000121034f000000000101043b000700000001001d0000053d01000041000000000010043900000006010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c70000800a0200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000070110006b000011310000a13d000000400100043d00000064021000390000054003000041000000000032043500000044021000390000054103000041000000000032043500000024021000390000002203000039000001000000013d000000000001042f0000000003000031000000090130006a000000230410008a000000050100002900000100011000390000000202000367000000000112034f000000000101043b000004fa05000041000000000641004b00000000060000190000000006058019000004fa04400197000004fa07100197000000000847004b0000000005008019000000000447013f000004fa0440009c000000000506c019000000000405004b000001220000c13d0000000804100029000000000142034f000000000101043b000004f90510009c000001220000213d00000000061300490000002005400039000004fa04000041000000000765004b00000000070000190000000007042019000004fa06600197000004fa08500197000000000968004b0000000004008019000000000668013f000004fa0660009c000000000407c019000000000404004b000001220000c13d0000003f04100039000000200600008a000000000664016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000000041404360000000006510019000000000336004b000001220000213d000000000352034f0000001f0210018f0000000505100272000011780000613d000000000600001900000005076002100000000008740019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000011700000413d000000000602004b000011870000613d0000000505500210000000000353034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000262019f0000000000250435000000000114001900000000000104350000053e01000041000000400200043d0000000000120435000004f101000041000004f10320009c000000000201801900000040012002100000053f011001c7000013c00001042e0000001f0430018f00000005023002720000119d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011960000413d000000000504004b000011ab0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000380840008c000011fd0000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109700039000000000089043500000000080700190000120e0000013d000000380840008c000012490000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a60009c0000125d0000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109600039000000000089043500000000080600190000125a0000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008070019000000400700043d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d000004f909900197000000380d90008c000012990000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012a60000013d000005290860009c0000125d0000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008060019000000400600043d000005290960009c000012610000a13d0000054201000041000000000010043500000041010000390000003c0000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d000004f909900197000000380d90008c000013130000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013200000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000005310b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000012b60000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000012af0000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b000012c50000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000012be0000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b000012d40000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000012cd0000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a400272000012e50000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000012dd0000413d000000000b06004b000012f40000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b000013020000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000012fb0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000138c0000613d0000125d0000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000004fc0b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013300000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013290000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b0000133f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013380000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b0000134e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013470000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a4002720000135f0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013570000413d000000000b07004b0000136e0000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b0000137c0000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013750000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000125d0000c13d000000400010043f000004f101000041000004f10390009c000000000901801900000040039002100000000002020433000004f10420009c00000000020180190000006002200210000000000232019f000010e80000013d00000000030104330000000002320436000000000403004b000013a30000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000139c0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f000013ae002104210000000102000039000000000001042d0000000002000019000000000001042d000013b3002104230000000102000039000000000001042d0000000002000019000000000001042d000013b8002104210000000102000039000000000001042d0000000002000019000000000001042d000013bd002104230000000102000039000000000001042d0000000002000019000000000001042d000013bf00000432000013c00001042e000013c1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe04f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a00000000000000000456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ab3bba1f1a146e9cd5aea24ccd3c92113a7bc0e36eeda956634489abb70bfa37", + "deployedBytecode": "0x0004000000000002000b00000000000200000000030100190000006007300270000004f10670019700030000006103550002000000010355000004f10070019d0000008004000039000000400040043f00000001022001900000002c0000c13d000000040260008c000000340000413d000000000201043b000000e002200270000004f30320009c0000003f0000a13d000004f40320009c000000910000613d000004f50320009c000000c00000613d000004f60220009c000000360000c13d000000040260008a000000200320008c000001220000413d0000000401100370000000000101043b000004f90310009c000001220000213d0000000001120049000004fa02000041000002600310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000002fc0000613d000001220000013d0000000001000416000000000101004b000001220000c13d000000200100003900000100001004430000012000000443000004f201000041000013c00001042e000000000106004b000002fc0000613d0000000001000411000080010110008c000002fc0000c13d000005420100004100000000001004350000000101000039000000040010043f0000054301000041000013c100010430000004f70320009c0000010c0000613d000900000004001d000004f80220009c000000360000c13d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004043000390000000005460049000004fa02000041000002600750008c00000000070000190000000007024019000004fa08500197000000000908004b000000000200a019000004fa0880009c000000000207c019000000000202004b000001220000c13d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb072001970000000002000410000000000727004b000002fc0000c13d0000022403300039000000000731034f000000000707043b0000001f0550008a000004fa08000041000000000957004b00000000090000190000000009088019000004fa05500197000004fa0a700197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000005470019000000000451034f000000000404043b000004f90740009c000001220000213d00000000074600490000002005500039000004fa08000041000000000975004b00000000090000190000000009082019000004fa07700197000004fa0a500197000000000b7a004b000000000800801900000000077a013f000004fa0770009c000000000809c019000000000708004b000001220000c13d000000030740008c000002520000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000003a01000039000000a40010043f0000052201000041000000c40010043f0000052301000041000002620000013d000000040260008a000000600220008c000001220000413d0000004402100370000000000302043b000004f90230009c000001220000213d00000004023000390000000005260049000004fa04000041000002600850008c00000000080000190000000008044019000004fa09500197000000000a09004b000000000400a019000004fa0990009c000000000408c019000000000404004b000001220000c13d0000000004000411000080010440008c000002fc0000c13d0000000004000412000004fb044001970000000008000410000000000484004b000002fc0000c13d0000004404300039000000000441034f0000012408300039000000000381034f000000000404043b000004fb04400197000000000303043b000005010930009c000001f30000413d000004ff01000041000000800010043f0000002001000039000000840010043f0000000801000039000000a40010043f0000050b01000041000000c40010043f0000050c01000041000013c100010430000000040360008a000000600230008c000001220000413d0000004402100370000000000202043b000004f90420009c000001220000213d0000000003230049000004fa04000041000002600530008c00000000050000190000000005044019000004fa03300197000000000603004b000000000400a019000004fa0330009c000000000405c019000000000304004b000001220000c13d0000000003000411000080010330008c000002fc0000c13d0000000003000412000004fb033001970000000004000410000000000343004b000002fc0000c13d000000a403200039000000000331034f0000006402200039000000000121034f000000000101043b000000000203043b000000000302004b000001db0000c13d00000000040004150000000b0440008a00000020044000c90000000001000414000b00000000001d000900000004001d000004f102000041000004f10310009c0000000001028019000000c001100210000080010200003913bf13ab0000040f000000090300002900030000000103550000006001100270000104f10010019d000000050130027000000001012001950000000101200190000002fc0000c13d000000400100043d0000006402100039000004fd0300004100000000003204350000004402100039000004fe030000410000000000320435000000240210003900000025030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c0000000001028019000000400110021000000500011001c7000013c100010430000000040260008a000000600220008c000001220000413d0000004402100370000000000202043b000900000002001d000004f90220009c000001220000213d0000000902000029000800040020003d000000080260006a000004fa03000041000002600420008c00000000040000190000000004034019000004fa02200197000000000502004b000000000300a019000004fa0220009c000000000304c019000000000203004b000001240000613d0000000001000019000013c1000104300000002402100370000000000202043b000700000002001d0000000002000411000080010220008c000002fc0000c13d0000000002000412000004fb022001970000000003000410000600000003001d000000000232004b000002fc0000c13d00000000020004140000052403000041000000a00030043f0000000903000029000501040030003d0000000501100360000000000101043b000000a40010043f0000002401000039000000800010043f000000e001000039000000400010043f000000c001200210000005070110019700000525011001c70000800302000039000000000300001900000000040000190000000005000019000000000600001913bf13ab0000040f000300000001035500000000030100190000006003300270000104f10030019d000004f1083001970000003f038000390000050a04300197000000400600043d0000000003640019000000000443004b00000000040000190000000104004039000004f90530009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f000000000786043600000002030003670000000004000031000000000543034f0000001f098000390000000509900272000001660000613d000000000a000019000000050ba00210000000000cb70019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b0000015e0000413d000000000900004b000001680000613d0000001f0980018f0000000508800272000001740000613d000000000a000019000000050ba00210000000000cb70019000000000bb1034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b0000016c0000413d000000000a09004b000001830000613d0000000508800210000000000181034f00000000088700190000000309900210000000000a080433000000000a9a01cf000000000a9a022f000000000101043b0000010009900089000000000191022f00000000019101cf0000000001a1019f00000000001804350000000101200190000002480000613d000000070100006b000010f20000c13d0000000501000029000001000110008a000000000113034f000000000101043b000000000201004b000002650000c13d0000000501300360000000400900043d000000000101043b000000800210008c000700000009001d0000029c0000413d00000080021002700000052b0610009c000000000201a0190000052b0610009c0000000006000019000000100600203900000008076001bf000004f90820009c000000000706a0190000004006200270000004f90820009c000000000602a01900000004087001bf000004f10260009c000000000807a0190000002007600270000004f10260009c000000000706a01900000002028001bf0000ffff0670008c000000000208a0190000001006700270000000000607a019000000ff0660008c0000000102202039000000200600008a0000004107200039000000000667016f0000000006690019000000000796004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000002062000390000000707000029000000000667043600000021072000390000000507700272000001c70000613d00000000080000190000000509800210000000000a960019000000000995034f000000000909043b00000000009a04350000000108800039000000000978004b000001bf0000413d000000000700004b000001c90000613d00000007070000290000000007070433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808200210000000000778019f0000052c0770004100000000007604350000000302200210000000f80220008900000000012101cf000000ff0220008c000000000100201900000007020000290000002102200039000002ad0000013d00000000431200a900000000422300d9000000000112004b0000110c0000c13d00000000040004150000000a0440008a00000020044000c90000000001000414000a00000000001d000000000203004b000000e80000613d000004f102000041000004f10410009c0000000001028019000000c001100210000004fc011001c700008009020000390000800104000039000000000500001913bf13ab0000040f00000000030004150000000a0330008a00000020033000c9000000f00000013d000000a008800039000000000881034f000000000808043b0000001f0550008a000004fa09000041000000000a58004b000000000a000019000000000a098019000004fa05500197000004fa0b800197000000000c5b004b000000000900801900000000055b013f000004fa0550009c00000000090ac019000000000509004b000001220000c13d0000000002280019000000000521034f000000000805043b000004f90580009c000001220000213d00000000058600490000002009200039000004fa02000041000000000a59004b000000000a000019000000000a022019000004fa05500197000004fa0b900197000000000c5b004b000000000200801900000000055b013f000004fa0550009c00000000020ac019000000000202004b000001220000c13d0000000002000414000004f10520009c000000b60000213d000080060540008c00000000050000190000022f0000c13d000000040580008c00000000050000190000022f0000413d000000000a91034f0000000105000039000000000a0a043b000005020aa00197000005030ba0009c0000022e0000613d000005040ba0009c0000022e0000613d000005050ba0009c0000022e0000613d0000050605a0009c00000000050000190000000105006039000000010550018f000000000a9800190000000006a6004b0000000006000019000000010600403900000000088a004b00000001066041bf000004f108900197000000000181034f000000000803004b000003580000c13d00000001036001900000110c0000c13d00000508030000410000050906000041000000000505004b000000000603c019000000c0022002100000050702200197000000000226019f0000000003a70049000004f10330019700000000013103df00000000012103af0000000002040019000003630000013d0000000001060433000004f102000041000004f10310009c0000000001028019000004f10370009c000000000702801900000040027002100000006001100210000000000121019f000013c100010430000000000751034f000000000707043b00000502077001970000050d0870009c000002fa0000c13d000000430440008c000003c10000213d000004ff01000041000000800010043f0000002001000039000000840010043f0000004001000039000000a40010043f0000051f01000041000000c40010043f0000052001000041000000e40010043f0000052101000041000013c100010430000000710210008c000002fe0000c13d0000000902000029000001c401200039000000000113034f0000000002240049000000230220008a000000000101043b000004fa05000041000000000621004b00000000060000190000000006058019000004fa02200197000004fa07100197000000000827004b0000000005008019000000000227013f000004fa0220009c000000000506c019000000000205004b000001220000c13d0000000801100029000000000213034f000000000202043b000004f90520009c000001220000213d00000000052400490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000512001a00000000020004140000110c0000413d000000000654004b0000110c0000413d000005320620009c0000069d0000413d000000400100043d00000044021000390000050b03000041000000000032043500000024021000390000000803000039000004bf0000013d000005290290009c0000125d0000213d00000007060000290000004002600039000000400020043f000000010200003a00000000022604360000000006500350000000000606043b000000000062043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000120435000000400100043d0000000502000029000000600220008a000000000623034f000000000606043b000000800760008c000004420000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008810019000000000918004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f0000000208700039000000000881043600000021097000390000000509900272000002e80000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000002e00000413d000000000900004b000002ea0000613d0000000009010433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107100039000004520000013d0000050e0170009c000003e00000c13d0000000001000019000013c00001042e000000020210008c000003e80000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c000004cb0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000003460000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b0000033e0000413d000000000700004b000003480000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000004de0000013d00000001066001900000110c0000c13d0000000006a70049000004f10660019700000000016103df000000c002200210000005070220019700000508022001c700000000012103af0000800902000039000000000600001913bf13b50000040f000300000001035500000000030100190000006003300270000104f10030019d000004f10330019700000001022001900000049e0000613d0000003f023000390000050a04200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f00000000043204360000001f053000390000000505500272000003860000613d00000000060000310000000206600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000037e0000413d000000000500004b000003880000613d0000001f0530018f0000000503300272000003940000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000038c0000413d000000000605004b000003a30000613d0000000503300210000000000131034f00000000033400190000000304500210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000000400100043d00000020030000390000000004310436000000000302043300000000003404350000004004100039000000000503004b000003b30000613d000000000500001900000000064500190000002005500039000000000725001900000000070704330000000000760435000000000635004b000003ac0000413d000000000243001900000000000204350000005f02300039000000200300008a000000000232016f000004f103000041000004f10420009c0000000002038019000004f10410009c000000000103801900000040011002100000006002200210000000000112019f000013c00001042e0000000404500039000000000541034f000000000505043b000800000005001d000004fb0550009c000001220000213d000001400330008a000000000331034f0000002004400039000000000441034f000000000404043b000700000004001d000000000303043b0000051004000041000000800040043f000004fb02200197000500000002001d000000840020043f000004fb02300197000600000002001d000000a40020043f00000000020004140000000803000029000000040330008c0000052a0000c13d000000000161034f0000000103000031000000200230008c00000000040300190000002004008039000005560000013d000004ff01000041000000800010043f0000002001000039000000840010043f0000001a01000039000000a40010043f0000050f01000041000000bd0000013d000000010110008c000004b90000c13d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400300043d000000000401043b000000800140008c0000057d0000413d00000080014002700000052b0240009c000000000104a0190000052b0240009c0000000002000019000000100200203900000008052001bf000004f90610009c000000000502a0190000004002100270000004f90610009c000000000201a01900000004015001bf000004f10620009c000000000105a0190000002006200270000004f10520009c000000000602a01900000002051001bf0000ffff0260008c000000000501a0190000001001600270000000000106a019000000ff0110008c0000000105502039000000200100008a0000004102500039000000000112016f0000000001130019000000000231004b00000000020000190000000102004039000004f90610009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000020150003900000000061304360000000201000367000000000200003100000021075000390000000507700272000004300000613d000000000821034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000004280000413d000000000700004b000004320000613d0000000007030433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000045401cf000000ff0550008c00000000040020190000002105300039000005900000013d000005290710009c0000125d0000213d0000004007100039000000400070043f000000010700003a00000000077104360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400220008a000000000623034f000000400200043d000000000606043b000000800760008c000005dc0000413d00000080076002700000052b0860009c000000000706a0190000052b0860009c0000000008000019000000100800203900000008098001bf000004f90a70009c000000000908a0190000004008700270000004f90a70009c000000000807a019000000040a9001bf000004f10780009c000000000a09a0190000002009800270000004f10780009c000000000908a0190000000207a001bf0000ffff0890008c00000000070aa0190000001008900270000000000809a019000000ff0880008c0000000107702039000000200800008a0000004109700039000000000889016f0000000008820019000000000928004b00000000090000190000000109004039000004f90a80009c0000125d0000213d00000001099001900000125d0000c13d000000400080043f00000002087000390000000008820436000000210970003900000005099002720000048c0000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000004840000413d000000000900004b0000048e0000613d0000000009020433000000000909004b00000c5c0000613d00000000090804330000052a09900197000000f80a70021000000000099a019f0000052c0990004100000000009804350000000307700210000000f80770008900000000067601cf000000ff0770008c00000000060020190000002107200039000005ec0000013d0000001f0430018f0000000502300272000004a90000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004a20000413d000000000504004b000004b70000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000400100043d000000440210003900000526030000410000000000320435000000240210003900000017030000390000000000320435000004ff020000410000000000210435000000040210003900000020030000390000000000320435000004f102000041000004f10310009c000000000102801900000040011002100000051e011001c7000013c100010430000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000008700000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005180000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005100000413d000000000800004b0000051a0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000008810000013d000004f101000041000004f10320009c0000000002018019000000c00120021000000511011001c7000000080200002913bf13b00000040f00000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000005430000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000053b0000413d000000000705004b000005520000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000067a0000613d0000001f02400039000000600520018f00000080025001bf000000400020043f000000200430008c000001220000413d000000800400043d000000070440006c000002fc0000813d000000a00450003900000512060000410000000000640435000000a40650003900000006070000290000000000760435000000c40650003900000000000604350000004406000039000100000006001d00000000006204350000014006500039000000400060043f00000120065000390000051307000041000000000076043500000100065001bf0000002005000039000300000005001d000200000006001d0000000000560435000000000502043300000000020004140000000806000029000000040660008c000008cf0000c13d0000000102000039000004f90430009c0000125d0000213d000008e30000013d000005290130009c0000125d0000213d0000004001300039000000400010043f000000010100003a000000000513043600000000020000310000000201000367000000000621034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807400210000004fa08000041000000000404004b000000000807c0190000052a04600197000000000484019f00000000004504350000000505100360000000400400043d000000000505043b000000800650008c000009250000413d00000080065002700000052b0750009c000000000605a0190000052b0750009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c0000000106602039000000200700008a0000004108600039000000000778016f0000000007740019000000000847004b00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f0000000207600039000000000774043600000021086000390000000508800272000005ca0000613d000000000921034f000000000a000019000000050ba00210000000000cb70019000000000bb9034f000000000b0b043b0000000000bc0435000000010aa00039000000000b8a004b000005c20000413d000000000800004b000005cc0000613d0000000008040433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000056501cf000000ff0660008c00000000050020190000002106400039000009360000013d000005290720009c0000125d0000213d0000004007200039000000400070043f000000010700003a00000000077204360000000008500350000000000808043b000000000087043500000c5c0000613d000000f809600210000004fa0a000041000000000606004b000000000a09c0190000052a068001970000000006a6019f0000000000670435000000400600043d000500000006001d00000020076000390000000006010433000000000806004b000005fb0000613d000000000800001900000000097800190000002008800039000000000a180019000000000a0a04330000000000a90435000000000968004b000005f40000413d000000000176001900000000000104350000000007020433000000000807004b000006080000613d000000000800001900000000091800190000002008800039000000000a280019000000000a0a04330000000000a90435000000000978004b000006010000413d000000000117001900000000000104350000000001670019000000050600002900000000001604350000003f011000390001002000000092000000010110017f0000000002610019000000000112004b00000000010000190000000101004039000400000002001d000004f90220009c0000125d0000213d00000001011001900000125d0000c13d0000000401000029000000400010043f000005290110009c0000125d0000213d00000009070000290000004401700039000000000113034f000000000101043b00000004080000290000004002800039000000400020043f00000020028000390000052d060000410000000000620435000000150200003900000000002804350000006001100210000000210280003900000000001204350000012401700039000000000213034f000000400600043d000300000006001d000000000202043b000000800620008c00000a2b0000413d00000080062002700000052b0720009c000000000602a0190000052b0720009c0000000007000019000000100700203900000008087001bf000004f90960009c000000000807a0190000004007600270000004f90960009c000000000706a01900000004098001bf000004f10670009c000000000908a0190000002008700270000004f10670009c000000000807a01900000002069001bf0000ffff0780008c000000000609a0190000001007800270000000000708a019000000ff0770008c00000001066020390000004107600039000000010770017f0000000307700029000000030870006c00000000080000190000000108004039000004f90970009c0000125d0000213d00000001088001900000125d0000c13d000000400070043f00000002076000390000000308000029000000000778043600000021086000390000000508800272000006660000613d0000000009000019000000050a900210000000000ba70019000000000aa5034f000000000a0a043b0000000000ab04350000000109900039000000000a89004b0000065e0000413d000000000800004b000006680000613d00000003080000290000000008080433000000000808004b00000c5c0000613d00000000080704330000052a08800197000000f809600210000000000889019f0000052c0880004100000000008704350000000306600210000000f80660008900000000026201cf000000ff0660008c00000000020020190000000306000029000000210660003900000a3d0000013d000000400200043d0000001f0430018f0000000505300272000006870000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000067f0000413d000000000604004b000006960000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000004f101000041000004f10420009c000000000201801900000040012002100000006002300210000000000121019f000013c100010430000004f101100197000000000113034f0000000003540049000004f10330019700000000013103df000000c002200210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10530019700030000000103550000000102200190000009840000613d0000003f025000390000050a02200197000000400600043d0000000002260019000000000362004b00000000030000190000000103004039000004f90420009c0000125d0000213d00000001033001900000125d0000c13d000000400020043f0000000004560436000000020200036700000000030000310000001f075000390000000507700272000006cb0000613d000000000832034f0000000009000019000000050a900210000000000ba40019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b000006c30000413d000000000700004b000006cd0000613d0000001f0750018f0000000505500272000006d90000613d00000000080000190000000509800210000000000a940019000000000991034f000000000909043b00000000009a04350000000108800039000000000958004b000006d10000413d000000000807004b000006e80000613d0000000505500210000000000151034f00000000055400190000000307700210000000000805043300000000087801cf000000000878022f000000000101043b0000010007700089000000000171022f00000000017101cf000000000181019f00000000001504350000000001060433000000200110008c00000a240000c13d00000009060000290000000001630049000000230510008a000702040060003d0000000701200360000000000101043b000004fa06000041000000000751004b00000000070000190000000007068019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d0000000004040433000400000004001d0000000801100029000000000412034f000000000504043b000004f90450009c000001220000213d000000050450021000000000034300490000002006100039000004fa01000041000000000736004b00000000070000190000000007012019000004fa03300197000004fa08600197000000000938004b0000000001008019000000000338013f000004fa0330009c000000000107c019000000000101004b000001220000c13d000000400100043d00000020031000390000053305500198000007230000613d000000000262034f000000000600001900000005076002100000000008730019000000000772034f000000000707043b00000000007804350000000106600039000000000756004b0000071b0000413d000000000200004b000007250000613d00000000004104350000003f02400039000000200400008a000000000242016f0000000002210019000000000412004b00000000040000190000000104004039000004f90520009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000004f102000041000004f10430009c000000000302801900000040033002100000000001010433000004f10410009c00000000010280190000006001100210000000000131019f0000000003000414000004f10430009c0000000003028019000000c002300210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d0000000002000031000000090320006a000000230530008a000000070300002900000020043000390000000203000367000000000443034f000000000404043b000004fa06000041000000000754004b00000000070000190000000007068019000004fa05500197000004fa08400197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000101043b000700000001001d000000000106004b000001220000c13d0000000801400029000000000413034f000000000404043b000004f90540009c000001220000213d00000000054200490000002001100039000004fa06000041000000000751004b00000000070000190000000007062019000004fa05500197000004fa08100197000000000958004b0000000006008019000000000558013f000004fa0550009c000000000607c019000000000506004b000001220000c13d000000000514001a00000000040004140000110c0000413d000000000652004b0000110c0000413d000004f10640009c000002950000213d000004f101100197000000000113034f0000000002520049000004f10220019700000000012103df000000c002400210000005070220019700000509022001c700000000012103af000080100200003913bf13ba0000040f00000000030100190000006003300270000104f10030019d000004f10330019700030000000103550000000102200190000011920000613d0000003f023000390000050a02200197000000400500043d0000000002250019000000000452004b00000000040000190000000104004039000004f90620009c0000125d0000213d00000001044001900000125d0000c13d000000400020043f000000000235043600000002040003670000001f063000390000000506600272000007a40000613d000000000740036800000000080000190000000509800210000000000a920019000000000997034f000000000909043b00000000009a04350000000108800039000000000968004b0000079c0000413d000000000600004b000007a60000613d0000001f0630018f0000000503300272000007b20000613d000000000700001900000005087002100000000009820019000000000881034f000000000808043b00000000008904350000000107700039000000000837004b000007aa0000413d000000000706004b000007c10000613d0000000503300210000000000131034f00000000033200190000000306600210000000000703043300000000076701cf000000000767022f000000000101043b0000010006600089000000000161022f00000000016101cf000000000171019f00000000001304350000000001050433000000200110008c00000a240000c13d000000090c0000290000006401c00039000000000114034f0000004403c00039000000000534034f0000002403c00039000000000634034f0000012403c00039000000000734034f0000000508400360000000e403c00039000000000934034f000000c403c00039000000000a34034f000000a403c00039000000000b34034f0000008403c00039000000000c34034f0000000803400360000000000303043b000000000406043b000000000505043b000000000601043b000000000c0c043b000000000b0b043b000000000a0a043b000000000909043b000000000808043b000000000707043b0000000002020433000000400100043d000001c00d10003900000000002d0435000001a002100039000000070d0000290000000000d204350000018002100039000000040d0000290000000000d2043500000160021000390000000000720435000001400210003900000000008204350000012002100039000000000092043500000100021000390000000000a20435000000e0021000390000000000b20435000000c0021000390000000000c20435000000a0021000390000000000620435000000800210003900000000005204350000006002100039000000000042043500000040021000390000000000320435000000200210003900000535030000410000000000320435000001c0030000390000000000310435000005360310009c0000125d0000213d000001e003100039000000400030043f000004f104000041000004f10320009c000000000204801900000040022002100000000001010433000004f10310009c00000000010480190000006001100210000000000121019f0000000002000414000004f10320009c0000000002048019000000c002200210000000000112019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000101043b000500000001001d000000400100043d000700000001001d000005270100004100000000001004390000000001000414000004f10210009c000004f101008041000000c00110021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d00000007040000290000002002400039000000000101043b0000053703000041000000000032043500000080034000390000000000130435000000600140003900000538030000410000000000310435000000400140003900000539030000410000000000310435000000800100003900000000001404350000053a0140009c0000125d0000213d0000000704000029000000a001400039000000400010043f000004f101000041000004f10320009c000000000201801900000040022002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000102200190000001220000613d000000000301043b000000400100043d00000042021000390000000504000029000000000042043500000020021000390000053b0400004100000000004204350000002204100039000000000034043500000042030000390000000000310435000005190310009c0000125d0000213d0000008003100039000000400030043f000004f103000041000004f10420009c000000000203801900000040022002100000000001010433000004f10410009c00000000010380190000006001100210000000000121019f0000000002000414000004f10420009c0000000002038019000000c002200210000000000112019f000010ed0000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000400760008a000000000671034f000000000606043b000000800860008c000009be0000413d00000080086002700000052b0960009c000000000806a0190000052b0960009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000008bd0000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b000008b50000413d000000000a00004b000008bf0000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000068601cf000000ff0880008c00000000060020190000002108500039000009cf0000013d000004f101000041000004f10350009c000000000501801900000060035002100000004004400210000000000343019f000004f10420009c0000000002018019000000c001200210000000000113019f000000080200002913bf13ab0000040f000400600000003d000000010220018f000300000001035500000000030100190000006003300270000104f10030019d000004f1033001980000090f0000613d0000003f04300039000000200500008a000000000454016f000000400500043d0000000004450019000400000005001d000000000554004b00000000050000190000000105004039000004f90640009c0000125d0000213d00000001055001900000125d0000c13d000000400040043f0000001f0430018f000000040500002900000000083504360000000503300272000008ff0000613d000000000500001900000005065002100000000007680019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000008f70000413d000900000008001d000000000504004b0000090f0000613d0000000503300210000000000131034f00000009033000290000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000004010000290000000001010433000000000202004b0000099f0000c13d000000000201004b00000a1c0000c13d000000400300043d000900000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000020100002913bf13970000040f00000009040000290000000001410049000004f102000041000004f10310009c000000000102801900000a200000013d000005290640009c0000125d0000213d0000004006400039000000400060043f000000000721034f000000010600003a00000000066404360000000007700350000000000707043b000000000076043500000c5c0000613d000000f808500210000004fa09000041000000000505004b000000000908c0190000052a05700197000000000595019f0000000000560435000000400500043d0000000506000029000000600660008a000000000761034f000000000707043b000000800870008c00000a830000413d00000080087002700000052b0970009c000000000807a0190000052b0970009c00000000090000190000001009002039000000080a9001bf000004f90b80009c000000000a09a0190000004009800270000004f90b80009c000000000908a019000000040ba001bf000004f10890009c000000000b0aa019000000200a900270000004f10890009c000000000a09a0190000000208b001bf0000ffff09a0008c00000000080ba0190000001009a0027000000000090aa019000000ff0990008c0000000108802039000000200900008a000000410a80003900000000099a016f0000000009950019000000000a59004b000000000a000019000000010a004039000004f90b90009c0000125d0000213d000000010aa001900000125d0000c13d000000400090043f00000002098000390000000009950436000000210a800039000000050aa00272000009720000613d000000000b21034f000000000c000019000000050dc00210000000000ed90019000000000ddb034f000000000d0d043b0000000000de0435000000010cc00039000000000dac004b0000096a0000413d000000000a00004b000009740000613d000000000a050433000000000a0a004b00000c5c0000613d000000000a0904330000052a0aa00197000000f80b800210000000000aab019f0000052c0aa000410000000000a904350000000308800210000000f80880008900000000078701cf000000ff0880008c0000000007002019000000210850003900000a940000013d0000001f0350018f00000005025002720000098f0000613d00000000040000190000000506400210000000000761034f000000000707043b00000000007604350000000104400039000000000624004b000009880000413d000000000403004b0000099d0000613d00000003033002100000000502200210000000000402043300000000043401cf000000000434022f000000000121034f000000000101043b0000010003300089000000000131022f00000000013101cf000000000141019f00000000001204350000006001500210000013c100010430000000000201004b00000b440000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b00000b400000c13d000000400100043d00000044021000390000051d03000041000000000032043500000024021000390000001d030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000004c40000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a600210000004fa0b000041000000000606004b000000000b0ac0190000052a069001970000000006b6019f0000000000680435000000400600043d000000200770008a000000000871034f000000000808043b000000800980008c00000ae10000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa60019000000000b6a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa60436000000210b900039000000050bb0027200000a0a0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000a020000413d000000000b00004b00000a0c0000613d000000000b060433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210960003900000af20000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c000000000402801900000040024002100000024f0000013d000000400100043d00000044021000390000053403000041000000000032043500000024021000390000001f03000039000004bf0000013d0000000306000029000005290660009c0000125d0000213d00000003070000290000004006700039000000400060043f000000010600003a00000000066704360000000007500350000000000707043b000000000076043500000c5c0000613d000000f808200210000004fa09000041000000000202004b000000000908c0190000052a02700197000000000292019f0000000000260435000000080640006a000000a001100039000000000213034f000000000202043b0000001f0660008a000004fa07600197000004fa08200197000004fa09000041000000000a78004b000000000a000019000000000a094019000000000778013f000000000862004b0000000009004019000004fa0770009c000000000a09c01900000000070a004b000001220000c13d0000000808200029000000000783034f000000000707043b000004f90970009c000001220000213d00000000097400490000002008800039000004fa0a000041000000000b98004b000000000b000019000000000b0a2019000004fa09900197000004fa0c800197000000000d9c004b000000000a00801900000000099c013f000004fa0990009c000000000a0bc01900000000090a004b000001220000c13d000000010970008c00000c890000c13d000000000583034f000000000505043b000000010700008a000004fa08000041000000000775004b00000000070000190000000007082019000004fa05500197000004fa0950009c0000000008008019000004fa05500167000004fa0550009c000000000807c019000200600000003d000000000508004b00000def0000c13d000000400500043d000200000005001d000005290550009c0000125d0000213d00000002080000290000004005800039000000400050043f00000020058000390000052c0700004100000000007504350000000105000039000000000058043500000def0000013d000005290850009c0000125d0000213d0000004008500039000000400080043f000000000921034f000000010800003a00000000088504360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a700210000004fa0b000041000000000707004b000000000b0ac0190000052a079001970000000007b7019f0000000000780435000000400700043d000000400660008a000000000861034f000000000808043b000000800980008c00000b7a0000413d00000080098002700000052b0a80009c000000000908a0190000052b0a80009c000000000a000019000000100a002039000000080ba001bf000004f90c90009c000000000b0aa019000000400a900270000004f90c90009c000000000a09a019000000040cb001bf000004f109a0009c000000000c0ba019000000200ba00270000004f109a0009c000000000b0aa0190000000209c001bf0000ffff0ab0008c00000000090ca019000000100ab00270000000000a0ba019000000ff0aa0008c0000000109902039000000200a00008a000000410b900039000000000aab016f000000000aa70019000000000b7a004b000000000b000019000000010b004039000004f90ca0009c0000125d0000213d000000010bb001900000125d0000c13d0000004000a0043f000000020a900039000000000aa70436000000210b900039000000050bb0027200000acf0000613d000000000c21034f000000000d000019000000050ed00210000000000fea0019000000000eec034f000000000e0e043b0000000000ef0435000000010dd00039000000000ebd004b00000ac70000413d000000000b00004b00000ad10000613d000000000b070433000000000b0b004b00000c5c0000613d000000000b0a04330000052a0bb00197000000f80c900210000000000bbc019f0000052c0bb000410000000000ba04350000000309900210000000f80990008900000000089801cf000000ff0990008c0000000008002019000000210970003900000b8b0000013d000005290960009c0000125d0000213d0000004009600039000000400090043f000000000a21034f000000010900003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400800043d00070040007000920000000709100360000000000909043b000000800a90008c00000c510000413d000000800a9002700000052b0b90009c000000000a09a0190000052b0b90009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000b2d0000613d000000000d21034f000000000e000019000000050fe002100000000007fb0019000000000ffd034f000000000f0f043b0000000000f70435000000010ee000390000000007ce004b00000b250000413d000000000700004b00000b2f0000613d0000000007080433000000000707004b00000c5c0000613d00000000070b04330000052a07700197000000f80ca0021000000000077c019f0000052c0770004100000000007b04350000000307a00210000000f80770008900000000097901cf000000ff0770008c00000000090020190000002107800039000000000097043500000d7b0000013d00000004010000290000000001010433000000000201004b00000b670000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000009010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b00000b670000c13d000000400100043d00000064021000390000051b03000041000000000032043500000044021000390000051c03000041000000000032043500000024021000390000002a030000390000000000320435000004ff02000041000000000021043500000004021000390000000303000029000001050000013d000000400300043d00000024013000390000000602000029000000000021043500000510010000410000000000130435000900000003001d00000004013000390000000502000029000000000021043500000000010004140000000802000029000000040220008c00000beb0000c13d0000000103000031000000200130008c0000000004030019000000200400803900000c1d0000013d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000a21034f000000010900003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d000000f80b800210000004fa0c000041000000000808004b000000000c0bc0190000052a08a001970000000008c8019f0000000000890435000000400900043d000005290890009c0000125d0000213d000000200860008a000000000881034f000000000808043b000000400a9000390000004000a0043f000000200a9000390000052d0b0000410000000000ba0435000000150a0000390000000000a904350000006008800210000000210a90003900000000008a0435000000c006600039000000000661034f000000400800043d000000000606043b000700000006001d000000800a60008c00000cb40000413d0000000706000029000000800a6002700000052b0b60009c000000000a06a0190000052b0b60009c000000000b000019000000100b002039000000080cb001bf000004f90da0009c000000000c0ba019000000400ba00270000004f90da0009c000000000b0aa019000000040dc001bf000004f10ab0009c000000000d0ca019000000200cb00270000004f10ab0009c000000000c0ba019000000020ad001bf0000ffff0bc0008c000000000a0da019000000100bc00270000000000b0ca019000000ff0bb0008c000000010aa02039000000200b00008a000000410ca00039000000000bbc016f000000000bb80019000000000c8b004b000000000c000019000000010c004039000004f90db0009c0000125d0000213d000000010cc001900000125d0000c13d0000004000b0043f000000020ba00039000000000bb80436000000210ca00039000000050cc0027200000bd80000613d000000000d21034f000000000e000019000000050fe002100000000006fb0019000000000ffd034f000000000f0f043b0000000000f60435000000010ee000390000000006ce004b00000bd00000413d000000000600004b00000bda0000613d0000000006080433000000000606004b00000c5c0000613d00000000060b04330000052a06600197000000f80ca0021000000000066c019f0000052c0660004100000000006b04350000000306a00210000000f806600089000000070a6001ef000000ff0660008c000000000a00201900000021068000390000000000a6043500000cc70000013d000004f102000041000004f10310009c00000000010280190000000904000029000004f10340009c00000000020440190000004002200210000000c001100210000000000121019f00000516011001c7000000080200002913bf13b00000040f000000090a00002900000000030100190000006003300270000004f103300197000000200430008c000000000403001900000020040080390000001f0540018f000000050640027200000c0a0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b00000c020000413d000000000705004b00000c190000613d0000000506600210000000000761034f00000009066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0003000000010355000000010220019000000c600000613d0000001f01400039000000600210018f0000000901200029000000000221004b00000000020000190000000102004039000004f90410009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000000200230008c000001220000413d0000004404100039000000240510003900000009020000290000000002020433000000000202004b00000c7d0000c13d000000200210003900000512060000410000000000620435000000060600002900000000006504350000000705000029000000000054043500000001040000290000000000410435000005190410009c0000125d0000213d0000008004100039000900000004001d000000400040043f0000051a0410009c0000125d0000213d000000c004100039000000400040043f000000030400002900000009050000290000000000450435000000a00410003900000513050000410000000000540435000000000401043300000000010004140000000805000029000000040550008c00000f760000c13d0000000102000039000004f90130009c0000125d0000213d00000f8c0000013d000005290780009c0000125d0000213d0000004007800039000000400070043f000000000721034f000000010a00003a000000000aa804360000000007700350000000000b07043b0000000000ba043500000d740000c13d0000054201000041000000000010043500000032010000390000003c0000013d000000400200043d0000001f0430018f000000050530027200000c6d0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b00000c650000413d000000000604004b00000c7c0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000006960000013d000004ff020000410000000000210435000000040210003900000003030000290000000000320435000000360200003900000000002504350000051702000041000000000024043500000064021000390000051803000041000001050000013d000000400800043d000200000008001d000000380870008c00000dde0000413d0000002009700270000004f10870009c000000000907a019000004f10870009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000000020a000029000005290aa0009c0000125d0000213d000000000898019f000000020a0000290000004009a00039000000400090043f000000020980003a00000000099a04360000000005500350000000000505043b000000000059043500000c5c0000613d0000052a05500197000000f80a80021000000000055a019f0000052e055001c700000000005904350000000305800210000000f80550015f00000000055701cf00000002070000290000002107700039000000000057043500000def0000013d000005290680009c0000125d0000213d0000004006800039000000400060043f000000000621034f000000010a00003a000000000aa804360000000006600350000000000b06043b0000000000ba043500000c5c0000613d000000070d000029000000f806d00210000004fa0c000041000000000d0d004b000000000c06c0190000052a06b001970000000006c6019f00000000006a0435000000400600043d000000200b600039000000000a030433000000000c0a004b00000cd40000613d000000000c000019000000000dbc0019000000200cc00039000000000e3c0019000000000e0e04330000000000ed0435000000000dac004b00000ccd0000413d0000000003ba0019000000000003043500000000036a0019000000200b300039000000000a040433000000000c0a004b00000ce30000613d000000000c000019000000000dbc0019000000200cc00039000000000e4c0019000000000e0e04330000000000ed0435000000000dac004b00000cdc0000413d0000000004ba0019000000000004043500000000033a0019000000200a3000390000000004050433000000000b04004b00000cf20000613d000000000b000019000000000cab0019000000200bb00039000000000d5b0019000000000d0d04330000000000dc0435000000000c4b004b00000ceb0000413d0000000005a400190000000000050435000000000334001900000020053000390000000004070433000000000a04004b00000d010000613d000000000a000019000000000b5a0019000000200aa00039000000000c7a0019000000000c0c04330000000000cb0435000000000b4a004b00000cfa0000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000704004b00000d100000613d0000000007000019000000000a5700190000002007700039000000000b970019000000000b0b04330000000000ba0435000000000a47004b00000d090000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000704004b00000d1f0000613d000000000700001900000000095700190000002007700039000000000a870019000000000a0a04330000000000a90435000000000947004b00000d180000413d000000000554001900000000000504350000000003630049000000000334001900000000003604350000003f04300039000000200300008a000000000434016f0000000007640019000000000447004b00000000040000190000000104004039000004f90570009c0000125d0000213d00000001044001900000125d0000c13d000000400070043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011ad0000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000120e0000c13d000005290870009c0000125d0000213d0000004008700039000000400080043f00000020087000390000052c0900004100000000009804350000000108000039000000000087043500000000080700190000120e0000013d000000f807900210000004fa0c000041000000000909004b000000000c07c0190000052a07b001970000000007c7019f00000000007a0435000000400a00043d0000052907a0009c0000125d0000213d000000070c0000290000002007c0008a000000000771034f000000000707043b0000004009a00039000000400090043f0000002009a000390000052d0b0000410000000000b90435000000150900003900000000009a043500000060077002100000002109a000390000000000790435000000c007c00039000000000771034f000000400900043d000000000707043b000700000007001d000000800b70008c00000e500000413d0000000707000029000000800b7002700000052b0c70009c000000000b07a0190000052b0c70009c000000000c000019000000100c002039000000080dc001bf000004f90eb0009c000000000d0ca019000000400cb00270000004f90eb0009c000000000c0ba019000000040ed001bf000004f10bc0009c000000000e0da019000000200dc00270000004f10bc0009c000000000d0ca0190000000207e001bf0000ffff0cd0008c00000000070ea019000000100cd00270000000000c0da019000000ff0cc0008c0000000107702039000000200c00008a000500000007001d000000410d700039000000000ccd016f000000000cc90019000000000d9c004b000000000d000019000000010d004039000004f90ec0009c0000125d0000213d000000010dd001900000125d0000c13d0000004000c0043f0000000507000029000000020c700039000000000cc90436000000210d700039000000050dd0027200000dca0000613d000000000e21034f000000000f0000190000000507f00210000000000b7c001900000000077e034f000000000707043b00000000007b0435000000010ff000390000000007df004b00000dc20000413d000000000700004b00000dcc0000613d0000000007090433000000000707004b00000c5c0000613d00000000070c04330000052a07700197000000050d000029000000f80bd0021000000000077b019f0000052c0770004100000000007c04350000000307d00210000000f807700089000000070b7001ef000000ff0770008c000000000b00201900000021079000390000000000b7043500000e630000013d0000000208000029000005290880009c0000125d0000213d00000002090000290000004008900039000000400080043f000000010800003a00000000088904360000000005500350000000000505043b000000000058043500000c5c0000613d000000f8077002100000052a05500197000000000575019f000004fa055001670000000000580435000000800110008a000000000513034f0000006001000039000000000505043b000000000505004b00000f1f0000c13d000004fa05000041000000000762004b00000000070000190000000007058019000004fa06600197000004fa08200197000000000968004b0000000005008019000000000668013f000004fa0660009c000000000507c019000000000505004b000001220000c13d000000070500002900000000060504330000000505000029000000000705043300000004050000290000000008050433000000030500002900000000090504330000000205000029000000000a0504330000000805200029000000000253034f000000000202043b000004f90b20009c000001220000213d000000000b2400490000002005500039000004fa0c000041000000000db5004b000000000d000019000000000d0c2019000004fa0bb00197000004fa0e500197000000000fbe004b000000000c008019000000000bbe013f000004fa0bb0009c000000000c0dc019000000000b0c004b000001220000c13d0000000006670019000000000686001900000000069600190000000006a60019000000000626001900000000070104330000000006760019000000400700043d000004f906600197000000380860008c000010340000413d0000002009600270000004f10860009c000000000906a019000004f10860009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000943034f000000020480003a00000000044704360000000009900350000000000909043b000000000094043500000c5c0000613d0000052a09900197000000f80a80021000000000099a019f00000530099001c700000000009404350000000304800210000000f80440015f00000000044601cf00000021067000390000000000460435000010440000013d000005290790009c0000125d0000213d0000004007900039000000400070043f000000000721034f000000010b00003a000000000bb904360000000007700350000000000c07043b0000000000cb043500000c5c0000613d000000070e000029000000f807e00210000004fa0d000041000000000e0e004b000000000d07c0190000052a07c001970000000007d7019f00000000007b0435000000400700043d000000200c700039000000000b030433000000000d0b004b00000e700000613d000000000d000019000000000ecd0019000000200dd00039000000000f3d0019000000000f0f04330000000000fe0435000000000ebd004b00000e690000413d0000000003cb0019000000000003043500000000037b0019000000200c300039000000000b040433000000000d0b004b00000e7f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f4d0019000000000f0f04330000000000fe0435000000000ebd004b00000e780000413d0000000004cb0019000000000004043500000000033b0019000000200b3000390000000004050433000000000c04004b00000e8e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e5c0019000000000e0e04330000000000ed0435000000000d4c004b00000e870000413d0000000005b400190000000000050435000000000334001900000020053000390000000004060433000000000b04004b00000e9d0000613d000000000b000019000000000c5b0019000000200bb00039000000000d6b0019000000000d0d04330000000000dc0435000000000c4b004b00000e960000413d00000000055400190000000000050435000000000334001900000020053000390000000004080433000000000604004b00000eac0000613d0000000006000019000000000b5600190000002006600039000000000c860019000000000c0c04330000000000cb0435000000000b46004b00000ea50000413d000000000554001900000000000504350000000003340019000000200530003900000000040a0433000000000604004b00000ebb0000613d000000000600001900000000085600190000002006600039000000000ba60019000000000b0b04330000000000b80435000000000846004b00000eb40000413d00000000055400190000000000050435000000000334001900000020053000390000000004090433000000000604004b00000eca0000613d000000000600001900000000085600190000002006600039000000000a960019000000000a0a04330000000000a80435000000000846004b00000ec30000413d000000000554001900000000000504350000000003730049000000000334001900000000003704350000003f04300039000000200300008a000000000434016f0000000006740019000000000446004b00000000040000190000000104004039000004f90560009c0000125d0000213d00000001044001900000125d0000c13d000000400060043f0000000905000029000001c404500039000000000441034f0000000005520049000000230550008a000000000404043b000004fa08000041000000000954004b00000000090000190000000009088019000004fa05500197000004fa0a400197000000000b5a004b000000000800801900000000055a013f000004fa0550009c000000000809c019000000000508004b000001220000c13d0000000805400029000000000451034f000000000404043b000004f90840009c000001220000213d00000000084200490000002005500039000004fa09000041000000000a85004b000000000a000019000000000a092019000004fa08800197000004fa0b500197000000000c8b004b000000000900801900000000088b013f000004fa0880009c00000000090ac019000000000809004b000001220000c13d000000010840008c000011d50000c13d000000000851034f000000000808043b000000010900008a000004fa0a000041000000000998004b000000000900001900000000090a2019000004fa08800197000004fa0b80009c000000000a008019000004fa08800167000004fa0880009c000000000a09c019000000600800003900000000090a004b0000125a0000c13d000005290860009c0000125d0000213d0000004008600039000000400080043f00000020086000390000052c0900004100000000009804350000000108000039000000000086043500000000080600190000125a0000013d00000527010000410000000000100439000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000528011001c70000800b0200003913bf13b00000040f0000000102200190000011300000613d000000400200043d000000000101043b000000800310008c00000fcb0000413d00000080031002700000052b0410009c000000000301a0190000052b0410009c0000000004000019000000100400203900000008054001bf000004f90630009c000000000504a0190000004004300270000004f90630009c000000000403a01900000004035001bf000004f10640009c000000000305a0190000002006400270000004f10540009c000000000604a01900000002053001bf0000ffff0460008c000000000503a0190000001003600270000000000306a019000000ff0330008c00000001055020390000004103500039000000010330017f0000000003320019000000000423004b00000000040000190000000104004039000004f90630009c0000125d0000213d00000001044001900000125d0000c13d000000400030043f00000002035000390000000006320436000000020300036700000000040000310000002107500039000000050770027200000f640000613d000000000843034f0000000009000019000000050a900210000000000ba60019000000000aa8034f000000000a0a043b0000000000ab04350000000109900039000000000a79004b00000f5c0000413d000000000700004b00000f660000613d0000000007020433000000000707004b00000c5c0000613d00000000070604330000052a07700197000000f808500210000000000778019f0000052c0770004100000000007604350000000305500210000000f80550008900000000015101cf000000ff0550008c0000000001002019000000210520003900000fde0000013d000004f103000041000004f10520009c00000000020380190000004002200210000004f10540009c00000000040380190000006004400210000000000224019f000004f10410009c0000000001038019000000c001100210000000000112019f000000080200002913bf13ab0000040f000700600000003d000600800000003d000000010220018f00030000000103550000006001100270000104f10010019d000004f10310019800000fb90000613d0000003f01300039000000200400008a000000000141016f000000400400043d0000000001140019000700000004001d000000000441004b00000000040000190000000104004039000004f90510009c0000125d0000213d00000001044001900000125d0000c13d000000400010043f0000001f0130018f000000070400002900000000083404360000000304000367000000050330027200000fa90000613d000000000500001900000005065002100000000007680019000000000664034f000000000606043b00000000006704350000000105500039000000000635004b00000fa10000413d000600000008001d000000000501004b00000fb90000613d0000000503300210000000000434034f00000006033000290000000301100210000000000503043300000000051501cf000000000515022f000000000404043b0000010001100089000000000414022f00000000011401cf000000000151019f000000000013043500000007010000290000000001010433000000000202004b000010030000c13d000000000201004b0000102f0000c13d000000400300043d000800000003001d000004ff0100004100000000001304350000000401300039000000030200002900000000002104350000002402300039000000090100002913bf13970000040f0000000804000029000009200000013d000005290320009c0000125d0000213d0000004003200039000000400030043f000000010300003a000000000532043600000000040000310000000203000367000000000643034f0000000006600350000000000606043b000000000065043500000c5c0000613d000000f807100210000004fa08000041000000000101004b000000000807c0190000052a01600197000000000181019f0000000000150435000000400100043d00000020061000390000000005020433000000000705004b00000fec0000613d000000000700001900000000086700190000002007700039000000000927001900000000090904330000000000980435000000000857004b00000fe50000413d00000000026500190000053c060000410000000000620435000000020250003900000000002104350000004102500039000000010520017f0000000002150019000000000552004b00000000050000190000000105004039000004f90620009c0000125d0000213d00000001055001900000125d0000c13d0000000906000029000001c405600039000000400020043f000000000253034f0000000005640049000000230650008a000000000202043b00000df50000013d000000000201004b0000101a0000c13d0000051401000041000000000010043900000008010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c7000080020200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000000101004b000009b20000613d00000007010000290000000001010433000000000201004b000002fc0000613d000004fa02000041000000200310008c00000000030000190000000003024019000004fa01100197000000000401004b000000000200a019000004fa0110009c000000000203c019000000000102004b000001220000c13d00000006010000290000000001010433000000000201004b0000000002000019000000010200c039000000000221004b000001220000c13d000000000101004b000002fc0000c13d00000b580000013d000004f102000041000004f10310009c0000000001028019000000060400002900000a200000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000843034f000000010400003a00000000044704360000000008800350000000000808043b000000000084043500000c5c0000613d0000052a08800197000000f806600210000000000686019f0000052f066000410000000000640435000000400400043d00000020064000390000000008070433000000000908004b000010510000613d0000000009000019000000000a6900190000002009900039000000000b790019000000000b0b04330000000000ba0435000000000a89004b0000104a0000413d000000000768001900000000000704350000000007480019000000200970003900000007080000290000000008080433000000000a08004b000010610000613d000000000a000019000000000b9a0019000000200aa00039000000070ca00029000000000c0c04330000000000cb0435000000000b8a004b0000105a0000413d000000000998001900000000000904350000000007780019000000200970003900000005080000290000000008080433000000000a08004b000010710000613d000000000a000019000000000b9a0019000000200aa00039000000050ca00029000000000c0c04330000000000cb0435000000000b8a004b0000106a0000413d000000000998001900000000000904350000000007780019000000200970003900000004080000290000000008080433000000000a08004b000010810000613d000000000a000019000000000b9a0019000000200aa00039000000040ca00029000000000c0c04330000000000cb0435000000000b8a004b0000107a0000413d000000000998001900000000000904350000000007780019000000200970003900000003080000290000000008080433000000000a08004b000010910000613d000000000a000019000000000b9a0019000000200aa00039000000030ca00029000000000c0c04330000000000cb0435000000000b8a004b0000108a0000413d000000000998001900000000000904350000000007780019000000200970003900000002080000290000000008080433000000000a08004b000010a10000613d000000000a000019000000000b9a0019000000200aa00039000000020ca00029000000000c0c04330000000000cb0435000000000b8a004b0000109a0000413d00000000099800190000000000090435000000000553034f00000000037800190000001f0720018f00000020083000390000000509200272000010b20000613d000000000a000019000000050ba00210000000000cb80019000000000bb5034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000010aa0000413d000000000a07004b000010c10000613d0000000509900210000000000595034f00000000089800190000000307700210000000000908043300000000097901cf000000000979022f000000000505043b0000010007700089000000000575022f00000000057501cf000000000595019f00000000005804350000000002230019000000200520003900000000000504350000000003010433000000000703004b000010cf0000613d000000000700001900000000085700190000002007700039000000000917001900000000090904330000000000980435000000000837004b000010c80000413d000000000153001900000000000104350000000001420049000000000113001900000000001404350000003f01100039000000010210017f0000000001420019000000000221004b00000000020000190000000102004039000004f90310009c0000125d0000213d00000001022001900000125d0000c13d000000400010043f000004f101000041000004f10260009c000000000601801900000040026002100000000003040433000004f10430009c00000000030180190000006003300210000000000223019f0000000003000414000004f10430009c0000000003018019000000c001300210000000000121019f000004fc011001c7000080100200003913bf13b00000040f0000000101200190000001220000613d0000000901000029000000e4041000390000000201000367000000000241034f000000000202043b000004fb02200198000500000004001d000011100000c13d000000800240008a000000000321034f000000400240008a000000000521034f000000000403043b000000000505043b00000000634500a9000000000605004b000011060000613d00000000655300d9000000000445004b0000110c0000c13d0000008002200039000000000121034f000000000101043b000700000031001e0000110c0000413d000011150000013d0000054201000041000000000010043500000011010000390000003c0000013d00000009020000290000012402200039000000000121034f000000000101043b000700000001001d0000053d01000041000000000010043900000006010000290000000400100443000004f1010000410000000002000414000004f10320009c0000000002018019000000c00120021000000515011001c70000800a0200003913bf13b00000040f0000000102200190000011300000613d000000000101043b000000070110006b000011310000a13d000000400100043d00000064021000390000054003000041000000000032043500000044021000390000054103000041000000000032043500000024021000390000002203000039000001000000013d000000000001042f0000000003000031000000090130006a000000230410008a000000050100002900000100011000390000000202000367000000000112034f000000000101043b000004fa05000041000000000641004b00000000060000190000000006058019000004fa04400197000004fa07100197000000000847004b0000000005008019000000000447013f000004fa0440009c000000000506c019000000000405004b000001220000c13d0000000804100029000000000142034f000000000101043b000004f90510009c000001220000213d00000000061300490000002005400039000004fa04000041000000000765004b00000000070000190000000007042019000004fa06600197000004fa08500197000000000968004b0000000004008019000000000668013f000004fa0660009c000000000407c019000000000404004b000001220000c13d0000003f04100039000000200600008a000000000664016f000000400400043d0000000006640019000000000746004b00000000070000190000000107004039000004f90860009c0000125d0000213d00000001077001900000125d0000c13d000000400060043f00000000041404360000000006510019000000000336004b000001220000213d000000000352034f0000001f0210018f0000000505100272000011780000613d000000000600001900000005076002100000000008740019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b000011700000413d000000000602004b000011870000613d0000000505500210000000000353034f00000000055400190000000302200210000000000605043300000000062601cf000000000626022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000262019f0000000000250435000000000114001900000000000104350000053e01000041000000400200043d0000000000120435000004f101000041000004f10320009c000000000201801900000040012002100000053f011001c7000013c00001042e0000001f0430018f00000005023002720000119d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000011960000413d000000000504004b000011ab0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000013c100010430000000380840008c000011fd0000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a70009c0000125d0000213d000000000898019f0000004009700039000000400090043f000000000a21034f000000020980003a0000000009970436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109700039000000000089043500000000080700190000120e0000013d000000380840008c000012490000413d0000002009400270000004f10840009c000000000904a019000004f10840009c000000000a000019000000040a0020390000000208a001bf0000ffff0b90008c00000000080aa019000000100a900270000000000a09a019000000ff09a0008c00000000090000190000000109002039000005290a60009c0000125d0000213d000000000898019f0000004009600039000000400090043f000000000a21034f000000020980003a0000000009960436000000000aa00350000000000a0a043b0000000000a9043500000c5c0000613d0000052a0aa00197000000f80b800210000000000aab019f0000052e0aa001c70000000000a904350000000308800210000000f80880015f00000000088401cf0000002109600039000000000089043500000000080600190000125a0000013d000005290870009c0000125d0000213d0000004008700039000000400080043f000000000921034f000000010800003a00000000088704360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008070019000000400700043d000005290970009c0000125d0000213d0000004009700039000000400090043f000000000221034f000000010c00003a0000000009c704360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090604330000000009490019000000000a0804330000000009a90019000000000a0704330000000009a90019000000400a00043d000004f909900197000000380d90008c000012990000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000012a60000013d000005290860009c0000125d0000213d0000004008600039000000400080043f000000000921034f000000010800003a00000000088604360000000009900350000000000909043b000000000098043500000c5c0000613d000000f80a4002100000052a099001970000000009a9019f000004fa0990016700000000009804350000000008060019000000400600043d000005290960009c000012610000a13d0000054201000041000000000010043500000041010000390000003c0000013d0000004009600039000000400090043f000000000221034f000000010c00003a0000000009c604360000000002200350000000000b02043b0000000000b9043500000c5c0000613d0000052a02b001970000052f0a2001c70000000000a9043500000000090704330000000009490019000000000a0804330000000009a90019000000000a0604330000000009a90019000000400a00043d000004f909900197000000380d90008c000013130000413d000000200d900270000004f10c90009c000000000d09a019000004f10c90009c000000000e000019000000040e002039000000020ce001bf0000ffff0fd0008c000000000c0ea019000000100ed00270000000000e0da019000000ff0de0008c000000000d000019000000010d002039000005290ea0009c0000125d0000213d000000000cdc019f000000400da000390000004000d0043f000000200da000390000000000bd0435000000020bc0003a0000000000ba043500000c5c0000613d000000f80bc0021000000000022b019f00000530022001c700000000002d04350000000302c00210000000f80220015f00000000022901cf0000002109a000390000000000290435000013200000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000005310b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000012b60000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000012af0000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b060433000000000d0b004b000012c50000613d000000000d000019000000000ecd0019000000200dd00039000000000f6d0019000000000f0f04330000000000fe0435000000000ebd004b000012be0000413d0000000006cb001900000000000604350000000006ab0019000000210b600039000000000a080433000000000c0a004b000012d40000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000012cd0000413d0000000008ba00190000000000080435000000000551034f00000000016a00190000001f0640018f0000002108100039000000050a400272000012e50000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000012dd0000413d000000000b06004b000012f40000613d000000050aa002100000000005a5034f0000000008a800190000000306600210000000000a080433000000000a6a01cf000000000a6a022f000000000505043b0000010006600089000000000565022f00000000056501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004070433000000000604004b000013020000613d000000000600001900000000085600190000002006600039000000000a760019000000000a0a04330000000000a80435000000000846004b000012fb0000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000138c0000613d0000125d0000013d000005290da0009c0000125d0000213d000000400da000390000004000d0043f000000200da000390000000000bd04350000000000ca0435000000000b0c004b00000c5c0000613d000000f809900210000000000229019f0000052f0220004100000000002d0435000000400200043d0000002009200039000004fc0b0000410000000000b90435000000210c200039000000000b0a0433000000000d0b004b000013300000613d000000000d000019000000000ecd0019000000200dd00039000000000fad0019000000000f0f04330000000000fe0435000000000ebd004b000013290000413d000000000acb001900000000000a0435000000000a2b0019000000210ca00039000000000b070433000000000d0b004b0000133f0000613d000000000d000019000000000ecd0019000000200dd00039000000000f7d0019000000000f0f04330000000000fe0435000000000ebd004b000013380000413d0000000007cb001900000000000704350000000007ab0019000000210b700039000000000a080433000000000c0a004b0000134e0000613d000000000c000019000000000dbc0019000000200cc00039000000000e8c0019000000000e0e04330000000000ed0435000000000dac004b000013470000413d0000000008ba00190000000000080435000000000551034f00000000017a00190000001f0740018f0000002108100039000000050a4002720000135f0000613d000000000b000019000000050cb00210000000000dc80019000000000cc5034f000000000c0c043b0000000000cd0435000000010bb00039000000000cab004b000013570000413d000000000b07004b0000136e0000613d000000050aa002100000000005a5034f0000000008a800190000000307700210000000000a080433000000000a7a01cf000000000a7a022f000000000505043b0000010007700089000000000575022f00000000057501cf0000000005a5019f00000000005804350000000001410019000000210510003900000000000504350000000004060433000000000704004b0000137c0000613d000000000700001900000000085700190000002007700039000000000a670019000000000a0a04330000000000a80435000000000847004b000013750000413d0000000005540019000000000005043500000000012100490000000001140019000000010410003900000000004204350000004001100039000000000331016f0000000001230019000000000331004b00000000030000190000000103004039000004f90410009c0000125d0000213d00000001033001900000125d0000c13d000000400010043f000004f101000041000004f10390009c000000000901801900000040039002100000000002020433000004f10420009c00000000020180190000006002200210000000000232019f000010e80000013d00000000030104330000000002320436000000000403004b000013a30000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000139c0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000000001042f000013ae002104210000000102000039000000000001042d0000000002000019000000000001042d000013b3002104230000000102000039000000000001042d0000000002000019000000000001042d000013b8002104210000000102000039000000000001042d0000000002000019000000000001042d000013bd002104230000000102000039000000000001042d0000000002000019000000000001042d000013bf00000432000013c00001042e000013c1000104300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000df9c158800000000000000000000000000000000000000000000000000000000df9c158900000000000000000000000000000000000000000000000000000000e2f318e300000000000000000000000000000000000000000000000000000000eeb8cb0900000000000000000000000000000000000000000000000000000000202bcce700000000000000000000000000000000000000000000000000000000a28c1aee000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000000000000000000000000000007261746f720000000000000000000000000000000000000000000000000000004661696c656420746f20706179207468652066656520746f20746865206f706508c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000100000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000ecf95b8a000000000000000000000000000000000000000000000000000000009c4d535b000000000000000000000000000000000000000000000000000000003cda3351000000000000000000000000000000000000000000000000000000005d3827000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe04f766572666c6f770000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000949431dc000000000000000000000000000000000000000000000000000000008c5a344500000000000000000000000000000000000000000000000000000000556e737570706f72746564207061796d617374657220666c6f77000000000000dd62ed3e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000800000000000000000095ea7b3000000000000000000000000000000000000000000000000000000005361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65641806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000440000000000000000000000005361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f000000000000000000000000000000000000000000000000ffffffffffffff3f6f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000000000000000000000000000000000000000006400000000000000000000000054686520617070726f76616c4261736564207061796d617374657220696e707574206d757374206265206174206c65617374203638206279746573206c6f6e670000000000000000000000000000000000000084000000800000000000000000546865207374616e64617264207061796d617374657220696e707574206d757374206265206174206c656173742034206279746573206c6f6e67000000000000e1239cd8000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000024000000a00000000000000000456e636f64696e6720756e737570706f727465642074780000000000000000009a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0200000200000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff81000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6b656363616b3235362072657475726e656420696e76616c6964206461746100848e1bfa1ac4e3576b728bda6721b215c70a7799a5b4866282a71bab954baac8000000000000000000000000000000000000000000000000fffffffffffffe1fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6ead7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a519b453ce45aaaaf3a300f5a9ec95869b4f28ab10430b572ee218c3a6a5e07d6f000000000000000000000000000000000000000000000000ffffffffffffff5f190100000000000000000000000000000000000000000000000000000000000080800000000000000000000000000000000000000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f39202bcce700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000075650000000000000000000000000000000000000000000000000000000000004e6f7420656e6f7567682062616c616e636520666f7220666565202b2076616c4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ab3bba1f1a146e9cd5aea24ccd3c92113a7bc0e36eeda956634489abb70bfa37", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/EcAdd.yul.zbin b/src/deps/contracts/EcAdd.yul.zbin index d7942db1..d24ecc09 100644 Binary files a/src/deps/contracts/EcAdd.yul.zbin and b/src/deps/contracts/EcAdd.yul.zbin differ diff --git a/src/deps/contracts/EcMul.yul.zbin b/src/deps/contracts/EcMul.yul.zbin index 6fd9e212..0986c72f 100644 Binary files a/src/deps/contracts/EcMul.yul.zbin and b/src/deps/contracts/EcMul.yul.zbin differ diff --git a/src/deps/contracts/Ecrecover.yul.zbin b/src/deps/contracts/Ecrecover.yul.zbin index 6ea47838..4d29c9a7 100644 Binary files a/src/deps/contracts/Ecrecover.yul.zbin and b/src/deps/contracts/Ecrecover.yul.zbin differ diff --git a/src/deps/contracts/EmptyContract.json b/src/deps/contracts/EmptyContract.json index 3a96fb6c..a1c928b7 100644 --- a/src/deps/contracts/EmptyContract.json +++ b/src/deps/contracts/EmptyContract.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "EmptyContract", - "sourceName": "cache-zk/solpp-generated-contracts/EmptyContract.sol", + "sourceName": "contracts-preprocessed/EmptyContract.sol", "abi": [ { "stateMutability": "payable", @@ -12,8 +12,8 @@ "type": "receive" } ], - "bytecode": "0x0000000101200190000000040000c13d0000000001000019000000110001042e0000008001000039000000400010043f0000000001000416000000000101004b0000000e0000c13d0000002001000039000001000010044300000120000004430000000501000041000000110001042e000000000100001900000012000104300000001000000432000000110001042e0000001200010430000000000000000000000002000000000000000000000000000000400000010000000000000000004ff0391cc9c9c321f4092988da16e0f3d6058db76dd76cbe3c5ec972dbfb629f", - "deployedBytecode": "0x0000000101200190000000040000c13d0000000001000019000000110001042e0000008001000039000000400010043f0000000001000416000000000101004b0000000e0000c13d0000002001000039000001000010044300000120000004430000000501000041000000110001042e000000000100001900000012000104300000001000000432000000110001042e0000001200010430000000000000000000000002000000000000000000000000000000400000010000000000000000004ff0391cc9c9c321f4092988da16e0f3d6058db76dd76cbe3c5ec972dbfb629f", + "bytecode": "0x0000000101200190000000040000c13d0000000001000019000000110001042e0000008001000039000000400010043f0000000001000416000000000101004b0000000e0000c13d0000002001000039000001000010044300000120000004430000000501000041000000110001042e000000000100001900000012000104300000001000000432000000110001042e000000120001043000000000000000000000000200000000000000000000000000000040000001000000000000000000d4d4fd74cdac8443eb1379ae2a5f6f4d8fc682feb3846e753806420cacba1f40", + "deployedBytecode": "0x0000000101200190000000040000c13d0000000001000019000000110001042e0000008001000039000000400010043f0000000001000416000000000101004b0000000e0000c13d0000002001000039000001000010044300000120000004430000000501000041000000110001042e000000000100001900000012000104300000001000000432000000110001042e000000120001043000000000000000000000000200000000000000000000000000000040000001000000000000000000d4d4fd74cdac8443eb1379ae2a5f6f4d8fc682feb3846e753806420cacba1f40", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/EventWriter.yul.zbin b/src/deps/contracts/EventWriter.yul.zbin index cd15a102..317de7f2 100644 Binary files a/src/deps/contracts/EventWriter.yul.zbin and b/src/deps/contracts/EventWriter.yul.zbin differ diff --git a/src/deps/contracts/ImmutableSimulator.json b/src/deps/contracts/ImmutableSimulator.json index 42fbdcb4..c273b163 100644 --- a/src/deps/contracts/ImmutableSimulator.json +++ b/src/deps/contracts/ImmutableSimulator.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "ImmutableSimulator", - "sourceName": "cache-zk/solpp-generated-contracts/ImmutableSimulator.sol", + "sourceName": "contracts-preprocessed/ImmutableSimulator.sol", "abi": [ { "inputs": [ @@ -58,8 +58,8 @@ "type": "function" } ], - "bytecode": "0x0002000000000002000700000000000200010000000103550000006001100270000000390010019d0000008001000039000000400010043f0000000101200190000000380000c13d0000000001000031000000040110008c000000770000413d0000000101000367000000000101043b000000e0011002700000003b0210009c000000400000613d0000003c0110009c000000770000c13d0000000001000416000000000101004b000000770000c13d000000040100008a00000000011000310000003d02000041000000400310008c000000000300001900000000030240190000003d01100197000000000401004b000000000200a0190000003d0110009c00000000010300190000000001026019000000000101004b000000770000c13d00000004010000390000000101100367000000000101043b0000003e0210009c000000770000213d0000000000100435000000200000043f000000000100001900e000c90000040f00000024020000390000000102200367000000000202043b0000000000200435000000200010043f000000000100001900e000c90000040f000000000101041a000000800010043f0000004501000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000002001000039000001000010044300000120000004430000003a01000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000000001000031000000040210008a0000003d03000041000000400420008c000000000400001900000000040340190000003d02200197000000000502004b000000000300a0190000003d0220009c00000000020400190000000002036019000000000202004b000000770000c13d00000001020003670000000403200370000000000303043b000300000003001d0000003e0330009c000000770000213d0000002403200370000000000303043b0000003f0430009c000000770000213d00000023043000390000003d05000041000000000614004b000000000600001900000000060580190000003d071001970000003d04400197000000000874004b0000000005008019000000000474013f0000003d0440009c00000000040600190000000004056019000000000404004b000000770000c13d0000000404300039000000000242034f000000000202043b000200000002001d0000003f0220009c000000770000213d000000240330003900000002020000290000000602200210000100000003001d0000000002320019000000000112004b000000790000a13d0000000001000019000000e2000104300000000001000411000080060110008c000000b40000c13d0000000201000029000000000101004b000000b20000613d00008010040000390000000002000019000700000004001d000500000002001d00000006012002100000000102000029000000000121001900000020021000390000000103000367000000000223034f000000000113034f000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000000204001900e000db0000040f0000000102200190000000770000613d000000000101043b00000006020000290000000000200435000000200010043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000070200002900e000db0000040f0000000102200190000000770000613d000000000101043b0000000402000029000000000021041b000000050200002900000001022000390000000201000029000000000112004b0000000704000029000000820000413d0000000001000019000000e10001042e000000400100043d00000064021000390000004003000041000000000032043500000044021000390000004103000041000000000032043500000024021000390000002d030000390000000000320435000000420200004100000000002104350000000402100039000000200300003900000000003204350000003902000041000000390310009c0000000001028019000000400110021000000043011001c7000000e20001043000000039020000410000000003000414000000390430009c0000000003028019000000390410009c00000000010280190000004001100210000000c002300210000000000112019f00000044011001c7000080100200003900e000db0000040f0000000102200190000000d90000613d000000000101043b000000000001042d0000000001000019000000e200010430000000de002104230000000102000039000000000001042d0000000002000019000000000001042d000000e000000432000000e10001042e000000e200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab0898000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff7374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000800000000000000000ba4e2ffd1982cc43c10400dea65494b8885fae4d25a39cc204ef5a5a87953deb", - "deployedBytecode": "0x0002000000000002000700000000000200010000000103550000006001100270000000390010019d0000008001000039000000400010043f0000000101200190000000380000c13d0000000001000031000000040110008c000000770000413d0000000101000367000000000101043b000000e0011002700000003b0210009c000000400000613d0000003c0110009c000000770000c13d0000000001000416000000000101004b000000770000c13d000000040100008a00000000011000310000003d02000041000000400310008c000000000300001900000000030240190000003d01100197000000000401004b000000000200a0190000003d0110009c00000000010300190000000001026019000000000101004b000000770000c13d00000004010000390000000101100367000000000101043b0000003e0210009c000000770000213d0000000000100435000000200000043f000000000100001900e000c90000040f00000024020000390000000102200367000000000202043b0000000000200435000000200010043f000000000100001900e000c90000040f000000000101041a000000800010043f0000004501000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000002001000039000001000010044300000120000004430000003a01000041000000e10001042e0000000001000416000000000101004b000000770000c13d0000000001000031000000040210008a0000003d03000041000000400420008c000000000400001900000000040340190000003d02200197000000000502004b000000000300a0190000003d0220009c00000000020400190000000002036019000000000202004b000000770000c13d00000001020003670000000403200370000000000303043b000300000003001d0000003e0330009c000000770000213d0000002403200370000000000303043b0000003f0430009c000000770000213d00000023043000390000003d05000041000000000614004b000000000600001900000000060580190000003d071001970000003d04400197000000000874004b0000000005008019000000000474013f0000003d0440009c00000000040600190000000004056019000000000404004b000000770000c13d0000000404300039000000000242034f000000000202043b000200000002001d0000003f0220009c000000770000213d000000240330003900000002020000290000000602200210000100000003001d0000000002320019000000000112004b000000790000a13d0000000001000019000000e2000104300000000001000411000080060110008c000000b40000c13d0000000201000029000000000101004b000000b20000613d00008010040000390000000002000019000700000004001d000500000002001d00000006012002100000000102000029000000000121001900000020021000390000000103000367000000000223034f000000000113034f000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000000204001900e000db0000040f0000000102200190000000770000613d000000000101043b00000006020000290000000000200435000000200010043f00000039010000410000000002000414000000390320009c0000000001024019000000c00110021000000044011001c7000000070200002900e000db0000040f0000000102200190000000770000613d000000000101043b0000000402000029000000000021041b000000050200002900000001022000390000000201000029000000000112004b0000000704000029000000820000413d0000000001000019000000e10001042e000000400100043d00000064021000390000004003000041000000000032043500000044021000390000004103000041000000000032043500000024021000390000002d030000390000000000320435000000420200004100000000002104350000000402100039000000200300003900000000003204350000003902000041000000390310009c0000000001028019000000400110021000000043011001c7000000e20001043000000039020000410000000003000414000000390430009c0000000003028019000000390410009c00000000010280190000004001100210000000c002300210000000000112019f00000044011001c7000080100200003900e000db0000040f0000000102200190000000d90000613d000000000101043b000000000001042d0000000001000019000000e200010430000000de002104230000000102000039000000000001042d0000000002000019000000000001042d000000e000000432000000e10001042e000000e200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab0898000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff7374656d20636f6e74726163740000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f79657220737908c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008400000000000000000000000002000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000020000000800000000000000000ba4e2ffd1982cc43c10400dea65494b8885fae4d25a39cc204ef5a5a87953deb", + "bytecode": "0x00010000000000020007000000000002000000000701034f00000000000703550000008001000039000000400010043f000000000107001900000060011002700000002f0110019700000001022001900000002d0000c13d000000040210008c0000005c0000413d000000000207043b000000e002200270000000310320009c000000350000613d000000320220009c0000005c0000c13d0000000002000416000000000202004b0000005c0000c13d000000040110008a000000400110008c0000005c0000413d0000000401700370000000000101043b000000330210009c0000005c0000213d0000000000100435000000200000043f0000000001000019000700000007035300b800a10000040f000000070200035f0000002402200370000000000202043b0000000000200435000000200010043f000000000100001900b800a10000040f000000000101041a000000800010043f0000003b01000041000000b90001042e0000000001000416000000000101004b0000005c0000c13d0000002001000039000001000010044300000120000004430000003001000041000000b90001042e0000000002000416000000000202004b0000005c0000c13d000000040210008a000000400220008c0000005c0000413d0000000402700370000000000202043b000300000002001d000000330220009c0000005c0000213d0000002402700370000000000202043b000000340320009c0000005c0000213d00000023032000390000003504000041000000000513004b000000000500001900000000050480190000003503300197000000000603004b0000000004008019000000350330009c000000000405c019000000000304004b0000005c0000c13d0000000403200039000000000337034f000000000303043b000200000003001d000000340330009c0000005c0000213d000100240020003d000000020200002900000006022002100000000102200029000000000112004b0000005e0000a13d0000000001000019000000ba000104300000000001000411000080060110008c000000950000c13d000000020100006b000000930000613d0000002f0400004100008010050000390000000002000019000700000005001d000500000002001d00000006012002100000000101100029000000200210003900000000022003670000000001100367000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000000010004140000002f0210009c0000000001048019000000c0011002100000003a011001c7000000000205001900b800b30000040f00000001022001900000005c0000613d000000000101043b00000006020000290000000000200435000000200010043f00000000010004140000002f0210009c0000002f01008041000000c0011002100000003a011001c7000000070200002900b800b30000040f00000001022001900000005c0000613d000000000101043b0000000402000029000000000021041b00000005020000290000000102200039000000020120006c0000002f040000410000000705000029000000670000413d0000000001000019000000b90001042e0000003601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000003701000041000000c40010043f0000003801000041000000e40010043f0000003901000041000000ba000104300000002f020000410000002f0310009c000000000102801900000000030004140000002f0430009c0000000003028019000000c0023002100000004001100210000000000121019f0000003a011001c7000080100200003900b800b30000040f0000000102200190000000b10000613d000000000101043b000000000001042d0000000001000019000000ba00010430000000b6002104230000000102000039000000000001042d0000000002000019000000000001042d000000b800000432000000b90001042e000000ba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab089000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000080000000000000000022e0bf7ab6a86468900d37f79d72f447fa3eeb722547333c70544210b6ca771f", + "deployedBytecode": "0x00010000000000020007000000000002000000000701034f00000000000703550000008001000039000000400010043f000000000107001900000060011002700000002f0110019700000001022001900000002d0000c13d000000040210008c0000005c0000413d000000000207043b000000e002200270000000310320009c000000350000613d000000320220009c0000005c0000c13d0000000002000416000000000202004b0000005c0000c13d000000040110008a000000400110008c0000005c0000413d0000000401700370000000000101043b000000330210009c0000005c0000213d0000000000100435000000200000043f0000000001000019000700000007035300b800a10000040f000000070200035f0000002402200370000000000202043b0000000000200435000000200010043f000000000100001900b800a10000040f000000000101041a000000800010043f0000003b01000041000000b90001042e0000000001000416000000000101004b0000005c0000c13d0000002001000039000001000010044300000120000004430000003001000041000000b90001042e0000000002000416000000000202004b0000005c0000c13d000000040210008a000000400220008c0000005c0000413d0000000402700370000000000202043b000300000002001d000000330220009c0000005c0000213d0000002402700370000000000202043b000000340320009c0000005c0000213d00000023032000390000003504000041000000000513004b000000000500001900000000050480190000003503300197000000000603004b0000000004008019000000350330009c000000000405c019000000000304004b0000005c0000c13d0000000403200039000000000337034f000000000303043b000200000003001d000000340330009c0000005c0000213d000100240020003d000000020200002900000006022002100000000102200029000000000112004b0000005e0000a13d0000000001000019000000ba000104300000000001000411000080060110008c000000950000c13d000000020100006b000000930000613d0000002f0400004100008010050000390000000002000019000700000005001d000500000002001d00000006012002100000000101100029000000200210003900000000022003670000000001100367000000000101043b000600000001001d000000000102043b000400000001001d00000003010000290000000000100435000000200000043f00000000010004140000002f0210009c0000000001048019000000c0011002100000003a011001c7000000000205001900b800b30000040f00000001022001900000005c0000613d000000000101043b00000006020000290000000000200435000000200010043f00000000010004140000002f0210009c0000002f01008041000000c0011002100000003a011001c7000000070200002900b800b30000040f00000001022001900000005c0000613d000000000101043b0000000402000029000000000021041b00000005020000290000000102200039000000020120006c0000002f040000410000000705000029000000670000413d0000000001000019000000b90001042e0000003601000041000000800010043f0000002001000039000000840010043f0000002d01000039000000a40010043f0000003701000041000000c40010043f0000003801000041000000e40010043f0000003901000041000000ba000104300000002f020000410000002f0310009c000000000102801900000000030004140000002f0430009c0000000003028019000000c0023002100000004001100210000000000121019f0000003a011001c7000080100200003900b800b30000040f0000000102200190000000b10000613d000000000101043b000000000001042d0000000001000019000000ba00010430000000b6002104230000000102000039000000000001042d0000000002000019000000000001042d000000b800000432000000b90001042e000000ba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000ad7e232e00000000000000000000000000000000000000000000000000000000310ab089000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c7920627920746865206465706c6f7965722073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000080000000000000000022e0bf7ab6a86468900d37f79d72f447fa3eeb722547333c70544210b6ca771f", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/Keccak256.yul.zbin b/src/deps/contracts/Keccak256.yul.zbin index 143dd2af..d17251ff 100644 Binary files a/src/deps/contracts/Keccak256.yul.zbin and b/src/deps/contracts/Keccak256.yul.zbin differ diff --git a/src/deps/contracts/KnownCodesStorage.json b/src/deps/contracts/KnownCodesStorage.json index b7633d99..6c4a8f33 100644 --- a/src/deps/contracts/KnownCodesStorage.json +++ b/src/deps/contracts/KnownCodesStorage.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "KnownCodesStorage", - "sourceName": "cache-zk/solpp-generated-contracts/KnownCodesStorage.sol", + "sourceName": "contracts-preprocessed/KnownCodesStorage.sol", "abi": [ { "anonymous": false, @@ -73,8 +73,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020008000000000002000200000001035500000060011002700000006e0010019d000100000000001f0000008001000039000000400010043f00000001012001900000002e0000c13d0000000001000031000000040110008c000000b60000413d0000000201000367000000000101043b000000e001100270000000700210009c000000360000613d000000710210009c000000a50000613d000000720110009c000000b60000c13d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b60000c13d00000004010000390000000201100367000000000101043b000000000101041a000000800010043f0000008801000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000002001000039000001000010044300000120000004430000006f01000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000000002000031000000040120008a0000007303000041000000400410008c000000000400001900000000040340190000007301100197000000000501004b000000000300a019000000730110009c00000000010400190000000001036019000000000101004b000000b60000c13d00000002010003670000000403100370000000000403043b000000000304004b0000000003000019000000010300c039000200000004001d000000000334004b000000b60000c13d0000002403100370000000000303043b000000740430009c000000b60000213d00000023043000390000007305000041000000000624004b0000000006000019000000000605801900000073072001970000007304400197000000000874004b0000000005008019000000000474013f000000730440009c00000000040600190000000004056019000000000404004b000000b60000c13d0000000404300039000000000441034f000000000404043b000800000004001d000000740440009c000000b60000213d000000240430003900000008030000290000000503300210000700000004001d0000000003430019000000000223004b000000b60000213d0000000002000411000080010220008c000000fa0000c13d0000000802000029000000000202004b000000f80000613d0000000202000029000000000202004b0000010c0000c13d0000000102000039000500000002001d0000800d02000039000400000002001d0000000302000039000300000002001d0000000004000019000000850000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000502043b000000000205041a000000000202004b000000810000c13d0000007801500197000000790110009c000001660000c13d000600000004001d0000007a01500198000000c60000613d0000000501000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c7000000810400004100000004020000290000000303000029000000000600001901b101a70000040f000000020100036700000001022001900000000604000029000000810000c13d000000b60000013d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b80000613d0000000001000019000001b30001043000000004010000390000000201100367000000000501043b00000000010004110000800e0110008c000000d70000c13d000000000105041a000000000101004b000000f80000c13d0000007801500197000000790110009c000001660000c13d0000007a01500198000000e90000c13d000000400100043d00000044021000390000008703000041000000000032043500000076020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b300010430000000400100043d00000044021000390000008303000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000000101000039000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000000600001901b101a70000040f0000000101200190000000b60000613d0000000001000019000001b20001042e000000400100043d00000044021000390000007503000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000800802000039000500000002001d0000800202000039000100000002001d0000000004000019000001160000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000302043b000000000203041a000000000202004b000001120000c13d0000007801300197000000790110009c000001660000c13d000400000004001d000600000003001d0000007a01300198000000c60000613d0000007b010000410000000000100439000000050100002900000004001004430000006e0100004100000000020004140000006e0320009c0000000001024019000000c0011002100000007c011001c7000000010200002901b101ac0000040f00000001022001900000000602000029000000b60000613d000000000101043b000000000101004b000000b60000613d000000400400043d0000007d010000410000000000140435000000040140003900000000002104350000006e0100004100000000020004140000006e0320009c00000000020180190000006e0340009c000300000004001d00000000010440190000004001100210000000c002200210000000000112019f0000007e011001c7000000050200002901b101a70000040f000000000301001900000060033002700001006e0030019d0000006e0430019700000001022001900000017b0000613d00000003020000290000007f0120009c000001a10000813d000000400020043f00000001010000390000000605000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000020600002901b101a70000040f000000020100036700000001022001900000000404000029000001120000c13d000000b60000013d000000400100043d000000640210003900000084030000410000000000320435000000440210003900000085030000410000000000320435000000240210003900000022030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000086011001c7000001b300010430000000400200043d0000001f0340018f0000000504400272000001880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001800000413d000000000503004b000001970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000006e0100004100000001030000310000006e0430009c00000000030180190000006e0420009c000000000102401900000040011002100000006002300210000000000112019f000001b300010430000000820100004100000000001004350000004101000039000000040010043f0000007e01000041000001b300010430000001aa002104210000000102000039000000000001042d0000000002000019000000000001042d000001af002104230000000102000039000000000001042d0000000002000019000000000001042d000001b100000432000001b20001042e000001b300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff43616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b710000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000006aca1b77b249f1e5f885db2cd6e516c14e81511f82dd4bd0f8bb4ac27ba50922", - "deployedBytecode": "0x00030000000000020008000000000002000200000001035500000060011002700000006e0010019d000100000000001f0000008001000039000000400010043f00000001012001900000002e0000c13d0000000001000031000000040110008c000000b60000413d0000000201000367000000000101043b000000e001100270000000700210009c000000360000613d000000710210009c000000a50000613d000000720110009c000000b60000c13d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b60000c13d00000004010000390000000201100367000000000101043b000000000101041a000000800010043f0000008801000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000002001000039000001000010044300000120000004430000006f01000041000001b20001042e0000000001000416000000000101004b000000b60000c13d0000000002000031000000040120008a0000007303000041000000400410008c000000000400001900000000040340190000007301100197000000000501004b000000000300a019000000730110009c00000000010400190000000001036019000000000101004b000000b60000c13d00000002010003670000000403100370000000000403043b000000000304004b0000000003000019000000010300c039000200000004001d000000000334004b000000b60000c13d0000002403100370000000000303043b000000740430009c000000b60000213d00000023043000390000007305000041000000000624004b0000000006000019000000000605801900000073072001970000007304400197000000000874004b0000000005008019000000000474013f000000730440009c00000000040600190000000004056019000000000404004b000000b60000c13d0000000404300039000000000441034f000000000404043b000800000004001d000000740440009c000000b60000213d000000240430003900000008030000290000000503300210000700000004001d0000000003430019000000000223004b000000b60000213d0000000002000411000080010220008c000000fa0000c13d0000000802000029000000000202004b000000f80000613d0000000202000029000000000202004b0000010c0000c13d0000000102000039000500000002001d0000800d02000039000400000002001d0000000302000039000300000002001d0000000004000019000000850000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000502043b000000000205041a000000000202004b000000810000c13d0000007801500197000000790110009c000001660000c13d000600000004001d0000007a01500198000000c60000613d0000000501000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c7000000810400004100000004020000290000000303000029000000000600001901b101a70000040f000000020100036700000001022001900000000604000029000000810000c13d000000b60000013d0000000001000416000000000101004b000000b60000c13d000000040100008a00000000011000310000007302000041000000200310008c000000000300001900000000030240190000007301100197000000000401004b000000000200a019000000730110009c00000000010300190000000001026019000000000101004b000000b80000613d0000000001000019000001b30001043000000004010000390000000201100367000000000501043b00000000010004110000800e0110008c000000d70000c13d000000000105041a000000000101004b000000f80000c13d0000007801500197000000790110009c000001660000c13d0000007a01500198000000e90000c13d000000400100043d00000044021000390000008703000041000000000032043500000076020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b300010430000000400100043d00000044021000390000008303000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000000101000039000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000000600001901b101a70000040f0000000101200190000000b60000613d0000000001000019000001b20001042e000000400100043d00000044021000390000007503000041000000000032043500000024021000390000001f030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000077011001c7000001b3000104300000800802000039000500000002001d0000800202000039000100000002001d0000000004000019000001160000013d00000001044000390000000802000029000000000224004b000000f80000813d000000050240021000000007030000290000000002320019000000000221034f000000000302043b000000000203041a000000000202004b000001120000c13d0000007801300197000000790110009c000001660000c13d000400000004001d000600000003001d0000007a01300198000000c60000613d0000007b010000410000000000100439000000050100002900000004001004430000006e0100004100000000020004140000006e0320009c0000000001024019000000c0011002100000007c011001c7000000010200002901b101ac0000040f00000001022001900000000602000029000000b60000613d000000000101043b000000000101004b000000b60000613d000000400400043d0000007d010000410000000000140435000000040140003900000000002104350000006e0100004100000000020004140000006e0320009c00000000020180190000006e0340009c000300000004001d00000000010440190000004001100210000000c002200210000000000112019f0000007e011001c7000000050200002901b101a70000040f000000000301001900000060033002700001006e0030019d0000006e0430019700000001022001900000017b0000613d00000003020000290000007f0120009c000001a10000813d000000400020043f00000001010000390000000605000029000000000015041b0000006e0100004100000000020004140000006e0320009c0000000001024019000000c00110021000000080011001c70000800d0200003900000003030000390000008104000041000000020600002901b101a70000040f000000020100036700000001022001900000000404000029000001120000c13d000000b60000013d000000400100043d000000640210003900000084030000410000000000320435000000440210003900000085030000410000000000320435000000240210003900000022030000390000000000320435000000760200004100000000002104350000000402100039000000200300003900000000003204350000006e020000410000006e0310009c0000000001028019000000400110021000000086011001c7000001b300010430000000400200043d0000001f0340018f0000000504400272000001880000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000645004b000001800000413d000000000503004b000001970000613d0000000504400210000000000141034f00000000044200190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000006e0100004100000001030000310000006e0430009c00000000030180190000006e0420009c000000000102401900000040011002100000006002300210000000000112019f000001b300010430000000820100004100000000001004350000004101000039000000040010043f0000007e01000041000001b300010430000001aa002104210000000102000039000000000001042d0000000002000019000000000001042d000001af002104230000000102000039000000000001042d0000000002000019000000000001042d000001b100000432000001b20001042e000001b300010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff43616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b710000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000000000000000000000000000006aca1b77b249f1e5f885db2cd6e516c14e81511f82dd4bd0f8bb4ac27ba50922", + "bytecode": "0x0001000000000002000800000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000005f033001970000000102200190000000200000c13d000000040230008c000001180000413d000000000201043b000000e002200270000000610420009c000000280000613d000000620420009c0000007f0000613d000000630220009c000001180000c13d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000101043b000000000101041a000000800010043f0000007b01000041000001790001042e0000000001000416000000000101004b000001180000c13d0000002001000039000001000010044300000120000004430000006001000041000001790001042e0000000002000416000000000202004b000001180000c13d000000040230008a000000400220008c000001180000413d0000000402100370000000000402043b000000000204004b0000000002000019000000010200c039000200000004001d000000000224004b000001180000c13d0000002402100370000000000202043b000000640420009c000001180000213d00000023042000390000006505000041000000000634004b000000000600001900000000060580190000006504400197000000000704004b0000000005008019000000650440009c000000000506c019000000000405004b000001180000c13d0000000404200039000000000441034f000000000404043b000800000004001d000000640440009c000001180000213d000700240020003d000000080200002900000005022002100000000702200029000000000232004b000001180000213d0000000002000411000080010220008c000000c00000c13d000000080200006b000000be0000613d000000020200006b000000c80000c13d000500010000003d0004800d0000003d000300030000003d0000000004000019000000610000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000502043b000000000205041a000000000202004b0000005e0000c13d00000069015001970000006a0110009c0000011a0000c13d000600000004001d0000006b015001980000012f0000613d0000000501000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c700000004020000290000000303000029000000720400004100000000060000190178016e0000040f0000000001000367000000010220019000000006040000290000005e0000c13d000001180000013d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000501043b00000000010004110000800e0110008c000000990000c13d000000000105041a000000000101004b000000be0000c13d00000069015001970000006a0110009c000000a30000c13d0000006b01500198000000af0000c13d0000006601000041000000800010043f0000002001000039000000840010043f000000a40010043f0000007701000041000000a00000013d0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000007901000041000000c40010043f00000068010000410000017a000104300000006601000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000007501000041000000c40010043f0000007401000041000000e40010043f0000007a010000410000017a000104300000000101000039000000000015041b0000005f0100004100000000020004140000005f0320009c0000000002018019000000c00120021000000071011001c70000800d020000390000000303000039000000720400004100000000060000190178016e0000040f0000000101200190000001180000613d0000000001000019000001790001042e0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000006701000041000000a00000013d000580080000003d000180020000003d0000000004000019000000cf0000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000302043b000000000203041a000000000202004b000000cc0000c13d00000069013001970000006a0110009c0000011a0000c13d000400000004001d000600000003001d0000006b013001980000012f0000613d0000006c0100004100000000001004390000000501000029000000040010044300000000010004140000005f0210009c0000005f01008041000000c0011002100000006d011001c70000000102000029017801730000040f0000000102200190000001400000613d000000000101043b000000000101004b0000000602000029000001180000613d000000400400043d0000006e0100004100000000001404350000000401400039000000000021043500000000010004140000005f0210009c0000005f0300004100000000010380190000005f0240009c000300000004001d000000000203001900000000020440190000004002200210000000c001100210000000000121019f0000006f011001c700000005020000290178016e0000040f0000000102200190000001410000613d0000000302000029000000700120009c000001670000813d000000400020043f00000001010000390000000605000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c70000800d020000390000000303000039000000720400004100000002060000290178016e0000040f000000000100036700000001022001900000000404000029000000cc0000c13d00000000010000190000017a00010430000000400100043d000000640210003900000074030000410000000000320435000000440210003900000075030000410000000000320435000000240210003900000022030000390000000000320435000000660200004100000000002104350000000402100039000000200300003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000076011001c70000017a00010430000000400100043d00000044021000390000007703000041000000000032043500000066020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000078011001c70000017a00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000005f033001970000000505300272000001510000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001490000413d000000000604004b000001600000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005f010000410000005f0420009c000000000201801900000040012002100000006002300210000000000121019f0000017a00010430000000730100004100000000001004350000004101000039000000040010043f0000006f010000410000017a00010430000000000001042f00000171002104210000000102000039000000000001042d0000000002000019000000000001042d00000176002104230000000102000039000000000001042d0000000002000019000000000001042d0000017800000432000001790001042e0000017a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b71000000000000000000000000000000000000000000000000000000007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000046a075a2453a8b9c40d03407cc5596a75c24f2bd59dbd37c3775ff55e4d171f7", + "deployedBytecode": "0x0001000000000002000800000000000200000000000103550000008003000039000000400030043f000000000301001900000060033002700000005f033001970000000102200190000000200000c13d000000040230008c000001180000413d000000000201043b000000e002200270000000610420009c000000280000613d000000620420009c0000007f0000613d000000630220009c000001180000c13d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000101043b000000000101041a000000800010043f0000007b01000041000001790001042e0000000001000416000000000101004b000001180000c13d0000002001000039000001000010044300000120000004430000006001000041000001790001042e0000000002000416000000000202004b000001180000c13d000000040230008a000000400220008c000001180000413d0000000402100370000000000402043b000000000204004b0000000002000019000000010200c039000200000004001d000000000224004b000001180000c13d0000002402100370000000000202043b000000640420009c000001180000213d00000023042000390000006505000041000000000634004b000000000600001900000000060580190000006504400197000000000704004b0000000005008019000000650440009c000000000506c019000000000405004b000001180000c13d0000000404200039000000000441034f000000000404043b000800000004001d000000640440009c000001180000213d000700240020003d000000080200002900000005022002100000000702200029000000000232004b000001180000213d0000000002000411000080010220008c000000c00000c13d000000080200006b000000be0000613d000000020200006b000000c80000c13d000500010000003d0004800d0000003d000300030000003d0000000004000019000000610000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000502043b000000000205041a000000000202004b0000005e0000c13d00000069015001970000006a0110009c0000011a0000c13d000600000004001d0000006b015001980000012f0000613d0000000501000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c700000004020000290000000303000029000000720400004100000000060000190178016e0000040f0000000001000367000000010220019000000006040000290000005e0000c13d000001180000013d0000000002000416000000000202004b000001180000c13d000000040230008a000000200220008c000001180000413d0000000401100370000000000501043b00000000010004110000800e0110008c000000990000c13d000000000105041a000000000101004b000000be0000c13d00000069015001970000006a0110009c000000a30000c13d0000006b01500198000000af0000c13d0000006601000041000000800010043f0000002001000039000000840010043f000000a40010043f0000007701000041000000a00000013d0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000007901000041000000c40010043f00000068010000410000017a000104300000006601000041000000800010043f0000002001000039000000840010043f0000002201000039000000a40010043f0000007501000041000000c40010043f0000007401000041000000e40010043f0000007a010000410000017a000104300000000101000039000000000015041b0000005f0100004100000000020004140000005f0320009c0000000002018019000000c00120021000000071011001c70000800d020000390000000303000039000000720400004100000000060000190178016e0000040f0000000101200190000001180000613d0000000001000019000001790001042e0000006601000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000006701000041000000a00000013d000580080000003d000180020000003d0000000004000019000000cf0000013d0000000104400039000000080240006c000000be0000813d00000005024002100000000702200029000000000221034f000000000302043b000000000203041a000000000202004b000000cc0000c13d00000069013001970000006a0110009c0000011a0000c13d000400000004001d000600000003001d0000006b013001980000012f0000613d0000006c0100004100000000001004390000000501000029000000040010044300000000010004140000005f0210009c0000005f01008041000000c0011002100000006d011001c70000000102000029017801730000040f0000000102200190000001400000613d000000000101043b000000000101004b0000000602000029000001180000613d000000400400043d0000006e0100004100000000001404350000000401400039000000000021043500000000010004140000005f0210009c0000005f0300004100000000010380190000005f0240009c000300000004001d000000000203001900000000020440190000004002200210000000c001100210000000000121019f0000006f011001c700000005020000290178016e0000040f0000000102200190000001410000613d0000000302000029000000700120009c000001670000813d000000400020043f00000001010000390000000605000029000000000015041b00000000010004140000005f0210009c0000005f01008041000000c00110021000000071011001c70000800d020000390000000303000039000000720400004100000002060000290178016e0000040f000000000100036700000001022001900000000404000029000000cc0000c13d00000000010000190000017a00010430000000400100043d000000640210003900000074030000410000000000320435000000440210003900000075030000410000000000320435000000240210003900000022030000390000000000320435000000660200004100000000002104350000000402100039000000200300003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000076011001c70000017a00010430000000400100043d00000044021000390000007703000041000000000032043500000066020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000005f020000410000005f0310009c0000000001028019000000400110021000000078011001c70000017a00010430000000000001042f000000400200043d000000000301001900000060033002700000001f0430018f0000005f033001970000000505300272000001510000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001490000413d000000000604004b000001600000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000005f010000410000005f0420009c000000000201801900000040012002100000006002300210000000000121019f0000017a00010430000000730100004100000000001004350000004101000039000000040010043f0000006f010000410000017a00010430000000000001042f00000171002104210000000102000039000000000001042d0000000002000019000000000001042d00000176002104230000000102000039000000000001042d0000000002000019000000000001042d0000017800000432000001790001042e0000017a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000e516761e0000000000000000000000000000000000000000000000000000000079c4f929000000000000000000000000000000000000000000000000000000004c6314f0000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000ffff000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000039b34c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000000000000000000000000000000000000000000c94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e6182874e487b71000000000000000000000000000000000000000000000000000000007368000000000000000000000000000000000000000000000000000000000000496e636f72726563746c7920666f726d61747465642062797465636f646548610000000000000000000000000000000000000084000000000000000000000000436f6465206c656e67746820696e20776f726473206d757374206265206f6464000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520636f6d70726573736f72000000000000000000000000000000000000000084000000800000000000000000000000000000000000000000000000000000002000000080000000000000000046a075a2453a8b9c40d03407cc5596a75c24f2bd59dbd37c3775ff55e4d171f7", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/L1Messenger.json b/src/deps/contracts/L1Messenger.json index 63cc63f4..d9cf8401 100644 --- a/src/deps/contracts/L1Messenger.json +++ b/src/deps/contracts/L1Messenger.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "L1Messenger", - "sourceName": "cache-zk/solpp-generated-contracts/L1Messenger.sol", + "sourceName": "contracts-preprocessed/L1Messenger.sol", "abi": [ { "anonymous": false, @@ -161,8 +161,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000002af0430019700030000004103550002000000010355000002af0030019d000100000000001f0000008003000039000000400030043f00000001012001900000004b0000c13d000400000003001d0000000001000031000000040110008c000000bb0000413d0000000201000367000000000101043b000000e001100270000002b10210009c000000530000213d000002b40210009c000000900000613d000002b50110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000600310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d00000004010000390000000201100367000000000201043b000000000102004b0000000001000019000000010100c039000000000112004b000000bb0000c13d000000400400043d0000000003000411000002f20130009c000001040000413d0000006401400039000002f30200004100000000002104350000004401400039000002f4020000410000000000210435000000240140003900000034020000390000000000210435000002c9010000410000000000140435000000040140003900000020020000390000000000210435000002af01000041000002af0240009c00000000010440190000004001100210000002d2011001c700000aba000104300000000001000416000000000101004b000000bb0000c13d000000200100003900000100001004430000012000000443000002b00100004100000ab90001042e000002b20210009c000000aa0000613d000002b30110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bb0000c13d00000002030003670000000402300370000000000202043b000002b70420009c000000bb0000213d0000002304200039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404200039000000000343034f000000000503043b000002b70350009c000000bb0000213d00000024062000390000000002650019000000000112004b000000bb0000213d000000000700041400000000010004140000000003000031000000000423004b000001940000813d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba000104300000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000200310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d0000000001000411000080040110008c000000fa0000c13d00000004010000390000000201100367000000000101043b0ab8094c0000040f000000000100001900000ab90001042e0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bd0000613d000000000100001900000aba0001043000000002020003670000000403200370000000000303043b000002b70430009c000000bb0000213d0000002304300039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404300039000000000442034f000000000404043b000800000004001d000002b70440009c000000bb0000213d0000002403300039000700000003001d00000008040000290000000003340019000000000113004b000000bb0000213d0000000001000411000080010110008c000001a80000c13d0000000801000029000000040110008c000000bb0000413d0000000701000029000000000112034f000000400300043d000000000201043b000002cc0120009c000003620000413d0000004401300039000002f1020000410000000000210435000000240130003900000014020000390000000000210435000002c9010000410000000000130435000000040130003900000020020000390000000000210435000002af01000041000002af0230009c00000000010340190000004001100210000002ca011001c700000aba00010430000002c901000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000002f501000041000000c40010043f000002f60100004100000aba00010430000c00000003001d000d00000002001d000002bd010000410000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b02000039000e00000004001d0ab80aae0000040f0000000e0a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001280000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001200000413d000000000705004b000001370000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000016e0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c0000000d02000029000000bb0000413d00000000030a04330000ffff0130008c000000bb0000213d000e00000003001d0ab8089d0000040f00000060021000390000000c03000029000000000032043500000040021000390000000e03000029000000000032043500000020021000390000000d030000290000000000320435000000000001043500000024020000390000000202200367000000000202043b0000008003100039000000000023043500000044020000390000000202200367000000000202043b000000a00310003900000000002304350ab808a90000040f000e00000001001d0ab80a920000040f000000400100043d0000000e020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400200043d0000001f0430018f00000005033002720000017b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001730000413d000000000504004b0000018a0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000002af0410009c000001ba0000a13d000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002cb03000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000e00000007001d000d00000005001d0000000002230049000002af02200197000c00000006001d000002af03600197000000020330036700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000003470000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f043000390000000504400272000001ea0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000001e20000413d000000000400004b000001ec0000613d0000000104000031000000000443004b000000bb0000213d00000003050003670000001f0430018f0000000503300272000001fc0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000001f40000413d000000000604004b0000020b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005df0000c13d0000000001020433000b00000001001d00000000020004140000000e01000029000a00000002001d000000000121004b0000008a0000413d0000000201000039000900000001001d000000000301041a000000400100043d00000040021000390000000b040000290000000000420435000000200210003900000000003204350000004003000039000800000003001d0000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b0000000902000029000000000012041b000002bd01000041000000400400043d000900000004001d0000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b020000390ab80aae0000040f000000090a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000025e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002560000413d00000000090a0019000000000705004b0000026e0000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004b20000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002b70220009c000003660000213d0000000101100190000003660000c13d0000000701000029000000400010043f000000200130008c000000bb0000413d00000000010904330000ffff0210008c000000bb0000213d0000000702000029000002bf0220009c000003660000213d0000000703000029000000c002300039000000400020043f0000000004000410000002c0024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000900000002001d000300000005001d0000000000250435000000a0023000390000000b07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d000000200320003900000000000304350000002105200039000002c1060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002c20120009c000003660000213d0000008001200039000000400010043f000002af01000041000002af0430009c000000000301801900000040033002100000000002020433000002af0420009c00000000020180190000006002200210000000000232019f0000000003000414000002af0430009c0000000001034019000000c001100210000000000121019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000008030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000000000010041b0000000901000029000000000101041a000000010200008a000000000221004b0000008a0000613d00000001011000390000000903000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000005000414000002af0450009c00000000010540190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f0000000d030000290000000101200190000000bb0000613d0000005c023000390000000001000413000002af0310019700000000412300a9000002c502200197000002c50410019700000000422400d9000000000223004b0000000e020000290000008a0000c13d0000000a030000290000000002320049000000a001100039000000000121001a0000008a0000413d000002af0210009c000001960000213d0000000002100420000000400100043d000000000202004b000006e70000c13d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000003520000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000034b0000413d000000000504004b000003600000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000300000002001d000b00000003001d000002cd0130009c0000036c0000a13d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba000104300000000307000029000000e0067002700000000b02000029000002ce01200041000000400010043f0000080001000039000900000001001d000000000512043600000000010000310000000201100367000000000200001900000005032002100000000004350019000000000331034f000000000303043b00000000003404350000000102200039000008000320008c000003770000413d000a00000005001d0000000402000039000002b90170009c0000000007000019000600000006001d000003e90000813d000d00000002001d000000000100041a000000000117004b000004820000c13d0000000301000029000002d30110009c0000000b030000290000000a0400002900000006050000290000039a0000213d0000000001030433000000000151004b000003e30000a13d00000005015002100000000001410019000002d40200004100000000002104350000000101500039000007ff0250008c00000000050100190000038f0000413d0000004001000039000c00000001001d0000801001000039000600000001001d0000000901000029000500000001001d0000000101100270000900000001001d000000000500001900000000010304330000000102500210000000000321004b000003e30000a13d00000001022001bf000000000121004b000003e30000a13d00000005012002100000000001410019000e00000005001d0000000602500210000000000242001900000000030204330000000002010433000000400100043d00000040041000390000000000240435000000200210003900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700000006020000290ab80aae0000040f0000000102200190000000bb0000613d0000000b0300002900000000020304330000000e05000029000000000252004b0000000a04000029000003e30000a13d00000005025002100000000002420019000000000101043b000000000012043500000001055000390000000901000029000000000115004b000003a30000413d0000000501000029000000030110008c0000039e0000213d0000000001030433000000000101004b000004d80000c13d000002ef0100004100000000001004350000003201000039000000040010043f000002f00100004100000aba000104300000000401000039000000590200008a000500000002001d0000000007000019000000000600001900000058031000390000000802000029000d00000003001d000000000223004b000000bb0000213d000000070200002900000000022100190000000001000414000002af032001970000000504000029000000000442004b0000008a0000213d00000058022000390000000004000031000000000524004b0000008a0000413d000c00000007001d000e00000006001d0000000203300367000002cf0510009c000001960000813d0000000002240049000002af0220019700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000004970000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c0000000e09000029000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000c0a000029000004300000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004280000413d000000000400004b000004320000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000004410000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000004390000413d0000001f03300190000004500000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000b010000290000000001010433000000000191004b0000000a03000029000003e30000a13d0000000501900210000000000131001900000000020204330000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000a20435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000e0600002900000001022001900000000602000029000000bb0000613d000000000701043b0000000106600039000000000126004b0000000d020000290000000001020019000003ee0000413d000003850000013d000000400100043d0000006402100039000002d00300004100000000003204350000004402100039000002d103000041000000000032043500000024021000390000003c030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba000104300000001f0430018f0000000502300272000004a20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000049b0000413d000000000504004b000004b00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400200043d0000001f0430018f0000000503300272000004bf0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004b70000413d000000000504004b000004ce0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000050100008a000900000001001d0000000d02000029000000000112004b0000008a0000213d0000000d0100002900000004031000390000000801000029000000000113004b000000bb0000213d0000000a010000290000000001010433000500000001001d00000007010000290000000d0200002900000000011200190000000201100367000000000101043b000002b90210009c0000000007000019000005450000813d0000000201000039000300000001001d000000000101041a000000000117004b000005f10000c13d0000000901000029000000000113004b0000008a0000213d00000004023000390000000801000029000e00000002001d000000000112004b000000bb0000213d000000070100002900000000011300190000000201100367000000000101043b000002b90210009c000b00000000001d000006240000813d0000000301000039000d00000001001d000000000101041a0000000b02000029000000000112004b000006cf0000c13d00000008010000290000000e02000029000000000112004b000003e30000813d00000007010000290000000e0200002900000000011200190000000203000367000000000213034f000000000202043b000002e702200197000002c10220009c0000072e0000c13d00000009020000290000000e04000029000000000224004b0000008a0000213d0000000e0200002900000004022000390000000804000029000000000442004b000000bb0000213d0000000101100039000000000113034f000000000101043b0000000804000029000000000442004b000003e30000813d000000e80110027000000007040000290000000002420019000000000423034f0000000e020000290000000502200039000000000521001a000c00000005001d000000000404043b0000008a0000413d00000008050000290000000c06000029000000000556004b000000bb0000213d0000000c05000029000002ea0550009c000007a60000413d000000400100043d0000004402100039000002ee030000410000000000320435000002c902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000e001100270000a00000001001d0000000007000019000e00000000001d0000000901000029000000000113004b0000008a0000213d00000004013000390000000802000029000000000221004b000000bb0000213d000000070200002900000000022300190000000202200367000000000202043b000000e002200270000000000612001a0000008a0000413d0000000803000029000000000336004b000000bb0000213d000000070300002900000000033100190000000001000414000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d000d00000007001d000b00000006001d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000006090000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000d09000029000005940000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000058c0000413d000000000400004b000005960000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000005a50000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000059d0000413d0000001f03300190000005b40000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000002020433000000400100043d00000040031000390000000000230435000000200210003900000000009204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000000b03000029000000bb0000613d000000000701043b0000000e0200002900000001022000390000000a01000029000e00000002001d000000000112004b000005490000413d000004ed0000013d000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000008402100039000002d60300004100000000003204350000006402100039000002d70300004100000000003204350000004402100039000002d8030000410000000000320435000000240210003900000044030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba000104300000001f0430018f0000000502300272000006140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000060d0000413d000000000504004b000006220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000e001100270000600000001001d000b00000000001d000a00000000001d00000009010000290000000e02000029000000000112004b0000008a0000213d0000000e0100002900000004011000390000000802000029000000000221004b000000bb0000213d00000007020000290000000e0300002900000000022300190000000202200367000000000202043b000000e003200270000d00000003001d000000000313001a000e00000003001d0000008a0000413d00000008030000290000000e04000029000000000334004b000000bb0000213d000002da03200198000007430000c13d000002dc0320009c000007550000813d000002dd02200198000007670000613d0000000702000029000000000321001900000000010004140000000d02000029000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00000002020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000007790000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000067d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006750000413d000000000400004b0000067f0000613d0000000104000031000000000443004b000000bb0000213d000000030400036700000005053002720000068e0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006860000413d0000001f033001900000069d0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000007940000c13d0000000001020433000002df011001970000000d02000029000000db02200210000002e002200197000000000112019f000002c1021001c7000000400100043d0000004003100039000000000023043500000020021000390000000b0300002900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000b00000001001d0000000a0200002900000001022000390000000601000029000a00000002001d000000000112004b000006280000413d000005010000013d000000400100043d0000008402100039000002e40300004100000000003204350000006402100039000002e50300004100000000003204350000004402100039000002e603000041000000000032043500000024021000390000005e030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba00010430000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000002044003670000000505500272000006fa0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006f20000413d000000000603004b000007090000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f000002af03000041000002af0410009c00000000010380190000004001100210000002af0420009c00000000020380190000006002200210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c70000800d020000390000000303000039000002c60400004100000001050000290000000b060000290ab80aa90000040f0000000101200190000000bb0000613d000000400100043d0000000b020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400100043d0000006402100039000002e80300004100000000003204350000004402100039000002e9030000410000000000320435000000240210003900000027030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba00010430000000400100043d0000004402100039000002db030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e3030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e2030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000007840000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000077d0000413d000000000504004b000007920000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400100043d0000004402100039000002de030000410000000000320435000000240210003900000019030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000000c0500002900000004055000390000000806000029000000000665004b000000bb0000213d00000007060000290000000c070000290000000006670019000000000363034f000000000703043b000000e00670027000000110836000c9000002b90770009c000007b70000413d00000000876300d9000001100770008c0000008a0000c13d00000000085300190000000807000029000b00000008001d000000000778004b000000bb0000213d000000f804400270000000400900043d00000044079000390000000408000029000000000087043500000024079000390000000000470435000002eb0400004100000000004904350000008404900039000000000034043500000004049000390000000000640435000000070600002900000000076500190000001f0630018f000e00000009001d000000a40590003900000002087003670000000509300272000007da0000613d0000000007000019000000050a700210000000000ba50019000000000aa8034f000000000a0a043b0000000000ab04350000000107700039000000000a97004b000007d20000413d00000007070000290000000007720019000000000206004b000007eb0000613d0000000502900210000000000828034f00000000022500190000000306600210000000000902043300000000096901cf000000000969022f000000000808043b0000010006600089000000000868022f00000000066801cf000000000696019f0000000000620435000000000235001900000000000204350000001f02300039000002ec02200197000000000225001900000000034200490000000e04000029000000640440003900000000003404350000001f0310018f000000000212043600000002047003670000000505100272000008020000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007fa0000413d000000000603004b000008110000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f01100039000002ed011001970000000e0400002900000000014100490000000001210019000002af02000041000002af0340009c000000000302001900000000030440190000004003300210000002af0410009c00000000010280190000006001100210000000000131019f0000000003000414000002af0430009c0000000002034019000000c002200210000000000112019f0000800e020000390ab80aa90000040f00000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000083b0000613d000000000700001900000005087002100000000e090000290000000009890019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008320000413d000000000705004b0000084b0000613d0000000506600210000000000761034f0000000e0800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000008770000613d0000001f01400039000000600210018f0000000e010000290000000001120019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c000000bb0000413d00000008010000290000000b02000029000000000112004b000000000100001900000001010060390000000e020000290000000002020433000e00000002001d0ab809ce0000040f0000000501000029000000000010041d00000007010000290000000c020000290ab809e60000040f0000000102000039000000000012041d00000003010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b000000000100001900000ab90001042e000000400200043d0000001f0430018f0000000503300272000008840000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087c0000413d000000000504004b000008930000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000400100043d000002f70210009c000008a30000813d000000c002100039000000400020043f000000000001042d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba0001043000070000000000020000000082010434000000f80320021000000040071000390000006006100039000000a005100039000200000001001d0000008002100039000600000002001d0000000004020433000700000005001d0000000005050433000500000006001d0000000006060433000400000007001d0000000007070433000300000008001d0000000008080433000000400100043d00000020021000390000000000320435000002c103000041000000000808004b000000000300601900000021081000390000000000380435000000f00370021000000022071000390000000000370435000000600360021000000024061000390000000000360435000000580310003900000000005304350000003803100039000000000043043500000058030000390000000000310435000002f80310009c000009400000813d0000008003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002bb0310009c000009400000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000000000112004b000009460000613d000100000002001d0000000101200039000000000013041b00000002010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000040100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000060100002900000000010104330000008004200039000000000014043500000007010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000004000414000002af0540009c00000000010440190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f00000001012001900000093e0000613d0000000101000029000000000001042d000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba0001043000020000000000020000000302000039000100000002001d000000000302041a000000400500043d0000004002500039000200000001001d00000000001204350000002002500039000000000032043500000040030000390000000000350435000002f90350009c000009a50000813d0000006003500039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001050433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000009a30000613d000000000101043b0000000102000029000000000012041b0000000001000413000002af031001970000000206000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000099d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000099d0000c13d0000000001210019000002fa0210009c000009ab0000813d00000028011000390000000002100420000000400100043d000000000202004b000009bd0000613d0000000000610435000002af020000410000000003000414000002af0430009c0000000003028019000002af0410009c00000000010280190000004001100210000000c002300210000000000112019f000002fb011001c70000800d020000390000000103000039000002fc040000410ab80aa90000040f0000000101200190000009a30000613d000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000000101004b000009d10000613d000000000001042d000000400100043d0000006402100039000002fd0300004100000000003204350000004402100039000002fe03000041000000000032043500000024021000390000002a030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba0001043000000000030004140000000004120019000000000224004b00000000050000190000000105004039000002af02100197000000010150019000000a450000c13d0000000001000031000000000541004b00000a450000413d0000000202200367000002cf0530009c00000a4b0000813d0000000001410049000002af0110019700000000011203df000000c002300210000002b802200197000002b9022001c700000000012103af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af033001970003000000010355000000010220019000000a5d0000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c00000a780000213d000000010440019000000a780000c13d000000400020043f00000000023104360000001f04300039000000050440027200000a1f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000a170000413d000000000400004b00000a210000613d0000000104000031000000000443004b00000a7e0000213d00000003050003670000001f0430018f000000050330027200000a310000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000a290000413d000000000604004b00000a400000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000a800000c13d0000000001020433000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f000000050230027200000a680000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000a610000413d000000000504004b00000a760000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000078010000390000000001100420000000000101004b00000a970000613d000000000001042d000000400100043d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000aac002104210000000102000039000000000001042d0000000002000019000000000001042d00000ab1002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab6002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab80000043200000ab90001042e00000aba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffeffdf000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000001000000006e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe04c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f677300000000000000000000000000000000000000000000000000000000000000000000000000000000000100006f2062652073797374656d20636f6e747261637400000000000000000000000054686973206d6574686f642072657175697265207468652063616c6c65722074496e617070726f7072696174652063616c6c65720000000000000000000000000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffff40000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c64617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075620000000000000000000000000000000000000000000000000000000000000000918be26e3402038993f44a7d3e3c4373187a68986a393c0b39192bb13d9ba4c6", - "deployedBytecode": "0x0004000000000002000e00000000000200000000030100190000006003300270000002af0430019700030000004103550002000000010355000002af0030019d000100000000001f0000008003000039000000400030043f00000001012001900000004b0000c13d000400000003001d0000000001000031000000040110008c000000bb0000413d0000000201000367000000000101043b000000e001100270000002b10210009c000000530000213d000002b40210009c000000900000613d000002b50110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000600310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d00000004010000390000000201100367000000000201043b000000000102004b0000000001000019000000010100c039000000000112004b000000bb0000c13d000000400400043d0000000003000411000002f20130009c000001040000413d0000006401400039000002f30200004100000000002104350000004401400039000002f4020000410000000000210435000000240140003900000034020000390000000000210435000002c9010000410000000000140435000000040140003900000020020000390000000000210435000002af01000041000002af0240009c00000000010440190000004001100210000002d2011001c700000aba000104300000000001000416000000000101004b000000bb0000c13d000000200100003900000100001004430000012000000443000002b00100004100000ab90001042e000002b20210009c000000aa0000613d000002b30110009c000000bb0000c13d0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bb0000c13d00000002030003670000000402300370000000000202043b000002b70420009c000000bb0000213d0000002304200039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404200039000000000343034f000000000503043b000002b70350009c000000bb0000213d00000024062000390000000002650019000000000112004b000000bb0000213d000000000700041400000000010004140000000003000031000000000423004b000001940000813d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba000104300000000001000416000000000101004b000000bb0000c13d000000040100008a0000000001100031000002b602000041000000200310008c00000000030000190000000003024019000002b601100197000000000401004b000000000200a019000002b60110009c00000000010300190000000001026019000000000101004b000000bb0000c13d0000000001000411000080040110008c000000fa0000c13d00000004010000390000000201100367000000000101043b0ab8094c0000040f000000000100001900000ab90001042e0000000001000416000000000101004b000000bb0000c13d0000000001000031000000040210008a000002b603000041000000200420008c00000000040000190000000004034019000002b602200197000000000502004b000000000300a019000002b60220009c00000000020400190000000002036019000000000202004b000000bd0000613d000000000100001900000aba0001043000000002020003670000000403200370000000000303043b000002b70430009c000000bb0000213d0000002304300039000002b605000041000000000614004b00000000060000190000000006058019000002b607100197000002b604400197000000000874004b0000000005008019000000000474013f000002b60440009c00000000040600190000000004056019000000000404004b000000bb0000c13d0000000404300039000000000442034f000000000404043b000800000004001d000002b70440009c000000bb0000213d0000002403300039000700000003001d00000008040000290000000003340019000000000113004b000000bb0000213d0000000001000411000080010110008c000001a80000c13d0000000801000029000000040110008c000000bb0000413d0000000701000029000000000112034f000000400300043d000000000201043b000002cc0120009c000003620000413d0000004401300039000002f1020000410000000000210435000000240130003900000014020000390000000000210435000002c9010000410000000000130435000000040130003900000020020000390000000000210435000002af01000041000002af0230009c00000000010340190000004001100210000002ca011001c700000aba00010430000002c901000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f000002f501000041000000c40010043f000002f60100004100000aba00010430000c00000003001d000d00000002001d000002bd010000410000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b02000039000e00000004001d0ab80aae0000040f0000000e0a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001280000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001200000413d000000000705004b000001370000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f000300000001035500000001022001900000016e0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c0000000d02000029000000bb0000413d00000000030a04330000ffff0130008c000000bb0000213d000e00000003001d0ab8089d0000040f00000060021000390000000c03000029000000000032043500000040021000390000000e03000029000000000032043500000020021000390000000d030000290000000000320435000000000001043500000024020000390000000202200367000000000202043b0000008003100039000000000023043500000044020000390000000202200367000000000202043b000000a00310003900000000002304350ab808a90000040f000e00000001001d0ab80a920000040f000000400100043d0000000e020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400200043d0000001f0430018f00000005033002720000017b0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000001730000413d000000000504004b0000018a0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000002af0410009c000001ba0000a13d000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002cb03000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000e00000007001d000d00000005001d0000000002230049000002af02200197000c00000006001d000002af03600197000000020330036700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000003470000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f043000390000000504400272000001ea0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000001e20000413d000000000400004b000001ec0000613d0000000104000031000000000443004b000000bb0000213d00000003050003670000001f0430018f0000000503300272000001fc0000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000001f40000413d000000000604004b0000020b0000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c000005df0000c13d0000000001020433000b00000001001d00000000020004140000000e01000029000a00000002001d000000000121004b0000008a0000413d0000000201000039000900000001001d000000000301041a000000400100043d00000040021000390000000b040000290000000000420435000000200210003900000000003204350000004003000039000800000003001d0000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b0000000902000029000000000012041b000002bd01000041000000400400043d000900000004001d0000000000140435000002af010000410000000002000414000002af0320009c0000000002018019000002af0340009c00000000010440190000004001100210000000c002200210000000000112019f000002be011001c70000800b020000390ab80aae0000040f000000090a00002900000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000025e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002560000413d00000000090a0019000000000705004b0000026e0000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000004b20000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002b70220009c000003660000213d0000000101100190000003660000c13d0000000701000029000000400010043f000000200130008c000000bb0000413d00000000010904330000ffff0210008c000000bb0000213d0000000702000029000002bf0220009c000003660000213d0000000703000029000000c002300039000000400020043f0000000004000410000002c0024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000900000002001d000300000005001d0000000000250435000000a0023000390000000b07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d000000200320003900000000000304350000002105200039000002c1060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002c20120009c000003660000213d0000008001200039000000400010043f000002af01000041000002af0430009c000000000301801900000040033002100000000002020433000002af0420009c00000000020180190000006002200210000000000232019f0000000003000414000002af0430009c0000000001034019000000c001100210000000000121019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000008030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000000000010041b0000000901000029000000000101041a000000010200008a000000000221004b0000008a0000613d00000001011000390000000903000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000005000414000002af0450009c00000000010540190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f0000000d030000290000000101200190000000bb0000613d0000005c023000390000000001000413000002af0310019700000000412300a9000002c502200197000002c50410019700000000422400d9000000000223004b0000000e020000290000008a0000c13d0000000a030000290000000002320049000000a001100039000000000121001a0000008a0000413d000002af0210009c000001960000213d0000000002100420000000400100043d000000000202004b000006e70000c13d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000003520000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000034b0000413d000000000504004b000003600000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000300000002001d000b00000003001d000002cd0130009c0000036c0000a13d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba000104300000000307000029000000e0067002700000000b02000029000002ce01200041000000400010043f0000080001000039000900000001001d000000000512043600000000010000310000000201100367000000000200001900000005032002100000000004350019000000000331034f000000000303043b00000000003404350000000102200039000008000320008c000003770000413d000a00000005001d0000000402000039000002b90170009c0000000007000019000600000006001d000003e90000813d000d00000002001d000000000100041a000000000117004b000004820000c13d0000000301000029000002d30110009c0000000b030000290000000a0400002900000006050000290000039a0000213d0000000001030433000000000151004b000003e30000a13d00000005015002100000000001410019000002d40200004100000000002104350000000101500039000007ff0250008c00000000050100190000038f0000413d0000004001000039000c00000001001d0000801001000039000600000001001d0000000901000029000500000001001d0000000101100270000900000001001d000000000500001900000000010304330000000102500210000000000321004b000003e30000a13d00000001022001bf000000000121004b000003e30000a13d00000005012002100000000001410019000e00000005001d0000000602500210000000000242001900000000030204330000000002010433000000400100043d00000040041000390000000000240435000000200210003900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700000006020000290ab80aae0000040f0000000102200190000000bb0000613d0000000b0300002900000000020304330000000e05000029000000000252004b0000000a04000029000003e30000a13d00000005025002100000000002420019000000000101043b000000000012043500000001055000390000000901000029000000000115004b000003a30000413d0000000501000029000000030110008c0000039e0000213d0000000001030433000000000101004b000004d80000c13d000002ef0100004100000000001004350000003201000039000000040010043f000002f00100004100000aba000104300000000401000039000000590200008a000500000002001d0000000007000019000000000600001900000058031000390000000802000029000d00000003001d000000000223004b000000bb0000213d000000070200002900000000022100190000000001000414000002af032001970000000504000029000000000442004b0000008a0000213d00000058022000390000000004000031000000000524004b0000008a0000413d000c00000007001d000e00000006001d0000000203300367000002cf0510009c000001960000813d0000000002240049000002af0220019700000000022303df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000004970000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c0000000e09000029000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000c0a000029000004300000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000004280000413d000000000400004b000004320000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000004410000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000004390000413d0000001f03300190000004500000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000b010000290000000001010433000000000191004b0000000a03000029000003e30000a13d0000000501900210000000000131001900000000020204330000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000a20435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000e0600002900000001022001900000000602000029000000bb0000613d000000000701043b0000000106600039000000000126004b0000000d020000290000000001020019000003ee0000413d000003850000013d000000400100043d0000006402100039000002d00300004100000000003204350000004402100039000002d103000041000000000032043500000024021000390000003c030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba000104300000001f0430018f0000000502300272000004a20000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000049b0000413d000000000504004b000004b00000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400200043d0000001f0430018f0000000503300272000004bf0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000004b70000413d000000000504004b000004ce0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000050100008a000900000001001d0000000d02000029000000000112004b0000008a0000213d0000000d0100002900000004031000390000000801000029000000000113004b000000bb0000213d0000000a010000290000000001010433000500000001001d00000007010000290000000d0200002900000000011200190000000201100367000000000101043b000002b90210009c0000000007000019000005450000813d0000000201000039000300000001001d000000000101041a000000000117004b000005f10000c13d0000000901000029000000000113004b0000008a0000213d00000004023000390000000801000029000e00000002001d000000000112004b000000bb0000213d000000070100002900000000011300190000000201100367000000000101043b000002b90210009c000b00000000001d000006240000813d0000000301000039000d00000001001d000000000101041a0000000b02000029000000000112004b000006cf0000c13d00000008010000290000000e02000029000000000112004b000003e30000813d00000007010000290000000e0200002900000000011200190000000203000367000000000213034f000000000202043b000002e702200197000002c10220009c0000072e0000c13d00000009020000290000000e04000029000000000224004b0000008a0000213d0000000e0200002900000004022000390000000804000029000000000442004b000000bb0000213d0000000101100039000000000113034f000000000101043b0000000804000029000000000442004b000003e30000813d000000e80110027000000007040000290000000002420019000000000423034f0000000e020000290000000502200039000000000521001a000c00000005001d000000000404043b0000008a0000413d00000008050000290000000c06000029000000000556004b000000bb0000213d0000000c05000029000002ea0550009c000007a60000413d000000400100043d0000004402100039000002ee030000410000000000320435000002c902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000e001100270000a00000001001d0000000007000019000e00000000001d0000000901000029000000000113004b0000008a0000213d00000004013000390000000802000029000000000221004b000000bb0000213d000000070200002900000000022300190000000202200367000000000202043b000000e002200270000000000612001a0000008a0000413d0000000803000029000000000336004b000000bb0000213d000000070300002900000000033100190000000001000414000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d000d00000007001d000b00000006001d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000006090000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000000d09000029000005940000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b0000058c0000413d000000000400004b000005960000613d0000000104000031000000000443004b000000bb0000213d00000003040003670000000505300272000005a50000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b0000059d0000413d0000001f03300190000005b40000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000005df0000c13d0000000002020433000000400100043d00000040031000390000000000230435000000200210003900000000009204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000000b03000029000000bb0000613d000000000701043b0000000e0200002900000001022000390000000a01000029000e00000002001d000000000112004b000005490000413d000004ed0000013d000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000008402100039000002d60300004100000000003204350000006402100039000002d70300004100000000003204350000004402100039000002d8030000410000000000320435000000240210003900000044030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba000104300000001f0430018f0000000502300272000006140000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000060d0000413d000000000504004b000006220000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000e001100270000600000001001d000b00000000001d000a00000000001d00000009010000290000000e02000029000000000112004b0000008a0000213d0000000e0100002900000004011000390000000802000029000000000221004b000000bb0000213d00000007020000290000000e0300002900000000022300190000000202200367000000000202043b000000e003200270000d00000003001d000000000313001a000e00000003001d0000008a0000413d00000008030000290000000e04000029000000000334004b000000bb0000213d000002da03200198000007430000c13d000002dc0320009c000007550000813d000002dd02200198000007670000613d0000000702000029000000000321001900000000010004140000000d02000029000000000232001a000002af043001970000008a0000413d0000000003000031000000000523004b0000008a0000413d0000000204400367000002af0510009c000001960000213d0000000002230049000002af0220019700000000022403df000000c001100210000002b801100197000002b9011001c700000000011203af00000002020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af0330019700030000000103550000000102200190000007790000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c000003660000213d0000000104400190000003660000c13d000000400020043f00000000023104360000001f0430003900000005044002720000067d0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000006750000413d000000000400004b0000067f0000613d0000000104000031000000000443004b000000bb0000213d000000030400036700000005053002720000068e0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006860000413d0000001f033001900000069d0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000001010433000000200110008c000007940000c13d0000000001020433000002df011001970000000d02000029000000db02200210000002e002200197000000000112019f000002c1021001c7000000400100043d0000004003100039000000000023043500000020021000390000000b0300002900000000003204350000000c030000290000000000310435000002bb0310009c000003660000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000000bb0000613d000000000101043b000b00000001001d0000000a0200002900000001022000390000000601000029000a00000002001d000000000112004b000006280000413d000005010000013d000000400100043d0000008402100039000002e40300004100000000003204350000006402100039000002e50300004100000000003204350000004402100039000002e603000041000000000032043500000024021000390000005e030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d9011001c700000aba00010430000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000002044003670000000505500272000006fa0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006f20000413d000000000603004b000007090000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f000002af03000041000002af0410009c00000000010380190000004001100210000002af0420009c00000000020380190000006002200210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c70000800d020000390000000303000039000002c60400004100000001050000290000000b060000290ab80aa90000040f0000000101200190000000bb0000613d000000400100043d0000000b020000290000000000210435000002af02000041000002af0310009c00000000010280190000004001100210000002c7011001c700000ab90001042e000000400100043d0000006402100039000002e80300004100000000003204350000004402100039000002e9030000410000000000320435000000240210003900000027030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba00010430000000400100043d0000004402100039000002db030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e3030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000400100043d0000004402100039000002e2030000410000000000320435000000240210003900000003030000290000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f0000000502300272000007840000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000077d0000413d000000000504004b000007920000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000000400100043d0000004402100039000002de030000410000000000320435000000240210003900000019030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000000c0500002900000004055000390000000806000029000000000665004b000000bb0000213d00000007060000290000000c070000290000000006670019000000000363034f000000000703043b000000e00670027000000110836000c9000002b90770009c000007b70000413d00000000876300d9000001100770008c0000008a0000c13d00000000085300190000000807000029000b00000008001d000000000778004b000000bb0000213d000000f804400270000000400900043d00000044079000390000000408000029000000000087043500000024079000390000000000470435000002eb0400004100000000004904350000008404900039000000000034043500000004049000390000000000640435000000070600002900000000076500190000001f0630018f000e00000009001d000000a40590003900000002087003670000000509300272000007da0000613d0000000007000019000000050a700210000000000ba50019000000000aa8034f000000000a0a043b0000000000ab04350000000107700039000000000a97004b000007d20000413d00000007070000290000000007720019000000000206004b000007eb0000613d0000000502900210000000000828034f00000000022500190000000306600210000000000902043300000000096901cf000000000969022f000000000808043b0000010006600089000000000868022f00000000066801cf000000000696019f0000000000620435000000000235001900000000000204350000001f02300039000002ec02200197000000000225001900000000034200490000000e04000029000000640440003900000000003404350000001f0310018f000000000212043600000002047003670000000505100272000008020000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007fa0000413d000000000603004b000008110000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f01100039000002ed011001970000000e0400002900000000014100490000000001210019000002af02000041000002af0340009c000000000302001900000000030440190000004003300210000002af0410009c00000000010280190000006001100210000000000131019f0000000003000414000002af0430009c0000000002034019000000c002200210000000000112019f0000800e020000390ab80aa90000040f00000000030100190000006003300270000002af03300197000000200430008c000000200400003900000000040340190000001f0540018f00000005064002720000083b0000613d000000000700001900000005087002100000000e090000290000000009890019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000008320000413d000000000705004b0000084b0000613d0000000506600210000000000761034f0000000e0800002900000000066800190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f00030000000103550000000102200190000008770000613d0000001f01400039000000600210018f0000000e010000290000000001120019000000000221004b00000000020000190000000102004039000002b70410009c000003660000213d0000000102200190000003660000c13d000000400010043f000000200130008c000000bb0000413d00000008010000290000000b02000029000000000112004b000000000100001900000001010060390000000e020000290000000002020433000e00000002001d0ab809ce0000040f0000000501000029000000000010041d00000007010000290000000c020000290ab809e60000040f0000000102000039000000000012041d00000003010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b000000000100001900000ab90001042e000000400200043d0000001f0430018f0000000503300272000008840000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b0000087c0000413d000000000504004b000008930000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000130435000002af010000410000000103000031000002af0430009c0000000003018019000002af0420009c000000000102401900000040011002100000006002300210000000000112019f00000aba00010430000000400100043d000002f70210009c000008a30000813d000000c002100039000000400020043f000000000001042d000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba0001043000070000000000020000000082010434000000f80320021000000040071000390000006006100039000000a005100039000200000001001d0000008002100039000600000002001d0000000004020433000700000005001d0000000005050433000500000006001d0000000006060433000400000007001d0000000007070433000300000008001d0000000008080433000000400100043d00000020021000390000000000320435000002c103000041000000000808004b000000000300601900000021081000390000000000380435000000f00370021000000022071000390000000000370435000000600360021000000024061000390000000000360435000000580310003900000000005304350000003803100039000000000043043500000058030000390000000000310435000002f80310009c000009400000813d0000008003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002bb0310009c000009400000213d0000006003100039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001010433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f00000001022001900000093e0000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000000000112004b000009460000613d000100000002001d0000000101200039000000000013041b00000002010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000040100002900000000010104330000ffff0110018f0000004004200039000000000014043500000005010000290000000001010433000002c00110019700000060042000390000000000140435000000060100002900000000010104330000008004200039000000000014043500000007010000290000000001010433000000a0042000390000000000140435000002af01000041000002af0420009c00000000020180190000000004000414000002af0540009c00000000010440190000004002200210000000c001100210000000000121019f000002c3011001c70000800d02000039000002c4040000410ab80aa90000040f00000001012001900000093e0000613d0000000101000029000000000001042d000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba0001043000020000000000020000000302000039000100000002001d000000000302041a000000400500043d0000004002500039000200000001001d00000000001204350000002002500039000000000032043500000040030000390000000000350435000002f90350009c000009a50000813d0000006003500039000000400030043f000002af03000041000002af0420009c000000000203801900000040022002100000000001050433000002af0410009c00000000010380190000006001100210000000000121019f0000000002000414000002af0420009c0000000002038019000000c002200210000000000112019f000002bc011001c700008010020000390ab80aae0000040f0000000102200190000009a30000613d000000000101043b0000000102000029000000000012041b0000000001000413000002af031001970000000206000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000099d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000099d0000c13d0000000001210019000002fa0210009c000009ab0000813d00000028011000390000000002100420000000400100043d000000000202004b000009bd0000613d0000000000610435000002af020000410000000003000414000002af0430009c0000000003028019000002af0410009c00000000010280190000004001100210000000c002300210000000000112019f000002fb011001c70000800d020000390000000103000039000002fc040000410ab80aa90000040f0000000101200190000009a30000613d000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba00010430000000000101004b000009d10000613d000000000001042d000000400100043d0000006402100039000002fd0300004100000000003204350000004402100039000002fe03000041000000000032043500000024021000390000002a030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002d2011001c700000aba0001043000000000030004140000000004120019000000000224004b00000000050000190000000105004039000002af02100197000000010150019000000a450000c13d0000000001000031000000000541004b00000a450000413d0000000202200367000002cf0530009c00000a4b0000813d0000000001410049000002af0110019700000000011203df000000c002300210000002b802200197000002b9022001c700000000012103af00008010020000390ab80ab30000040f00000000030100190000006003300270000102af0030019d000002af033001970003000000010355000000010220019000000a5d0000613d0000003f01300039000002ba02100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000002b70520009c00000a780000213d000000010440019000000a780000c13d000000400020043f00000000023104360000001f04300039000000050440027200000a1f0000613d00000000050000310000000205500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b00000a170000413d000000000400004b00000a210000613d0000000104000031000000000443004b00000a7e0000213d00000003050003670000001f0430018f000000050330027200000a310000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b00000a290000413d000000000604004b00000a400000613d0000000503300210000000000535034f00000000033200190000000304400210000000000603043300000000064601cf000000000646022f000000000505043b0000010004400089000000000545022f00000000044501cf000000000464019f00000000004304350000000001010433000000200110008c00000a800000c13d0000000001020433000000000001042d000002ef0100004100000000001004350000001101000039000000040010043f000002f00100004100000aba00010430000000400100043d0000004402100039000002e1030000410000000000320435000000240210003900000008030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba000104300000001f0430018f000000050230027200000a680000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b00000a610000413d000000000504004b00000a760000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600130021000000aba00010430000002ef0100004100000000001004350000004101000039000000040010043f000002f00100004100000aba00010430000000000100001900000aba00010430000000400100043d0000004402100039000002d503000041000000000032043500000024021000390000001f030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000078010000390000000001100420000000000101004b00000a970000613d000000000001042d000000400100043d0000004402100039000002c8030000410000000000320435000000240210003900000014030000390000000000320435000002c9020000410000000000210435000000040210003900000020030000390000000000320435000002af02000041000002af0310009c00000000010280190000004001100210000002ca011001c700000aba0001043000000aac002104210000000102000039000000000001042d0000000002000019000000000001042d00000ab1002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab6002104230000000102000039000000000001042d0000000002000019000000000001042d00000ab80000043200000ab90001042e00000aba00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac88000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff00000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffeffdf000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000001000000006e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000004f766572666c6f770000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe04c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f677300000000000000000000000000000000000000000000000000000000000000000000000000000000000100006f2062652073797374656d20636f6e747261637400000000000000000000000054686973206d6574686f642072657175697265207468652063616c6c65722074496e617070726f7072696174652063616c6c65720000000000000000000000000000000000000000000000000000000000000064000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffff40000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffa000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c64617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075620000000000000000000000000000000000000000000000000000000000000000918be26e3402038993f44a7d3e3c4373187a68986a393c0b39192bb13d9ba4c6", + "bytecode": "0x0002000000000002000e0000000000020001000000010355000000000301001900000060053002700000023c0050019d0000008004000039000000400040043f0000023c035001970000000102200190000000310000c13d000000040230008c000001250000413d000000000201043b000000e0022002700000023e0620009c000000390000213d000002410420009c000000710000613d000002420220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000600220008c000001250000413d0000000401100370000000000301043b000000000103004b0000000001000019000000010100c039000000000113004b000001250000c13d0000000002000411000002810120009c000000ec0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000003401000039000000a40010043f0000028301000041000000c40010043f0000028401000041000000e40010043f0000028501000041000008ec000104300000000001000416000000000101004b000001250000c13d0000002001000039000001000010044300000120000004430000023d01000041000008eb0001042e0000023f0620009c000000ae0000613d000002400220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430620009c000001250000213d00000023062000390000024407000041000000000836004b000000000800001900000000080780190000024406600197000000000906004b0000000007008019000002440660009c000000000708c019000000000607004b000001250000c13d0000000406200039000000000661034f000000000706043b000002430670009c000001250000213d00000024082000390000000002870019000000000323004b000001250000413d00000000090004140000000003000414000002450630009c0000014a0000413d000000440140003900000259020000410000000000210435000000240140003900000008020000390000000000210435000002570100004100000000001404350000000401400039000000200200003900000000002104350000023c010000410000023c0240009c0000000004018019000000400140021000000258011001c7000008ec000104300000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000002000411000080040220008c000000e20000c13d0000000401100370000000000201043b0000000301000039000d00000001001d000000000101041a000000a00010043f000e00000002001d000000c00020043f0000004001000039000000800010043f000000e001000039000000400010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000287011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000d02000029000000000012041b00000000010004130000023c031001970000000e06000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000019d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000019d0000c13d0000000001210019000002880210009c000001df0000413d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000005ee0000013d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430420009c000001250000213d00000023042000390000024405000041000000000634004b000000000600001900000000060580190000024404400197000000000704004b0000000005008019000002440440009c000000000506c019000000000405004b000001250000c13d0000000404200039000000000541034f000000000505043b000b00000005001d000002430550009c000001250000213d0000002402200039000a00000002001d0000000b02200029000000000232004b000001250000213d0000000002000411000080010220008c000001a30000c13d0000000b02000029000000040220008c000001250000413d0000002002400039000000000221034f000000000402043b0000025c0240009c0000029b0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028001000041000000e90000013d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028601000041000000c40010043f0000025b01000041000008ec00010430000e00000003001d000d00000002001d0000024b01000041000000800010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000282011001c70000800b0200003908ea08e00000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000010a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001020000413d000000000705004b000001190000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000001270000613d0000001f01400039000000600210018f00000080082001bf000000400080043f000000200130008c0000000e05000029000001250000413d000000800100043d0000ffff0310008c000001ab0000a13d0000000001000019000008ec00010430000000400200043d0000001f0430018f0000000505300272000001340000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000012c0000413d000000000604004b000001430000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000023c010000410000023c0420009c000000000201801900000040012002100000006002300210000000000121019f000008ec00010430000e00000009001d000d00000007001d000c00000008001d0000023c04800197000000000141034f00000000022500490000023c0220019700000000012103df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000001ea0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000001780000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001700000413d000000000500004b0000017a0000613d0000001f0530018f00000005033002720000000e09000029000001870000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000017f0000413d000000000605004b000001960000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000005e80000c13d00000000040404330000000002000414000000000129004b000003ad0000813d0000027e0100004100000000001004350000001101000039000000040010043f0000027f01000041000008ec000104300000025701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000025a01000041000000e90000013d0000014003200039000000400030043f0000000000080435000000a003200039000b00000003001d00000000005304350000024f04000041000000000305004b0000000004006019000000e003200039000e00000003001d0000000d090000290000000000930435000000c003200039000900000003001d000000000013043500000001030003670000002405300370000000000505043b000001200720003900000100022001bf000a00000002001d00000000005204350000004402300370000000000602043b000c00000007001d00000000006704350000000002080433000000f807200210000000400200043d0000002003200039000000000073043500000021072000390000000000470435000000f00110021000000022042000390000000000140435000000600190021000000024042000390000000000140435000000580120003900000000006104350000003801200039000000000051043500000058010000390000000000120435000002500120009c000002050000a13d0000027e0100004100000000001004350000004101000039000001a00000013d00000028011000390000000002100420000000400100043d000000000202004b000002880000c13d00000044021000390000025603000041000000000032043500000024021000390000001403000039000005ee0000013d0000001f0430018f0000000502300272000001f50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001ee0000413d000000000504004b000002030000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c70000801002000039000d00000008001d08ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000800000002001d000000000112004b0000019d0000613d00000008010000290000000101100039000000000013041b0000000d010000290000000001010433000000ff0110018f000000400200043d00000000011204360000000b040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000090100002900000000010104330000ffff0110018f000000400420003900000000001404350000000e0100002900000000010104330000024e01100197000000600420003900000000001404350000000a010000290000000001010433000000800420003900000000001404350000000c010000290000000001010433000000a00420003900000000001404350000023c050000410000023c0120009c000000000205801900000000010004140000023c0410009c00000000010580190000004002200210000000c001100210000000000121019f00000251011001c70000800d02000039000002520400004108ea08db0000040f0000000101200190000001250000613d00000078010000390000000003100420000000400100043d0000023c0210009c0000023c0200004100000000020140190000004002200210000000000303004b000005020000c13d0000004403100039000002560400004100000000004304350000002403100039000000140400003900000000004304350000025703000041000000000031043500000004011000390000002003000039000000000031043500000258012001c7000008ec0001043000000000006104350000023c0200004100000000030004140000023c0430009c00000000030280190000023c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000289011001c70000800d0200003900000001030000390000028a0400004108ea08db0000040f0000000101200190000001250000613d0000000001000019000008eb0001042e000000000131034f000600000004001d000000e0064002700000025d02000041000000400020043f0000080002000039000700000002001d000000800020043f000000a00200003900000000030000190000000504300210000000000441034f000000000404043b00000000024204360000000103300039000008000430008c000002a50000413d00000004020000390000000601000029000002470110009c00000000080000190000030a0000813d000000000100041a000000000118004b000003980000c13d000d00000002001d0000000601000029000002610110009c000002c20000213d0000026201000041000000800200043d000000000262004b000003060000a13d0000000502600210000000a0022000390000000000120435000007ff0260008c0000000106600039000002b90000413d000900400000003d000880100000003d0000000701000029000600000001001d000700010010027800000000040000190000000101400210000000800200043d000000000312004b000003060000a13d00000001011001bf000000000212004b000003060000a13d0000000501100210000000a0011000390000000002010433000e00000004001d0000000601400210000000a001100039000c00000001001d0000000003010433000000400100043d000000400410003900000000002404350000002002100039000000000032043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000000080200002908ea08e00000040f0000000102200190000001250000613d000000800200043d0000000e04000029000000000242004b000003060000a13d00000005024002100000000c02200069000000000101043b00000000001204350000000104400039000000070140006c000002c80000413d0000000601000029000000030110008c000002c40000213d000000800100043d000000000101004b000005060000c13d0000027e0100004100000000001004350000003201000039000001a00000013d0000000401000039000900590000009200000000070000190000000008000019000800000006001d0000005803100039000d00000003001d0000000b0230006c000001250000213d0000000a0210002900000000010004140000023c03200197000000090420006c0000019d0000213d00000058022000390000000004000031000000000524004b0000019d0000413d000c00000008001d000e00000007001d00000001033003670000023c0510009c000000a70000213d00000000022400490000023c0220019700000000022303df000000c001100210000002460110019700000247011001c700000000011203af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000004ca0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000034a0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003420000413d000000000500004b0000034c0000613d0000000505300272000003570000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000034f0000413d0000001f03300190000003660000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c0000000e030000290000000c05000029000005e80000c13d000000800100043d000000000131004b000003060000a13d00000000020404330000000501300210000000a0011000390000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000520435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f000000010220019000000008060000290000000e07000029000001250000613d000000000801043b0000000107700039000000000167004b0000000d0200002900000000010200190000030f0000413d000002b10000013d000000400100043d00000064021000390000025e03000041000000000032043500000044021000390000025f03000041000000000032043500000024021000390000003c030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000260011001c7000008ec00010430000800000002001d0000000201000039000b00000001001d000000000301041a000000400100043d0000004002100039000a00000004001d0000000000420435000000200210003900000000003204350000004003000039000900000003001d0000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c040000410000023c0320009c0000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000b02000029000000000012041b0000024b01000041000000400400043d000b00000004001d000000000014043500000000010004140000023c0210009c0000023c0300004100000000010380190000023c0240009c00000000030440190000004002300210000000c001100210000000000121019f0000024c011001c70000800b0200003908ea08e00000040f0000000b0a000029000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003f70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003ef0000413d00000000090a0019000000000705004b000004070000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000004e50000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002430220009c000001db0000213d0000000101100190000001db0000c13d0000000701000029000000400010043f000000200130008c000001250000413d00000000010904330000ffff0210008c000001250000213d00000007020000290000024d0220009c000001db0000213d0000000703000029000000c002300039000000400020043f00000000040004100000024e024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000b00000002001d000300000005001d0000000000250435000000a0023000390000000a07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d0000002003200039000000000003043500000021052000390000024f060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002500120009c000001db0000213d0000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000b01000029000000000101041a000000010200008a000000000221004b0000019d0000613d00000001011000390000000b03000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f00000040042000390000000000140435000000050100002900000000010104330000024e0110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a00420003900000000001404350000023c010000410000023c0420009c000000000201801900000000050004140000023c0450009c00000000050180190000004001200210000000c002500210000000000112019f00000251011001c70000800d02000039000002520400004108ea08db0000040f00000001012001900000000d01000029000001250000613d0000005c0210003900000000010004130000023c0310019700000000412300a90000025302200197000002530410019700000000422400d9000000000223004b00000008030000290000019d0000c13d0000000e02300069000000a001100039000000000121001a0000019d0000413d000002450210009c000006c80000413d000000400400043d000000600000013d0000001f0430018f0000000502300272000004d50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004ce0000413d000000000504004b000004e30000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000000400200043d0000001f0430018f0000000505300272000004f20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004ea0000413d000000000604004b000005010000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d0000000803000029000000000031043500000255012001c7000008eb0001042e000000050100008a000800000001001d0000000d0110006b0000019d0000213d0000000d0100002900000004031000390000000b0130006c000001250000213d000000a00100043d000500000001001d0000000d020000290000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000055a0000813d0000000201000039000400000001001d000000000101041a000000000119004b000005fa0000c13d0000000002030019000000080120006c0000019d0000213d00000004032000390000000b0130006c000001250000213d0000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000062d0000813d00000000050300190000000301000039000d00000001001d000000000101041a000000000119004b000006cd0000c13d0000000b0150006c000003060000813d0000000a015000290000000102000367000000000312034f000000000303043b00000274033001970000024f0330009c000007200000c13d0000000004050019000000080340006c0000019d0000213d00000004034000390000000b0430006c000001250000213d0000000101100039000000000112034f000000000101043b0000000b0430006c000003060000813d000000e8011002700000000a03300029000000000432034f0000000503500039000c00000031001e000000000504043b0000019d0000413d0000000c060000290000000b0460006c000001250000213d0000000c04000029000002770440009c0000075a0000413d000000400100043d00000044021000390000027d030000410000000000320435000002570200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000005f30000013d000700e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e003300270000000000723001a0000019d0000413d0000000b0470006c000001250000213d0000000a02200029000000000323001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000e00000009001d000c00000008001d000d00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000006120000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000005a20000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000059a0000413d000000000500004b000005a40000613d00000005053002720000000e09000029000005b00000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005a80000413d0000001f03300190000005bf0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c000005e80000c13d0000000002040433000000400100043d000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000d030000290000000c08000029000001250000613d000000000901043b0000000108800039000000070180006c0000055d0000413d000005170000013d000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000000400100043d000000840210003900000264030000410000000000320435000000640210003900000265030000410000000000320435000000440210003900000266030000410000000000320435000000240210003900000044030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000267011001c7000008ec000104300000001f0430018f00000005023002720000061d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006160000413d000000000504004b0000062b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000600e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e00a30027000000000072a001a0000019d0000413d0000000b0470006c000001250000213d00000268043001980000072a0000c13d0000026a0430009c0000072e0000813d0000026b03300198000007320000613d0000000a0220002900000000032a001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000d0000000a001d000e00000009001d000700000008001d000c00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000000020200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000007390000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000000d0a0000290000067d0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000006750000413d000000000500004b0000067f0000613d00000005053002720000000e090000290000068b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006830000413d0000001f033001900000069a0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000400100043d0000000002020433000000200220008c000007540000c13d00000000020404330000026d02200197000000db03a002100000026e03300197000000000223019f0000024f022001c7000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000c030000290000000708000029000001250000613d000000000901043b0000000108800039000000060180006c000006300000413d000005280000013d0000000002100420000000400100043d000000000202004b000006da0000c13d000001e40000013d000000400100043d00000084021000390000027103000041000000000032043500000064021000390000027203000041000000000032043500000044021000390000027303000041000000000032043500000024021000390000005e03000039000006060000013d000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000001044003670000000505500272000006ed0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006e50000413d000000000603004b000006fc0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f0000023c040000410000023c0310009c000000000104801900000040011002100000023c0320009c00000000020480190000006002200210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c70000800d020000390000000303000039000002540400004100000001050000290000000a0600002908ea08db0000040f0000000101200190000001250000613d000000400100043d0000000a0200002900000000002104350000023c0210009c0000023c01008041000000400110021000000255011001c7000008eb0001042e000000400100043d00000064021000390000027503000041000000000032043500000044021000390000027603000041000000000032043500000024021000390000002703000039000003a10000013d000000400100043d00000044021000390000026903000041000007350000013d000000400100043d00000044021000390000027003000041000007350000013d000000400100043d00000044021000390000026f03000041000000000032043500000024021000390000000403000029000005ee0000013d0000001f0430018f0000000502300272000007440000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000073d0000413d000000000504004b000007520000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec0001043000000044021000390000026c03000041000000000032043500000024021000390000001903000039000005ee0000013d0000000c0400002900000004064000390000000b0460006c000001250000213d0000000c070000290000000a04700029000000000442034f000000000804043b000000e00780027000000110947000c9000002470880009c000007690000413d00000000987400d9000001100880008c0000019d0000c13d0000000009640019000900000009001d0000000b0890006c000001250000213d000000f805500270000000400a00043d0000004408a00039000000800900003900000000009804350000002408a000390000000000580435000002780500004100000000005a04350000000a066000290000008405a0003900000000004504350000000405a000390000000000750435000000000862034f0000001f0740018f000e0000000a001d000000a406a0003900000005094002720000078a0000613d000000000a000019000000050ba00210000000000cb60019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000007820000413d0000000a03300029000000000a07004b0000079a0000613d0000000509900210000000000898034f00000000099600190000000307700210000000000a090433000000000a7a01cf000000000a7a022f000000000808043b0000010007700089000000000878022f00000000077801cf0000000007a7019f0000000000790435000000000746001900000000000704350000001f044000390000027904400197000000000646001900000000045600490000000e0500002900000064055000390000000000450435000000000432034f0000001f0310018f00000000021604360000000505100272000007b10000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007a90000413d000000000603004b000007c00000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f011000390000027a011001970000000e04000029000000000141004900000000012100190000023c020000410000023c0340009c0000000003020019000000000304401900000040033002100000023c0410009c00000000010280190000006001100210000000000131019f00000000030004140000023c0430009c0000000003028019000000c002300210000000000112019f0000800e0200003908ea08db0000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007e90000613d000000000700001900000005087002100000000e09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000007e10000413d000000000705004b000007f80000613d0000000506600210000000000761034f0000000e066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000081e0000613d0000001f01400039000000600210018f0000000e01200029000000000221004b00000000020000190000000102004039000002430410009c000001db0000213d0000000102200190000001db0000c13d000000400010043f000000200230008c000001250000413d00000009030000290000000b0230006c0000083b0000c13d0000000e010000290000000001010433000e00000001001d0000000501000029000000000010041d0000000a010000290000000c0200002908ea08440000040f0000000102000039000000000012041d00000004010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b0000000001000019000008eb0001042e000000400200043d0000001f0430018f00000005053002720000082b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008230000413d000000000604004b0000083a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d00000064021000390000027b03000041000000000032043500000044021000390000027c03000041000000000032043500000024021000390000002a03000039000003a10000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000023c0210019700000001015001900000089d0000c13d0000000001000031000000000541004b0000089d0000413d0000000102200367000002450530009c000008a10000813d00000000014100490000023c0110019700000000011203df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000008a80000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000008c30000213d0000000105500190000008c30000c13d000000400040043f00000000043204360000001f0530003900000005055002720000087b0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000008730000413d000000000500004b0000087d0000613d0000001f0530018f0000000503300272000008890000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000008810000413d000000000605004b000008980000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000008c90000c13d0000000001040433000000000001042d0000027e0100004100000000001004350000001101000039000008c60000013d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000008cf0000013d0000001f0430018f0000000502300272000008b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000008ac0000413d000000000504004b000008c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000027e0100004100000000001004350000004101000039000000040010043f0000027f01000041000008ec00010430000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000008de002104210000000102000039000000000001042d0000000002000019000000000001042d000008e3002104230000000102000039000000000001042d0000000002000019000000000001042d000008e8002104230000000102000039000000000001042d0000000002000019000000000001042d000008ea00000432000008eb0001042e000008ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac8000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100a06e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe064617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075624c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f67730000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000080000000000000000054686973206d6574686f642072657175697265207468652063616c6c657220746f2062652073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000084000000800000000000000000496e617070726f7072696174652063616c6c65720000000000000000000000000200000000000000000000000000000000000040000000a0000000000000000000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c0000000000000000000000000000000000000000000000000000000000000000be4e63e922ab8b890ef6dfe84af8257090df74b94198b85dc46a3155de742c1d", + "deployedBytecode": "0x0002000000000002000e0000000000020001000000010355000000000301001900000060053002700000023c0050019d0000008004000039000000400040043f0000023c035001970000000102200190000000310000c13d000000040230008c000001250000413d000000000201043b000000e0022002700000023e0620009c000000390000213d000002410420009c000000710000613d000002420220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000600220008c000001250000413d0000000401100370000000000301043b000000000103004b0000000001000019000000010100c039000000000113004b000001250000c13d0000000002000411000002810120009c000000ec0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000003401000039000000a40010043f0000028301000041000000c40010043f0000028401000041000000e40010043f0000028501000041000008ec000104300000000001000416000000000101004b000001250000c13d0000002001000039000001000010044300000120000004430000023d01000041000008eb0001042e0000023f0620009c000000ae0000613d000002400220009c000001250000c13d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430620009c000001250000213d00000023062000390000024407000041000000000836004b000000000800001900000000080780190000024406600197000000000906004b0000000007008019000002440660009c000000000708c019000000000607004b000001250000c13d0000000406200039000000000661034f000000000706043b000002430670009c000001250000213d00000024082000390000000002870019000000000323004b000001250000413d00000000090004140000000003000414000002450630009c0000014a0000413d000000440140003900000259020000410000000000210435000000240140003900000008020000390000000000210435000002570100004100000000001404350000000401400039000000200200003900000000002104350000023c010000410000023c0240009c0000000004018019000000400140021000000258011001c7000008ec000104300000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000002000411000080040220008c000000e20000c13d0000000401100370000000000201043b0000000301000039000d00000001001d000000000101041a000000a00010043f000e00000002001d000000c00020043f0000004001000039000000800010043f000000e001000039000000400010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000287011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000d02000029000000000012041b00000000010004130000023c031001970000000e06000029000000e0016002700000ffff0210018f000000050120021000000004041001bf00000000514300a900000000544100d9000000000343004b0000019d0000c13d0000000102200270000000010320003900000007423000c9000000075420011a000000000343004b0000019d0000c13d0000000001210019000002880210009c000001df0000413d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000005ee0000013d0000000002000416000000000202004b000001250000c13d000000040230008a000000200220008c000001250000413d0000000402100370000000000202043b000002430420009c000001250000213d00000023042000390000024405000041000000000634004b000000000600001900000000060580190000024404400197000000000704004b0000000005008019000002440440009c000000000506c019000000000405004b000001250000c13d0000000404200039000000000541034f000000000505043b000b00000005001d000002430550009c000001250000213d0000002402200039000a00000002001d0000000b02200029000000000232004b000001250000213d0000000002000411000080010220008c000001a30000c13d0000000b02000029000000040220008c000001250000413d0000002002400039000000000221034f000000000402043b0000025c0240009c0000029b0000413d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028001000041000000e90000013d0000025701000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000028601000041000000c40010043f0000025b01000041000008ec00010430000e00000003001d000d00000002001d0000024b01000041000000800010043f0000023c0100004100000000020004140000023c0320009c0000000002018019000000c00120021000000282011001c70000800b0200003908ea08e00000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000010a0000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b000001020000413d000000000705004b000001190000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000001270000613d0000001f01400039000000600210018f00000080082001bf000000400080043f000000200130008c0000000e05000029000001250000413d000000800100043d0000ffff0310008c000001ab0000a13d0000000001000019000008ec00010430000000400200043d0000001f0430018f0000000505300272000001340000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000012c0000413d000000000604004b000001430000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f00000000001504350000023c010000410000023c0420009c000000000201801900000040012002100000006002300210000000000121019f000008ec00010430000e00000009001d000d00000007001d000c00000008001d0000023c04800197000000000141034f00000000022500490000023c0220019700000000012103df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000001ea0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000001780000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000001700000413d000000000500004b0000017a0000613d0000001f0530018f00000005033002720000000e09000029000001870000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b0000017f0000413d000000000605004b000001960000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000005e80000c13d00000000040404330000000002000414000000000129004b000003ad0000813d0000027e0100004100000000001004350000001101000039000000040010043f0000027f01000041000008ec000104300000025701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000025a01000041000000e90000013d0000014003200039000000400030043f0000000000080435000000a003200039000b00000003001d00000000005304350000024f04000041000000000305004b0000000004006019000000e003200039000e00000003001d0000000d090000290000000000930435000000c003200039000900000003001d000000000013043500000001030003670000002405300370000000000505043b000001200720003900000100022001bf000a00000002001d00000000005204350000004402300370000000000602043b000c00000007001d00000000006704350000000002080433000000f807200210000000400200043d0000002003200039000000000073043500000021072000390000000000470435000000f00110021000000022042000390000000000140435000000600190021000000024042000390000000000140435000000580120003900000000006104350000003801200039000000000051043500000058010000390000000000120435000002500120009c000002050000a13d0000027e0100004100000000001004350000004101000039000001a00000013d00000028011000390000000002100420000000400100043d000000000202004b000002880000c13d00000044021000390000025603000041000000000032043500000024021000390000001403000039000005ee0000013d0000001f0430018f0000000502300272000001f50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001ee0000413d000000000504004b000002030000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c70000801002000039000d00000008001d08ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000040030000390000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000103000039000000000203041a000000010100008a000800000002001d000000000112004b0000019d0000613d00000008010000290000000101100039000000000013041b0000000d010000290000000001010433000000ff0110018f000000400200043d00000000011204360000000b040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000090100002900000000010104330000ffff0110018f000000400420003900000000001404350000000e0100002900000000010104330000024e01100197000000600420003900000000001404350000000a010000290000000001010433000000800420003900000000001404350000000c010000290000000001010433000000a00420003900000000001404350000023c050000410000023c0120009c000000000205801900000000010004140000023c0410009c00000000010580190000004002200210000000c001100210000000000121019f00000251011001c70000800d02000039000002520400004108ea08db0000040f0000000101200190000001250000613d00000078010000390000000003100420000000400100043d0000023c0210009c0000023c0200004100000000020140190000004002200210000000000303004b000005020000c13d0000004403100039000002560400004100000000004304350000002403100039000000140400003900000000004304350000025703000041000000000031043500000004011000390000002003000039000000000031043500000258012001c7000008ec0001043000000000006104350000023c0200004100000000030004140000023c0430009c00000000030280190000023c0410009c00000000010280190000004001100210000000c002300210000000000112019f00000289011001c70000800d0200003900000001030000390000028a0400004108ea08db0000040f0000000101200190000001250000613d0000000001000019000008eb0001042e000000000131034f000600000004001d000000e0064002700000025d02000041000000400020043f0000080002000039000700000002001d000000800020043f000000a00200003900000000030000190000000504300210000000000441034f000000000404043b00000000024204360000000103300039000008000430008c000002a50000413d00000004020000390000000601000029000002470110009c00000000080000190000030a0000813d000000000100041a000000000118004b000003980000c13d000d00000002001d0000000601000029000002610110009c000002c20000213d0000026201000041000000800200043d000000000262004b000003060000a13d0000000502600210000000a0022000390000000000120435000007ff0260008c0000000106600039000002b90000413d000900400000003d000880100000003d0000000701000029000600000001001d000700010010027800000000040000190000000101400210000000800200043d000000000312004b000003060000a13d00000001011001bf000000000212004b000003060000a13d0000000501100210000000a0011000390000000002010433000e00000004001d0000000601400210000000a001100039000c00000001001d0000000003010433000000400100043d000000400410003900000000002404350000002002100039000000000032043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000000080200002908ea08e00000040f0000000102200190000001250000613d000000800200043d0000000e04000029000000000242004b000003060000a13d00000005024002100000000c02200069000000000101043b00000000001204350000000104400039000000070140006c000002c80000413d0000000601000029000000030110008c000002c40000213d000000800100043d000000000101004b000005060000c13d0000027e0100004100000000001004350000003201000039000001a00000013d0000000401000039000900590000009200000000070000190000000008000019000800000006001d0000005803100039000d00000003001d0000000b0230006c000001250000213d0000000a0210002900000000010004140000023c03200197000000090420006c0000019d0000213d00000058022000390000000004000031000000000524004b0000019d0000413d000c00000008001d000e00000007001d00000001033003670000023c0510009c000000a70000213d00000000022400490000023c0220019700000000022303df000000c001100210000002460110019700000247011001c700000000011203af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000004ca0000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000034a0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000003420000413d000000000500004b0000034c0000613d0000000505300272000003570000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b0000034f0000413d0000001f03300190000003660000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c0000000e030000290000000c05000029000005e80000c13d000000800100043d000000000131004b000003060000a13d00000000020404330000000501300210000000a0011000390000000000210435000000400100043d00000040031000390000000000230435000000400200003900000000022104360000000000520435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f000000010220019000000008060000290000000e07000029000001250000613d000000000801043b0000000107700039000000000167004b0000000d0200002900000000010200190000030f0000413d000002b10000013d000000400100043d00000064021000390000025e03000041000000000032043500000044021000390000025f03000041000000000032043500000024021000390000003c030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000260011001c7000008ec00010430000800000002001d0000000201000039000b00000001001d000000000301041a000000400100043d0000004002100039000a00000004001d0000000000420435000000200210003900000000003204350000004003000039000900000003001d0000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c040000410000023c0320009c0000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b0000000b02000029000000000012041b0000024b01000041000000400400043d000b00000004001d000000000014043500000000010004140000023c0210009c0000023c0300004100000000010380190000023c0240009c00000000030440190000004002300210000000c001100210000000000121019f0000024c011001c70000800b0200003908ea08e00000040f0000000b0a000029000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000003f70000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000003ef0000413d00000000090a0019000000000705004b000004070000613d0000000506600210000000000761034f00000000066900190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f00000000005604350000000102200190000004e50000613d0000001f01400039000000600110018f0000000002910019000000000112004b00000000010000190000000101004039000700000002001d000002430220009c000001db0000213d0000000101100190000001db0000c13d0000000701000029000000400010043f000000200130008c000001250000413d00000000010904330000ffff0210008c000001250000213d00000007020000290000024d0220009c000001db0000213d0000000703000029000000c002300039000000400020043f00000000040004100000024e024001970000006005300039000500000005001d000000000025043500000020053000390000000102000039000b00000002001d000300000005001d0000000000250435000000a0023000390000000a07000029000600000002001d000000000072043500000080023000390000000008000411000400000002001d000000000082043500000000000304350000004002300039000200000002001d0000000000120435000000400200043d0000002003200039000000000003043500000021052000390000024f060000410000000000650435000000f0011002100000002205200039000000000015043500000060014002100000002404200039000000000014043500000058012000390000000000710435000000580100003900000000001204350000003801200039000100000008001d0000000000810435000002500120009c000001db0000213d0000008001200039000000400010043f0000023c010000410000023c0430009c0000000003018019000000400330021000000000020204330000023c0420009c00000000020180190000006002200210000000000232019f00000000030004140000023c0430009c0000000003018019000000c001300210000000000121019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000201043b000000400100043d0000004003100039000000000400041a00000000002304350000002002100039000000000042043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c030000410000023c0420009c0000000002038019000000400220021000000000010104330000023c0410009c00000000010380190000006001100210000000000121019f00000000020004140000023c0420009c0000000002038019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f0000000102200190000001250000613d000000000101043b000000000010041b0000000b01000029000000000101041a000000010200008a000000000221004b0000019d0000613d00000001011000390000000b03000029000000000013041b00000007010000290000000001010433000000ff0110018f000000400200043d000000000112043600000003040000290000000004040433000000000404004b0000000004000019000000010400c0390000000000410435000000020100002900000000010104330000ffff0110018f00000040042000390000000000140435000000050100002900000000010104330000024e0110019700000060042000390000000000140435000000040100002900000000010104330000008004200039000000000014043500000006010000290000000001010433000000a00420003900000000001404350000023c010000410000023c0420009c000000000201801900000000050004140000023c0450009c00000000050180190000004001200210000000c002500210000000000112019f00000251011001c70000800d02000039000002520400004108ea08db0000040f00000001012001900000000d01000029000001250000613d0000005c0210003900000000010004130000023c0310019700000000412300a90000025302200197000002530410019700000000422400d9000000000223004b00000008030000290000019d0000c13d0000000e02300069000000a001100039000000000121001a0000019d0000413d000002450210009c000006c80000413d000000400400043d000000600000013d0000001f0430018f0000000502300272000004d50000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000004ce0000413d000000000504004b000004e30000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000000400200043d0000001f0430018f0000000505300272000004f20000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000004ea0000413d000000000604004b000005010000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d0000000803000029000000000031043500000255012001c7000008eb0001042e000000050100008a000800000001001d0000000d0110006b0000019d0000213d0000000d0100002900000004031000390000000b0130006c000001250000213d000000a00100043d000500000001001d0000000d020000290000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000055a0000813d0000000201000039000400000001001d000000000101041a000000000119004b000005fa0000c13d0000000002030019000000080120006c0000019d0000213d00000004032000390000000b0130006c000001250000213d0000000a012000290000000101100367000000000101043b000002470210009c00000000090000190000062d0000813d00000000050300190000000301000039000d00000001001d000000000101041a000000000119004b000006cd0000c13d0000000b0150006c000003060000813d0000000a015000290000000102000367000000000312034f000000000303043b00000274033001970000024f0330009c000007200000c13d0000000004050019000000080340006c0000019d0000213d00000004034000390000000b0430006c000001250000213d0000000101100039000000000112034f000000000101043b0000000b0430006c000003060000813d000000e8011002700000000a03300029000000000432034f0000000503500039000c00000031001e000000000504043b0000019d0000413d0000000c060000290000000b0460006c000001250000213d0000000c04000029000002770440009c0000075a0000413d000000400100043d00000044021000390000027d030000410000000000320435000002570200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000005f30000013d000700e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e003300270000000000723001a0000019d0000413d0000000b0470006c000001250000213d0000000a02200029000000000323001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000e00000009001d000c00000008001d000d00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000006120000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f053000390000000505500272000005a20000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b0000059a0000413d000000000500004b000005a40000613d00000005053002720000000e09000029000005b00000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000005a80000413d0000001f03300190000005bf0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f00000000001504350000000001020433000000200110008c000005e80000c13d0000000002040433000000400100043d000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000d030000290000000c08000029000001250000613d000000000901043b0000000108800039000000070180006c0000055d0000413d000005170000013d000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000000400100043d000000840210003900000264030000410000000000320435000000640210003900000265030000410000000000320435000000440210003900000266030000410000000000320435000000240210003900000044030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000267011001c7000008ec000104300000001f0430018f00000005023002720000061d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000006160000413d000000000504004b0000062b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec00010430000600e00010027800000000080000190000000009000019000000080130006c0000019d0000213d00000004023000390000000b0120006c000001250000213d0000000a033000290000000101000367000000000331034f000000000303043b000000e00a30027000000000072a001a0000019d0000413d0000000b0470006c000001250000213d00000268043001980000072a0000c13d0000026a0430009c0000072e0000813d0000026b03300198000007320000613d0000000a0220002900000000032a001a0000023c0420019700000000020004140000019d0000413d0000000005000031000000000635004b0000019d0000413d000d0000000a001d000e00000009001d000700000008001d000c00000007001d0000023c0620009c000000a70000213d000000000141034f00000000033500490000023c0330019700000000013103df000000c002200210000002460220019700000247022001c700000000012103af000000020200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000007390000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000001db0000213d0000000105500190000001db0000c13d000000400040043f00000000043204360000001f0530003900000005055002720000000d0a0000290000067d0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000006750000413d000000000500004b0000067f0000613d00000005053002720000000e090000290000068b0000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000006830000413d0000001f033001900000069a0000613d0000000505500210000000000151034f00000000055400190000000303300210000000000605043300000000063601cf000000000636022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000161019f0000000000150435000000400100043d0000000002020433000000200220008c000007540000c13d00000000020404330000026d02200197000000db03a002100000026e03300197000000000223019f0000024f022001c7000000400310003900000000002304350000002002100039000000000092043500000009030000290000000000310435000002490310009c000001db0000213d0000006003100039000000400030043f0000023c0320009c0000023c040000410000000002048019000000400220021000000000010104330000023c0310009c00000000010480190000006001100210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c7000080100200003908ea08e00000040f00000001022001900000000c030000290000000708000029000001250000613d000000000901043b0000000108800039000000060180006c000006300000413d000005280000013d0000000002100420000000400100043d000000000202004b000006da0000c13d000001e40000013d000000400100043d00000084021000390000027103000041000000000032043500000064021000390000027203000041000000000032043500000044021000390000027303000041000000000032043500000024021000390000005e03000039000006060000013d000000200200003900000000022104360000000d0500002900000000005204350000001f0350018f00000040021000390000000c0400002900000001044003670000000505500272000006ed0000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000006e50000413d000000000603004b000006fc0000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000000d03000029000000000232001900000000000204350000005f02300039000000200300008a000000000232016f0000023c040000410000023c0310009c000000000104801900000040011002100000023c0320009c00000000020480190000006002200210000000000121019f00000000020004140000023c0320009c0000000002048019000000c002200210000000000112019f0000024a011001c70000800d020000390000000303000039000002540400004100000001050000290000000a0600002908ea08db0000040f0000000101200190000001250000613d000000400100043d0000000a0200002900000000002104350000023c0210009c0000023c01008041000000400110021000000255011001c7000008eb0001042e000000400100043d00000064021000390000027503000041000000000032043500000044021000390000027603000041000000000032043500000024021000390000002703000039000003a10000013d000000400100043d00000044021000390000026903000041000007350000013d000000400100043d00000044021000390000027003000041000007350000013d000000400100043d00000044021000390000026f03000041000000000032043500000024021000390000000403000029000005ee0000013d0000001f0430018f0000000502300272000007440000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000073d0000413d000000000504004b000007520000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec0001043000000044021000390000026c03000041000000000032043500000024021000390000001903000039000005ee0000013d0000000c0400002900000004064000390000000b0460006c000001250000213d0000000c070000290000000a04700029000000000442034f000000000804043b000000e00780027000000110947000c9000002470880009c000007690000413d00000000987400d9000001100880008c0000019d0000c13d0000000009640019000900000009001d0000000b0890006c000001250000213d000000f805500270000000400a00043d0000004408a00039000000800900003900000000009804350000002408a000390000000000580435000002780500004100000000005a04350000000a066000290000008405a0003900000000004504350000000405a000390000000000750435000000000862034f0000001f0740018f000e0000000a001d000000a406a0003900000005094002720000078a0000613d000000000a000019000000050ba00210000000000cb60019000000000bb8034f000000000b0b043b0000000000bc0435000000010aa00039000000000b9a004b000007820000413d0000000a03300029000000000a07004b0000079a0000613d0000000509900210000000000898034f00000000099600190000000307700210000000000a090433000000000a7a01cf000000000a7a022f000000000808043b0000010007700089000000000878022f00000000077801cf0000000007a7019f0000000000790435000000000746001900000000000704350000001f044000390000027904400197000000000646001900000000045600490000000e0500002900000064055000390000000000450435000000000432034f0000001f0310018f00000000021604360000000505100272000007b10000613d000000000600001900000005076002100000000008720019000000000774034f000000000707043b00000000007804350000000106600039000000000756004b000007a90000413d000000000603004b000007c00000613d0000000505500210000000000454034f00000000055200190000000303300210000000000605043300000000063601cf000000000636022f000000000404043b0000010003300089000000000434022f00000000033401cf000000000363019f0000000000350435000000000312001900000000000304350000001f011000390000027a011001970000000e04000029000000000141004900000000012100190000023c020000410000023c0340009c0000000003020019000000000304401900000040033002100000023c0410009c00000000010280190000006001100210000000000131019f00000000030004140000023c0430009c0000000003028019000000c002300210000000000112019f0000800e0200003908ea08db0000040f000000000301001900000060033002700000023c03300197000000200430008c000000000403001900000020040080390000001f0540018f0000000506400272000007e90000613d000000000700001900000005087002100000000e09800029000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000007e10000413d000000000705004b000007f80000613d0000000506600210000000000761034f0000000e066000290000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000081e0000613d0000001f01400039000000600210018f0000000e01200029000000000221004b00000000020000190000000102004039000002430410009c000001db0000213d0000000102200190000001db0000c13d000000400010043f000000200230008c000001250000413d00000009030000290000000b0230006c0000083b0000c13d0000000e010000290000000001010433000e00000001001d0000000501000029000000000010041d0000000a010000290000000c0200002908ea08440000040f0000000102000039000000000012041d00000004010000290000000e03000029000000000031041d000000000000041b000000000002041b000000000001041b0000000d01000029000000000001041b0000000001000019000008eb0001042e000000400200043d0000001f0430018f00000005053002720000082b0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000008230000413d000000000604004b0000083a0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000001430000013d00000064021000390000027b03000041000000000032043500000044021000390000027c03000041000000000032043500000024021000390000002a03000039000003a10000013d00000000030004140000000004120019000000000224004b000000000500001900000001050040390000023c0210019700000001015001900000089d0000c13d0000000001000031000000000541004b0000089d0000413d0000000102200367000002450530009c000008a10000813d00000000014100490000023c0110019700000000011203df000000c002300210000002460220019700000247022001c700000000012103af000080100200003908ea08e50000040f000000000301001900000060033002700000023c033001970000000102200190000008a80000613d0000003f023000390000024804200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000002430640009c000008c30000213d0000000105500190000008c30000c13d000000400040043f00000000043204360000001f0530003900000005055002720000087b0000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000008730000413d000000000500004b0000087d0000613d0000001f0530018f0000000503300272000008890000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000008810000413d000000000605004b000008980000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001304350000000001020433000000200110008c000008c90000c13d0000000001040433000000000001042d0000027e0100004100000000001004350000001101000039000008c60000013d000000400100043d00000044021000390000025903000041000000000032043500000024021000390000000803000039000008cf0000013d0000001f0430018f0000000502300272000008b30000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000008ac0000413d000000000504004b000008c10000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000008ec000104300000027e0100004100000000001004350000004101000039000000040010043f0000027f01000041000008ec00010430000000400100043d00000044021000390000026303000041000000000032043500000024021000390000001f030000390000000000320435000002570200004100000000002104350000000402100039000000200300003900000000003204350000023c020000410000023c0310009c0000000001028019000000400110021000000258011001c7000008ec00010430000008de002104210000000102000039000000000001042d0000000002000019000000000001042d000008e3002104230000000102000039000000000001042d0000000002000019000000000001042d000008e8002104230000000102000039000000000001042d0000000002000019000000000001042d000008ea00000432000008eb0001042e000008ec0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000628b636d00000000000000000000000000000000000000000000000000000000628b636e0000000000000000000000000000000000000000000000000000000062f84b240000000000000000000000000000000000000000000000000000000039b34c6e0000000000000000000000000000000000000000000000000000000056079ac8000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffff000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff3f000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f02000000000000000000000000000000000000c000000000000000000000000027fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d00000000000000000000000000000000ffffffffffffffffffffffffffffffff3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce24100000000000000000000000000000000000000200000000000000000000000004661696c656420746f206368617267652067617300000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000000000000000000000000000000000000000064000000800000000000000000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100a06e6f7420657175616c20746f20636861696e65644c6f677348617368000000007265636f6e7374727563746564436861696e65644c6f677348617368206973200000000000000000000000000000000000000084000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff72abee45b59e344af8a6e520241c4744aff26ed411f4c4b00f8af09adada43ba6b656363616b3235362072657475726e656420696e76616c69642064617461004861736800000000000000000000000000000000000000000000000000000000206973206e6f7420657175616c20746f20636861696e65644d657373616765737265636f6e7374727563746564436861696e65644d657373616765734861736800000000000000000000000000000000000000a40000000000000000000000000000001f00000000000000000000000000000000000000000000000000000000706f000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000007368612072657475726e656420696e76616c696420646174610000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff06ffffff000000000000000000000000000000000000000000000000000000007072000000000000000000000000000000000000000000000000000000000000707000000000000000000000000000000000000000000000000000000000000061696e65644c3142797465636f64657352657665616c44617461486173680000657665616c4461746148617368206973206e6f7420657175616c20746f2063687265636f6e7374727563746564436861696e65644c3142797465636f64657352ff0000000000000000000000000000000000000000000000000000000000000069736d61746368000000000000000000000000000000000000000000000000007374617465206469666620636f6d7072657373696f6e2076657273696f6e206d000000000000000000000000000000000000000000000000000000000007ef416006d8b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffe00000000000000000000000000000000000000000000000000000000001ffffe064617461206172726179000000000000000000000000000000000000000000004578747261206461746120696e2074686520746f74616c4c32546f4c315075624c31204d657373656e676572207075626461746120697320746f6f206c6f6e674e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000546f6f206d616e79204c322d3e4c31206c6f67730000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000400000080000000000000000054686973206d6574686f642072657175697265207468652063616c6c657220746f2062652073797374656d20636f6e74726163740000000000000000000000000000000000000000000000000000000000000084000000800000000000000000496e617070726f7072696174652063616c6c65720000000000000000000000000200000000000000000000000000000000000040000000a0000000000000000000000000000000000000000000000000000000000000000000000000ffffffd80200000000000000000000000000000000000020000000000000000000000000480d3c9f727b5e5c1203d4c61fb185d37f08e6b2dc5e9bbf98591b1a7addf57c0000000000000000000000000000000000000000000000000000000000000000be4e63e922ab8b890ef6dfe84af8257090df74b94198b85dc46a3155de742c1d", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/L2EthToken.json b/src/deps/contracts/L2EthToken.json index 49a982e3..aece274b 100644 --- a/src/deps/contracts/L2EthToken.json +++ b/src/deps/contracts/L2EthToken.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "L2EthToken", - "sourceName": "cache-zk/solpp-generated-contracts/L2EthToken.sol", + "sourceName": "contracts-preprocessed/L2EthToken.sol", "abi": [ { "anonymous": false, @@ -247,8 +247,8 @@ "type": "function" } ], - "bytecode": "0x00030000000000020005000000000002000200000001035500000060011002700000010f0010019d000100000000001f0000008001000039000000400010043f00000001012001900000003c0000c13d0000000002000031000000040120008c000002990000413d0000000201000367000000000301043b000000e003300270000001110430009c000000440000a13d000001120430009c000000650000a13d000001130430009c000000e50000613d000001140130009c000002880000613d000001150130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000200310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000004010000390000000201100367000000000101043b0000011e011001970000000000100435000000200000043f0000000001000019043503fb0000040f000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d0000002001000039000001000010044300000120000004430000011001000041000004360001042e000001180130009c000000a20000213d0000011b0130009c000002080000613d0000011c0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d0000000101000039000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e000001160430009c000002300000613d000001170130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000600310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002402100370000000000202043b0000011e052001970000011e0220009c000002990000213d00000000020004110000004401100370000000000301043b000080060120008c0000033b0000613d000000090100008a000000000112016f000080010110008c0000033b0000613d000000400100043d00000064021000390000012703000041000000000032043500000044021000390000012803000041000000000032043500000024021000390000003e030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012a011001c70000043700010430000001190130009c0000026e0000613d0000011a0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000400310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002401100370000000000501043b0000000001000411000080010110008c000002b50000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000df0000c13d000400000005001d000000000021041b0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005050000290000000102200190000002990000613d000000000101043b000000000201041a0000000403000029000000000232001a000000df0000413d000003880000013d000001310100004100000000001004350000001101000039000000040010043f00000132010000410000043700010430000000040320008a0000011d04000041000000400530008c000000000500001900000000050440190000011d03300197000000000603004b000000000400a0190000011d0330009c00000000030500190000000003046019000000000303004b000002990000c13d0000000403100370000000000803043b0000011e0380009c000002990000213d0000002403100370000000000303043b000001210430009c000002990000213d00000023043000390000011d05000041000000000624004b000000000600001900000000060580190000011d022001970000011d04400197000000000724004b0000000005008019000000000224013f0000011d0220009c00000000020600190000000002056019000000000202004b000002990000c13d0000000402300039000000000121034f000000000101043b000001210210009c000002680000213d000000bf02100039000000200500008a000000000252016f000001210420009c000002680000213d000000400020043f000000800010043f000000240330003900000000023100190000000004000031000000000242004b000002990000213d000400000005001d0000001f0210018f00000002033003670000000504100272000001280000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000001200000413d000500000008001d000000000502004b000001380000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a00110003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000010220019000000005040000290000000407000029000002990000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b0000012302000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b0000016d0000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001660000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b000000000200001900000001020040390000012103a0009c000002680000213d0000000102200190000002680000c13d000100000008001d0000004000a0043f000001240200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001900000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000001890000413d000000000132001900000000000104350000001f01200039000000000171016f0000010f020000410000010f03a0009c000000000302001900000000030a4019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f000080080200003900020000000a001d0435042b0000040f000000020a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001b90000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b10000413d000000000705004b000001c80000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003d50000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005040000290000000305000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d000000000023043500000060031000390000011e06400197000000000402004b000001ed0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001e60000413d000000000332001900000000000304350000007f022000390000000403000029000000000232016f0000010f030000410000010f0410009c000000000103801900000040011002100000010f0420009c00000000020380190000006002200210000000000112019f00000000020004140000010f0420009c0000000002038019000000c002200210000000000112019f00000125011001c70000800d020000390000000303000039000001260400004100000001050000290435042b0000040f0000000101200190000003d30000c13d000002990000013d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000013501000041000000a00010043f0000002001000039000000400200043d000500000002001d000000000212043600000080010000390435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000040220008a0000011d03000041000000200420008c000000000400001900000000040340190000011d02200197000000000502004b000000000300a0190000011d0220009c00000000020400190000000002036019000000000202004b000002990000c13d0000000401100370000000000401043b0000011e0140009c000002990000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005040000290000000102200190000002990000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b0000012302000041000000400100043d0000002003100039000000000023043500000060024002100000002403100039000000000023043500000038021000390000000000520435000000380200003900000000002104350000012f0210009c000002c70000413d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000400100043d000000120200003900000000002104350000010f020000410000010f0310009c000000000102801900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b0000029b0000613d00000000010000190000043700010430000000400100043d000400000001001d043504200000040f00000004030000290000002001300039000001200200004100000000002104350000000301000039000000000013043500000000010300190000002002000039000000400300043d000500000003001d00000000022304360435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000400100043d00000044021000390000013303000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c700000437000104300000006007100039000000400070043f00000124020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002dc0000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000002d50000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f0000010f020000410000010f0370009c00000000030200190000000003074019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f0000800802000039000300000007001d0435042b0000040f000000030a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003060000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002fe0000413d000000000705004b000003150000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003620000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005050000290000000404000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000000004104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000011e065001970000800d020000390000000303000039000001300400004100000000050004110435042b0000040f0000000101200190000003d30000c13d000002990000013d000400000003001d0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d000300000005001d043504300000040f00000005030000290000000102200190000002990000613d000000000101043b000000000201041a0000000401000029000000000112004b0000039c0000813d000000400100043d00000044021000390000012d03000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c70000043700010430000000400200043d0000001f0430018f00000005033002720000036f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003670000413d000000000504004b0000037e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f0000043700010430000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d02000039000000020300003900000134040000410435042b0000040f0000000101200190000002990000613d000003d30000013d000200000002001d0000000000300435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f00000003030000290000000102200190000002990000613d000000040200002900000002040000290000000002240049000000000101043b000000000021041b00000000003004350000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000030600002900000005050000290000000102200190000002990000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d0200003900000003030000390000012c040000410435042b0000040f0000000101200190000002990000613d0000000001000019000004360001042e000000400200043d0000001f0430018f0000000503300272000003e20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003da0000413d000000000504004b000003f10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f00000437000104300000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f00000122011001c70000801002000039043504300000040f00000001022001900000040b0000613d000000000101043b000000000001042d0000000001000019000004370001043000000000030104330000000002320436000000000403004b000004190000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000004120000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000001360210009c000004250000813d0000004001100039000000400010043f000000000001042d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000042e002104210000000102000039000000000001042d0000000002000019000000000001042d00000433002104230000000102000039000000000001042d0000000002000019000000000001042d0000043500000432000004360001042e0000043700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b616c206163636573732063616e2063616c6c2074686973206d6574686f6400004f6e6c792073797374656d20636f6e747261637473207769746820737065636908c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968854574686572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000000000000000000000000000007b3ba959bf7eac2739d6ef137ed2b810585c27a9dbd1782f8efe2a761831b7e4", - "deployedBytecode": "0x00030000000000020005000000000002000200000001035500000060011002700000010f0010019d000100000000001f0000008001000039000000400010043f00000001012001900000003c0000c13d0000000002000031000000040120008c000002990000413d0000000201000367000000000301043b000000e003300270000001110430009c000000440000a13d000001120430009c000000650000a13d000001130430009c000000e50000613d000001140130009c000002880000613d000001150130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000200310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000004010000390000000201100367000000000101043b0000011e011001970000000000100435000000200000043f0000000001000019043503fb0000040f000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d0000002001000039000001000010044300000120000004430000011001000041000004360001042e000001180130009c000000a20000213d0000011b0130009c000002080000613d0000011c0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d0000000101000039000000000101041a000000400200043d00000000001204350000010f010000410000010f0320009c000000000102401900000040011002100000011f011001c7000004360001042e000001160430009c000002300000613d000001170130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000600310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002402100370000000000202043b0000011e052001970000011e0220009c000002990000213d00000000020004110000004401100370000000000301043b000080060120008c0000033b0000613d000000090100008a000000000112016f000080010110008c0000033b0000613d000000400100043d00000064021000390000012703000041000000000032043500000044021000390000012803000041000000000032043500000024021000390000003e030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012a011001c70000043700010430000001190130009c0000026e0000613d0000011a0130009c000002990000c13d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000400310008c000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d00000002010003670000000402100370000000000402043b0000011e0240009c000002990000213d0000002401100370000000000501043b0000000001000411000080010110008c000002b50000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000df0000c13d000400000005001d000000000021041b0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005050000290000000102200190000002990000613d000000000101043b000000000201041a0000000403000029000000000232001a000000df0000413d000003880000013d000001310100004100000000001004350000001101000039000000040010043f00000132010000410000043700010430000000040320008a0000011d04000041000000400530008c000000000500001900000000050440190000011d03300197000000000603004b000000000400a0190000011d0330009c00000000030500190000000003046019000000000303004b000002990000c13d0000000403100370000000000803043b0000011e0380009c000002990000213d0000002403100370000000000303043b000001210430009c000002990000213d00000023043000390000011d05000041000000000624004b000000000600001900000000060580190000011d022001970000011d04400197000000000724004b0000000005008019000000000224013f0000011d0220009c00000000020600190000000002056019000000000202004b000002990000c13d0000000402300039000000000121034f000000000101043b000001210210009c000002680000213d000000bf02100039000000200500008a000000000252016f000001210420009c000002680000213d000000400020043f000000800010043f000000240330003900000000023100190000000004000031000000000242004b000002990000213d000400000005001d0000001f0210018f00000002033003670000000504100272000001280000613d00000000050000190000000506500210000000000763034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000001200000413d000500000008001d000000000502004b000001380000613d0000000504400210000000000343034f0000000302200210000000a004400039000000000504043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000240435000000a00110003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000010220019000000005040000290000000407000029000002990000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b0000012302000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b0000016d0000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001660000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b000000000200001900000001020040390000012103a0009c000002680000213d0000000102200190000002680000c13d000100000008001d0000004000a0043f000001240200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001900000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000001890000413d000000000132001900000000000104350000001f01200039000000000171016f0000010f020000410000010f03a0009c000000000302001900000000030a4019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f000080080200003900020000000a001d0435042b0000040f000000020a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000001b90000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001b10000413d000000000705004b000001c80000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003d50000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005040000290000000305000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d000000000023043500000060031000390000011e06400197000000000402004b000001ed0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001e60000413d000000000332001900000000000304350000007f022000390000000403000029000000000232016f0000010f030000410000010f0410009c000000000103801900000040011002100000010f0420009c00000000020380190000006002200210000000000112019f00000000020004140000010f0420009c0000000002038019000000c002200210000000000112019f00000125011001c70000800d020000390000000303000039000001260400004100000001050000290435042b0000040f0000000101200190000003d30000c13d000002990000013d0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000c001000039000000400010043f0000000501000039000000800010043f0000013501000041000000a00010043f0000002001000039000000400200043d000500000002001d000000000212043600000080010000390435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000040220008a0000011d03000041000000200420008c000000000400001900000000040340190000011d02200197000000000502004b000000000300a0190000011d0220009c00000000020400190000000002036019000000000202004b000002990000c13d0000000401100370000000000401043b0000011e0140009c000002990000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d043504300000040f00000005040000290000000102200190000002990000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b0000012302000041000000400100043d0000002003100039000000000023043500000060024002100000002403100039000000000023043500000038021000390000000000520435000000380200003900000000002104350000012f0210009c000002c70000413d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b000002990000c13d000000400100043d000000120200003900000000002104350000010f020000410000010f0310009c000000000102801900000040011002100000011f011001c7000004360001042e0000000001000416000000000101004b000002990000c13d000000040100008a00000000011000310000011d02000041000000000301004b000000000300001900000000030240190000011d01100197000000000401004b000000000200a0190000011d0110009c00000000010300190000000001026019000000000101004b0000029b0000613d00000000010000190000043700010430000000400100043d000400000001001d043504200000040f00000004030000290000002001300039000001200200004100000000002104350000000301000039000000000013043500000000010300190000002002000039000000400300043d000500000003001d00000000022304360435040d0000040f000000050400002900000000014100490000010f020000410000010f0310009c00000000010280190000010f0340009c000000000204401900000040022002100000006001100210000000000121019f000004360001042e000000400100043d00000044021000390000013303000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c700000437000104300000006007100039000000400070043f00000124020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002dc0000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b000002d50000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f0000010f020000410000010f0370009c00000000030200190000000003074019000000400330021000000044011000390000010f0410009c00000000010280190000006001100210000000000131019f00000000030004140000010f0430009c0000000002034019000000c002200210000000000112019f0000800802000039000300000007001d0435042b0000040f000000030a000029000000000301001900000060033002700000010f03300197000000200430008c000000200400003900000000040340190000001f0540018f0000000506400272000003060000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002fe0000413d000000000705004b000003150000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000003620000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000001210410009c00000005050000290000000404000029000002680000213d0000000102200190000002680000c13d000000400010043f000000200230008c000002990000413d00000000004104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000011e065001970000800d020000390000000303000039000001300400004100000000050004110435042b0000040f0000000101200190000003d30000c13d000002990000013d000400000003001d0000000000400435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039000500000004001d000300000005001d043504300000040f00000005030000290000000102200190000002990000613d000000000101043b000000000201041a0000000401000029000000000112004b0000039c0000813d000000400100043d00000044021000390000012d03000041000000000032043500000024021000390000001f030000390000000000320435000001290200004100000000002104350000000402100039000000200300003900000000003204350000010f020000410000010f0310009c000000000102801900000040011002100000012e011001c70000043700010430000000400200043d0000001f0430018f00000005033002720000036f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003670000413d000000000504004b0000037e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f0000043700010430000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d02000039000000020300003900000134040000410435042b0000040f0000000101200190000002990000613d000003d30000013d000200000002001d0000000000300435000000200000043f0000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f00000003030000290000000102200190000002990000613d000000040200002900000002040000290000000002240049000000000101043b000000000021041b00000000003004350000010f0100004100000000020004140000010f0320009c0000000001024019000000c00110021000000122011001c70000801002000039043504300000040f000000030600002900000005050000290000000102200190000002990000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d00000000003104350000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f0000012b011001c70000800d0200003900000003030000390000012c040000410435042b0000040f0000000101200190000002990000613d0000000001000019000004360001042e000000400200043d0000001f0430018f0000000503300272000003e20000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000003da0000413d000000000504004b000003f10000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000010f0100004100000001030000310000010f0430009c00000000030180190000010f0420009c000000000102401900000040011002100000006002300210000000000112019f00000437000104300000010f0200004100000000030004140000010f0430009c00000000030280190000010f0410009c00000000010280190000004001100210000000c002300210000000000112019f00000122011001c70000801002000039043504300000040f00000001022001900000040b0000613d000000000101043b000000000001042d0000000001000019000004370001043000000000030104330000000002320436000000000403004b000004190000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b000004120000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000001360210009c000004250000813d0000004001100039000000400010043f000000000001042d000001310100004100000000001004350000004101000039000000040010043f000001320100004100000437000104300000042e002104210000000102000039000000000001042d0000000002000019000000000001042d00000433002104230000000102000039000000000001042d0000000002000019000000000001042d0000043500000432000004360001042e0000043700010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000200000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b616c206163636573732063616e2063616c6c2074686973206d6574686f6400004f6e6c792073797374656d20636f6e747261637473207769746820737065636908c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000000000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f61646572000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968854574686572000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc000000000000000000000000000000000000000000000000000000000000000007b3ba959bf7eac2739d6ef137ed2b810585c27a9dbd1782f8efe2a761831b7e4", + "bytecode": "0x00050000000000020000008003000039000000400030043f00000000030100190000006003300270000000d7033001970000000102200190000000240000c13d000000040230008c0000030a0000413d000000000201043b000000e002200270000000d90420009c0000002c0000a13d000000da0420009c000000380000a13d000000db0420009c000000950000613d000000dc0420009c000001ea0000613d000000dd0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000101043b000000e5011001970000000000100435000000200000043f00000000010000190358033c0000040f000000360000013d0000000001000416000000000101004b0000030a0000c13d000000200100003900000100001004430000012000000443000000d801000041000003590001042e000000e00420009c000000600000213d000000e30120009c000001a60000613d000000e40120009c0000030a0000c13d0000000001000416000000000101004b0000030a0000c13d0000000101000039000000000101041a000001e70000013d000000de0420009c000001af0000613d000000df0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000600220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002402100370000000000202043b000000e505200197000000e50220009c0000030a0000213d00000000020004110000004401100370000000000301043b000080060120008c000002090000613d000000090100008a000000000112016f000080010110008c000002090000613d000000f001000041000000800010043f0000002001000039000000840010043f0000003e01000039000000a40010043f000000f101000041000000c40010043f000000f201000041000000e40010043f000000f3010000410000035a00010430000000e10420009c000001e30000613d000000e20220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002401100370000000000501043b0000000001000411000080010110008c000001ff0000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000910000c13d000400000005001d000000000021041b0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a0000000403000029000000000232001a000000910000413d000002c20000013d000000fa0100004100000000001004350000001101000039000001e00000013d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000802043b000000e50280009c0000030a0000213d0000002402100370000000000402043b000000e90240009c0000030a0000213d0000002302400039000000ea05000041000000000632004b00000000060000190000000006058019000000ea02200197000000000702004b0000000005008019000000ea0220009c000000000506c019000000000205004b0000030a0000c13d0000000405400039000000000251034f000000000202043b000000e90620009c000001dd0000213d000000bf06200039000000200900008a000000000696016f000000e90760009c000001dd0000213d000000400060043f000000800020043f00000000042400190000002404400039000000000334004b0000030a0000213d0000002003500039000000000131034f0000001f0320018f0000000504200272000000ca0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000c20000413d000400000009001d000500000008001d000000000503004b000000db0000613d0000000504400210000000000141034f0000000303300210000000a004400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000a00120003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039035803530000040f0000000102200190000000050400002900000004070000290000030a0000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b000001100000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001090000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b00000000020000190000000102004039000000e903a0009c000001dd0000213d0000000102200190000001dd0000c13d000100000008001d0000004000a0043f000000ed0200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001330000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000012c0000413d000000000132001900000000000104350000001f01200039000000000171016f000000d702000041000000d703a0009c000000000302001900000000030a401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f000080080200003900020000000a001d0358034e0000040f000000020a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000015c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001540000413d000000000705004b0000016b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000030c0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005040000290000000305000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d00000000002304350000006003100039000000e506400197000000000402004b0000018f0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001880000413d000000000332001900000000000304350000007f02200039000000040220017f000000d703000041000000d70410009c00000000010380190000004001100210000000d70420009c00000000020380190000006002200210000000000112019f0000000002000414000000d70420009c0000000002038019000000c002200210000000000112019f000000ee011001c70000800d020000390000000303000039000000ef040000410000000105000029000003050000013d0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000501000039000000800010043f000000ff01000041000001f20000013d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000401043b000000e50140009c0000030a0000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050400002900000001022001900000030a0000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000003802100039000000000052043500000038020000390000000000210435000000f80210009c0000022f0000413d000000fa0100004100000000001004350000004101000039000000040010043f000000fb010000410000035a000104300000000001000416000000000101004b0000030a0000c13d0000001201000039000000800010043f000000e601000041000003590001042e0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e701000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039035803290000040f000000c00110008a000000d702000041000000d70310009c00000000010280190000006001100210000000e8011001c7000003590001042e000000f001000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f000000fc01000041000000c40010043f000000fd010000410000035a00010430000400000003001d0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d000300000005001d035803530000040f000000050300002900000001022001900000030a0000613d000000000101043b000000000201041a000000040120006c000002d30000813d000000400100043d0000004402100039000000f603000041000000000032043500000024021000390000001f030000390000000000320435000000f0020000410000000000210435000000040210003900000020030000390000000000320435000000d702000041000000d70310009c00000000010280190000004001100210000000f7011001c70000035a000104300000006007100039000000400070043f000000ed020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002440000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000023d0000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f000000d702000041000000d70370009c0000000003020019000000000307401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f0000800802000039000300000007001d0358034e0000040f000000030a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000026e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002660000413d000000000705004b0000027d0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000029f0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005050000290000000404000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d0000000000410435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c7000000e5065001970000800d0200003900000003030000390000000005000411000000f904000041000003050000013d000000400200043d0000001f0430018f0000000505300272000002ac0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002a40000413d000000000604004b000002bb0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d701000041000000d70420009c000000000201801900000040012002100000006002300210000000000121019f0000035a00010430000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000203000039000000fe04000041000003050000013d000200000002001d0000000000300435000000200000043f000000d7030000410000000001000414000000d70210009c0000000001038019000000c001100210000000eb011001c70000801002000039035803530000040f000000030300002900000001022001900000030a0000613d0000000204000029000000040240006a000000000101043b000000000021041b00000000003004350000000001000414000000d70210009c000000d701008041000000c001100210000000eb011001c70000801002000039035803530000040f0000000306000029000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000303000039000000f5040000410358034e0000040f00000001012001900000030a0000613d0000000001000019000003590001042e00000000010000190000035a00010430000000400200043d0000001f0430018f0000000505300272000003190000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003110000413d000000000604004b000003280000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000002bb0000013d00000000030104330000000002320436000000000403004b000003350000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000032e0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000d702000041000000d70310009c00000000010280190000000003000414000000d70430009c0000000003028019000000c0023002100000004001100210000000000121019f000000eb011001c70000801002000039035803530000040f00000001022001900000034c0000613d000000000101043b000000000001042d00000000010000190000035a0001043000000351002104210000000102000039000000000001042d0000000002000019000000000001042d00000356002104230000000102000039000000000001042d0000000002000019000000000001042d0000035800000432000003590001042e0000035a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b08c379a0000000000000000000000000000000000000000000000000000000004f6e6c792073797374656d20636f6e7472616374732077697468207370656369616c206163636573732063616e2063616c6c2074686973206d6574686f64000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688545746865720000000000000000000000000000000000000000000000000000007b182cdf1aa84e348ae5644feda1c98a5a163d38bb021538445530813acd46bb", + "deployedBytecode": "0x00050000000000020000008003000039000000400030043f00000000030100190000006003300270000000d7033001970000000102200190000000240000c13d000000040230008c0000030a0000413d000000000201043b000000e002200270000000d90420009c0000002c0000a13d000000da0420009c000000380000a13d000000db0420009c000000950000613d000000dc0420009c000001ea0000613d000000dd0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000101043b000000e5011001970000000000100435000000200000043f00000000010000190358033c0000040f000000360000013d0000000001000416000000000101004b0000030a0000c13d000000200100003900000100001004430000012000000443000000d801000041000003590001042e000000e00420009c000000600000213d000000e30120009c000001a60000613d000000e40120009c0000030a0000c13d0000000001000416000000000101004b0000030a0000c13d0000000101000039000000000101041a000001e70000013d000000de0420009c000001af0000613d000000df0220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000600220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002402100370000000000202043b000000e505200197000000e50220009c0000030a0000213d00000000020004110000004401100370000000000301043b000080060120008c000002090000613d000000090100008a000000000112016f000080010110008c000002090000613d000000f001000041000000800010043f0000002001000039000000840010043f0000003e01000039000000a40010043f000000f101000041000000c40010043f000000f201000041000000e40010043f000000f3010000410000035a00010430000000e10420009c000001e30000613d000000e20220009c0000030a0000c13d0000000002000416000000000202004b0000030a0000c13d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000402043b000000e50240009c0000030a0000213d0000002401100370000000000501043b0000000001000411000080010110008c000001ff0000c13d0000000101000039000000000301041a0000000002530019000000000332004b000000000300001900000001030040390000000103300190000000910000c13d000400000005001d000000000021041b0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a0000000403000029000000000232001a000000910000413d000002c20000013d000000fa0100004100000000001004350000001101000039000001e00000013d000000040230008a000000400220008c0000030a0000413d0000000402100370000000000802043b000000e50280009c0000030a0000213d0000002402100370000000000402043b000000e90240009c0000030a0000213d0000002302400039000000ea05000041000000000632004b00000000060000190000000006058019000000ea02200197000000000702004b0000000005008019000000ea0220009c000000000506c019000000000205004b0000030a0000c13d0000000405400039000000000251034f000000000202043b000000e90620009c000001dd0000213d000000bf06200039000000200900008a000000000696016f000000e90760009c000001dd0000213d000000400060043f000000800020043f00000000042400190000002404400039000000000334004b0000030a0000213d0000002003500039000000000131034f0000001f0320018f0000000504200272000000ca0000613d00000000050000190000000506500210000000000761034f000000000707043b000000a00660003900000000007604350000000105500039000000000645004b000000c20000413d000400000009001d000500000008001d000000000503004b000000db0000613d0000000504400210000000000141034f0000000303300210000000a004400039000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000140435000000a00120003900000000000104350000000001000416000300000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039035803530000040f0000000102200190000000050400002900000004070000290000030a0000613d000000000101043b000000000201041a00000003090000290000000002920049000000000021041b0000000101000039000000000201041a0000000002920049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000000008000411000000600280021000000058031000390000000000230435000000380210003900000000009204350000006c03100039000000800200043d000000000402004b000001100000613d00000000040000190000000005340019000000a006400039000000000606043300000000006504350000002004400039000000000524004b000001090000413d000000000332001900000000000304350000004c0320003900000000003104350000008b02200039000000000272016f000000000a12001900000000022a004b00000000020000190000000102004039000000e903a0009c000001dd0000213d0000000102200190000001dd0000c13d000100000008001d0000004000a0043f000000ed0200004100000000002a04350000000402a000390000002003000039000000000032043500000000020104330000002403a0003900000000002304350000004403a00039000000000402004b000001330000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000012c0000413d000000000132001900000000000104350000001f01200039000000000171016f000000d702000041000000d703a0009c000000000302001900000000030a401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f000080080200003900020000000a001d0358034e0000040f000000020a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000015c0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001540000413d000000000705004b0000016b0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000030c0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005040000290000000305000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d00000020021000390000004003000039000000000032043500000000005104350000004003100039000000800200043d00000000002304350000006003100039000000e506400197000000000402004b0000018f0000613d00000000040000190000000005340019000000a007400039000000000707043300000000007504350000002004400039000000000524004b000001880000413d000000000332001900000000000304350000007f02200039000000040220017f000000d703000041000000d70410009c00000000010380190000004001100210000000d70420009c00000000020380190000006002200210000000000112019f0000000002000414000000d70420009c0000000002038019000000c002200210000000000112019f000000ee011001c70000800d020000390000000303000039000000ef040000410000000105000029000003050000013d0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000501000039000000800010043f000000ff01000041000001f20000013d000000040230008a000000200220008c0000030a0000413d0000000401100370000000000401043b000000e50140009c0000030a0000213d0000000001000416000400000001001d00000000010004100000000000100435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d035803530000040f000000050400002900000001022001900000030a0000613d000000000101043b000000000201041a00000004050000290000000002520049000000000021041b0000000101000039000000000201041a0000000002520049000000000021041b000000ec02000041000000400100043d000000200310003900000000002304350000006002400210000000240310003900000000002304350000003802100039000000000052043500000038020000390000000000210435000000f80210009c0000022f0000413d000000fa0100004100000000001004350000004101000039000000040010043f000000fb010000410000035a000104300000000001000416000000000101004b0000030a0000c13d0000001201000039000000800010043f000000e601000041000003590001042e0000000001000416000000000101004b0000030a0000c13d000000c001000039000000400010043f0000000301000039000000800010043f000000e701000041000000a00010043f0000002001000039000000c00010043f0000008001000039000000e002000039035803290000040f000000c00110008a000000d702000041000000d70310009c00000000010280190000006001100210000000e8011001c7000003590001042e000000f001000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f000000fc01000041000000c40010043f000000fd010000410000035a00010430000400000003001d0000000000400435000000200000043f000000d7010000410000000002000414000000d70320009c0000000002018019000000c001200210000000eb011001c70000801002000039000500000004001d000300000005001d035803530000040f000000050300002900000001022001900000030a0000613d000000000101043b000000000201041a000000040120006c000002d30000813d000000400100043d0000004402100039000000f603000041000000000032043500000024021000390000001f030000390000000000320435000000f0020000410000000000210435000000040210003900000020030000390000000000320435000000d702000041000000d70310009c00000000010280190000004001100210000000f7011001c70000035a000104300000006007100039000000400070043f000000ed020000410000000000270435000000640210003900000020030000390000000000320435000000840310003900000000020104330000000000230435000000a403100039000000000402004b000002440000613d000000000400001900000000053400190000002004400039000000000614001900000000060604330000000000650435000000000524004b0000023d0000413d000000000132001900000000000104350000001f01200039000000200200008a000000000121016f000000d702000041000000d70370009c0000000003020019000000000307401900000040033002100000004401100039000000d70410009c00000000010280190000006001100210000000000131019f0000000003000414000000d70430009c0000000003028019000000c002300210000000000112019f0000800802000039000300000007001d0358034e0000040f000000030a00002900000000030100190000006003300270000000d703300197000000200430008c000000000403001900000020040080390000001f0540018f00000005064002720000026e0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000002660000413d000000000705004b0000027d0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000029f0000613d0000001f01400039000000600210018f0000000001a20019000000000221004b00000000020000190000000102004039000000e90410009c00000005050000290000000404000029000001dd0000213d0000000102200190000001dd0000c13d000000400010043f000000200230008c0000030a0000413d0000000000410435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c7000000e5065001970000800d0200003900000003030000390000000005000411000000f904000041000003050000013d000000400200043d0000001f0430018f0000000505300272000002ac0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000002a40000413d000000000604004b000002bb0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000d701000041000000d70420009c000000000201801900000040012002100000006002300210000000000121019f0000035a00010430000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000203000039000000fe04000041000003050000013d000200000002001d0000000000300435000000200000043f000000d7030000410000000001000414000000d70210009c0000000001038019000000c001100210000000eb011001c70000801002000039035803530000040f000000030300002900000001022001900000030a0000613d0000000204000029000000040240006a000000000101043b000000000021041b00000000003004350000000001000414000000d70210009c000000d701008041000000c001100210000000eb011001c70000801002000039035803530000040f0000000306000029000000050500002900000001022001900000030a0000613d000000000101043b000000000201041a00000004030000290000000002320019000000000021041b000000400100043d0000000000310435000000d7020000410000000003000414000000d70430009c0000000003028019000000d70410009c00000000010280190000004001100210000000c002300210000000000112019f000000f4011001c70000800d020000390000000303000039000000f5040000410358034e0000040f00000001012001900000030a0000613d0000000001000019000003590001042e00000000010000190000035a00010430000000400200043d0000001f0430018f0000000505300272000003190000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000003110000413d000000000604004b000003280000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000002bb0000013d00000000030104330000000002320436000000000403004b000003350000613d000000000400001900000000052400190000002004400039000000000614001900000000060604330000000000650435000000000534004b0000032e0000413d000000000123001900000000000104350000001f01300039000000200300008a000000000131016f0000000001120019000000000001042d000000d702000041000000d70310009c00000000010280190000000003000414000000d70430009c0000000003028019000000c0023002100000004001100210000000000121019f000000eb011001c70000801002000039035803530000040f00000001022001900000034c0000613d000000000101043b000000000001042d00000000010000190000035a0001043000000351002104210000000102000039000000000001042d0000000002000019000000000001042d00000356002104230000000102000039000000000001042d0000000002000019000000000001042d0000035800000432000003590001042e0000035a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000051cff8d80000000000000000000000000000000000000000000000000000000084bc3eaf0000000000000000000000000000000000000000000000000000000084bc3eb00000000000000000000000000000000000000000000000000000000095d89b41000000000000000000000000000000000000000000000000000000009cc7f7080000000000000000000000000000000000000000000000000000000051cff8d900000000000000000000000000000000000000000000000000000000579952fc00000000000000000000000000000000000000000000000000000000313ce56600000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000040c10f190000000000000000000000000000000000000000000000000000000006fdde030000000000000000000000000000000000000000000000000000000018160ddd000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000080000000000000000045544800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000400000000000000000000000006c0960f90000000000000000000000000000000000000000000000000000000062f84b24000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000c405fe8958410bbaf0c73b7a0c3e20859e86ca168a4c9b0def9c54d2555a306b08c379a0000000000000000000000000000000000000000000000000000000004f6e6c792073797374656d20636f6e7472616374732077697468207370656369616c206163636573732063616e2063616c6c2074686973206d6574686f64000000000000000000000000000000000000000000840000008000000000000000000200000000000000000000000000000000000020000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5472616e7366657220616d6f756e7420657863656564732062616c616e6365000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffa02717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b63984e487b7100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720000000000000000000000000000000000000000640000008000000000000000000f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688545746865720000000000000000000000000000000000000000000000000000007b182cdf1aa84e348ae5644feda1c98a5a163d38bb021538445530813acd46bb", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/MsgValueSimulator.json b/src/deps/contracts/MsgValueSimulator.json index b669931c..8989db79 100644 --- a/src/deps/contracts/MsgValueSimulator.json +++ b/src/deps/contracts/MsgValueSimulator.json @@ -1,15 +1,15 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "MsgValueSimulator", - "sourceName": "cache-zk/solpp-generated-contracts/MsgValueSimulator.sol", + "sourceName": "contracts-preprocessed/MsgValueSimulator.sol", "abi": [ { "stateMutability": "nonpayable", "type": "fallback" } ], - "bytecode": "0x000800000000000200000000060100190000006006600270000000590760019700070000007103550006000000010355000300000003001f000400000004001f000500000005001f000000590060019d000200000002001f000100000000001f0000008001000039000000400010043f000000000100041600000001022001900000002e0000c13d000000000101004b000000350000c13d00000002010000390000000201100188000000370000c13d00000000010004110000005b0110009c000000370000413d000000400100043d00000064021000390000005c03000041000000000032043500000044021000390000005d0300004100000000003204350000002402100039000000240300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000005f011001c70000016000010430000000000101004b000000350000c13d0000002001000039000001000010044300000120000004430000005a010000410000015f0001042e000000000100001900000160000104300000000001000031015e00440000040f00000020021000390000005903000041000000590420009c00000000020380190000000001010433000000590410009c000000000103801900000060011002100000004002200210000000000112019f0000015f0001042e0005000000000002000000000901001900000005040000310000000305000031000000600100004100000004021001870000000001000410000000000112004b000001200000613d000000000105004b0000000006000411000000ae0000613d000200000004001d000000400100043d0000006403100039000100000005001d00000000005304350000004403100039000400000002001d0000000000230435000000200210003900000061030000410000000000320435000300000006001d00000060036001970000002404100039000000000034043500000064030000390000000000310435000000620310009c000001060000813d000000a003100039000000400030043f0000005903000041000000590420009c000000000203801900000040022002100000000001010433000000590410009c00000000010380190000006001100210000000000121019f0000000002000414000000590420009c0000000002038019000000c002200210000000000121019f0000800a02000039000500000009001d015e01530000040f000000050900002900070000000103550000006001100270000100590010019d0000005901100198000000a60000613d0000003f031000390000006304300197000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000640640009c000001060000213d0000000105500190000001060000c13d000000400040043f0000000001130436000000070300036700000001050000310000001f0450018f0000000505500272000000970000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b0000008f0000413d000000000604004b000000a60000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000001012001900000011e0000613d0000000105000029000000650150009c0000000402000029000000030600002900000002040000290000010c0000813d000000000005041700000000050004140000000001000031000000000391004b000001320000413d000000590350009c0000010c0000213d0000000103400190000000660300004100000067040000410000000003046019000000c0045002100000006804400197000000000334019f0000000001910049000000590110019700000006011003f700000000013103af000000600d600197015e01580000040f00000000030100190000006003300270000100590030019d000000590330019700070000000103550000000102200190000001380000613d0000003f013000390000006302100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000640520009c000001060000213d0000000104400190000001060000c13d000000400020043f00000000023104360000001f043000390000000504400272000000e40000613d00000000050000310000000605500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000dc0000413d000000000400004b000000e60000613d0000000104000031000000000443004b0000011e0000213d00000007050003670000001f0430018f0000000503300272000000f60000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000ee0000413d000000000604004b000001050000613d0000000503300210000000000535034f00000000023200190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d000000690100004100000000001004350000004101000039000000040010043f0000006a010000410000016000010430000000400100043d00000044021000390000006b0300004100000000003204350000002402100039000000080300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c7000001600001043000000000010000190000016000010430000000400100043d00000044021000390000006d03000041000000000032043500000024021000390000001e0300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c70000016000010430000000690100004100000000001004350000001101000039000000040010043f0000006a0100004100000160000104300000001f0430018f0000000502300272000001430000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000013c0000413d000000000504004b000001510000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000001600001043000000156002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d00190000015c002104290000000102000039000000000001042d0000000002000019000000000001042d0000015e000004320000015f0001042e000001600001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff6000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000d44067f635588b53489f404b01f1d63a7a4aad6d0e7bbd1ac391aa57401c3dc1", - "deployedBytecode": "0x000800000000000200000000060100190000006006600270000000590760019700070000007103550006000000010355000300000003001f000400000004001f000500000005001f000000590060019d000200000002001f000100000000001f0000008001000039000000400010043f000000000100041600000001022001900000002e0000c13d000000000101004b000000350000c13d00000002010000390000000201100188000000370000c13d00000000010004110000005b0110009c000000370000413d000000400100043d00000064021000390000005c03000041000000000032043500000044021000390000005d0300004100000000003204350000002402100039000000240300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000005f011001c70000016000010430000000000101004b000000350000c13d0000002001000039000001000010044300000120000004430000005a010000410000015f0001042e000000000100001900000160000104300000000001000031015e00440000040f00000020021000390000005903000041000000590420009c00000000020380190000000001010433000000590410009c000000000103801900000060011002100000004002200210000000000112019f0000015f0001042e0005000000000002000000000901001900000005040000310000000305000031000000600100004100000004021001870000000001000410000000000112004b000001200000613d000000000105004b0000000006000411000000ae0000613d000200000004001d000000400100043d0000006403100039000100000005001d00000000005304350000004403100039000400000002001d0000000000230435000000200210003900000061030000410000000000320435000300000006001d00000060036001970000002404100039000000000034043500000064030000390000000000310435000000620310009c000001060000813d000000a003100039000000400030043f0000005903000041000000590420009c000000000203801900000040022002100000000001010433000000590410009c00000000010380190000006001100210000000000121019f0000000002000414000000590420009c0000000002038019000000c002200210000000000121019f0000800a02000039000500000009001d015e01530000040f000000050900002900070000000103550000006001100270000100590010019d0000005901100198000000a60000613d0000003f031000390000006304300197000000400300043d0000000004430019000000000534004b00000000050000190000000105004039000000640640009c000001060000213d0000000105500190000001060000c13d000000400040043f0000000001130436000000070300036700000001050000310000001f0450018f0000000505500272000000970000613d000000000600001900000005076002100000000008710019000000000773034f000000000707043b00000000007804350000000106600039000000000756004b0000008f0000413d000000000604004b000000a60000613d0000000505500210000000000353034f00000000015100190000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000001012001900000011e0000613d0000000105000029000000650150009c0000000402000029000000030600002900000002040000290000010c0000813d000000000005041700000000050004140000000001000031000000000391004b000001320000413d000000590350009c0000010c0000213d0000000103400190000000660300004100000067040000410000000003046019000000c0045002100000006804400197000000000334019f0000000001910049000000590110019700000006011003f700000000013103af000000600d600197015e01580000040f00000000030100190000006003300270000100590030019d000000590330019700070000000103550000000102200190000001380000613d0000003f013000390000006302100197000000400100043d0000000002210019000000000412004b00000000040000190000000104004039000000640520009c000001060000213d0000000104400190000001060000c13d000000400020043f00000000023104360000001f043000390000000504400272000000e40000613d00000000050000310000000605500367000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000746004b000000dc0000413d000000000400004b000000e60000613d0000000104000031000000000443004b0000011e0000213d00000007050003670000001f0430018f0000000503300272000000f60000613d000000000600001900000005076002100000000008720019000000000775034f000000000707043b00000000007804350000000106600039000000000736004b000000ee0000413d000000000604004b000001050000613d0000000503300210000000000535034f00000000023200190000000303400210000000000402043300000000043401cf000000000434022f000000000505043b0000010003300089000000000535022f00000000033501cf000000000343019f0000000000320435000000000001042d000000690100004100000000001004350000004101000039000000040010043f0000006a010000410000016000010430000000400100043d00000044021000390000006b0300004100000000003204350000002402100039000000080300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c7000001600001043000000000010000190000016000010430000000400100043d00000044021000390000006d03000041000000000032043500000024021000390000001e0300003900000000003204350000005e0200004100000000002104350000000402100039000000200300003900000000003204350000005902000041000000590310009c000000000102801900000040011002100000006c011001c70000016000010430000000690100004100000000001004350000001101000039000000040010043f0000006a0100004100000160000104300000001f0430018f0000000502300272000001430000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b0000013c0000413d000000000504004b000001510000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000006001300210000001600001043000000156002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d00190000015c002104290000000102000039000000000001042d0000000002000019000000000001042d0000015e000004320000015f0001042e000001600001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff6000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000001000000000000000000000000000000000100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000d44067f635588b53489f404b01f1d63a7a4aad6d0e7bbd1ac391aa57401c3dc1", + "bytecode": "0x000200000000000200060000000000020001000000010355000000000601001900000060066002700000004b0060019d0000008007000039000000400070043f0000004b09600197000000000800041600000001072001900000001f0000c13d000000000708004b000000690000c13d0000000202200190000000260000c13d00000000020004110000004d0220009c000000260000413d0000005a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000005e01000041000000c40010043f0000005f01000041000000e40010043f00000060010000410000012a00010430000000000108004b000000690000c13d0000002001000039000001000010044300000120000004430000004c01000041000001290001042e0000004e024001970000000004000410000000000442004b000000340000c13d0000005a01000041000000800010043f0000002001000039000000840010043f0000001e01000039000000a40010043f0000005c01000041000000c40010043f0000005d010000410000012a00010430000000000403004b00000000080004110000000007090019000000400000c13d00000000000304170000000003000414000000000497004b0000006b0000813d000000570100004100000000001004350000001101000039000000ff0000013d000300000009001d000500000005001d000600000006001d0000004f01000041000000a00010043f000100000008001d0000004e01800197000000a40010043f000200000002001d000000c40020043f000400000003001d000000e40030043f0000006401000039000000800010043f0000012001000039000000400010043f0000004b0100004100000000020004140000004b0320009c0000000002018019000000c00120021000000050011001c70000800a020000390128011d0000040f000000000301001900000060033002700000004b053001980000007f0000c13d00000001012001900000000606000029000000050500002900000004030000290000000309000029000000690000613d000000530130009c000000020200002900000001080000290000006d0000213d00000001010003670000000007000031000000380000013d00000000010000190000012a000104300000004b0430009c000000a80000a13d000000400100043d0000004402100039000000590300004100000000003204350000002402100039000000080300003900000000003204350000005a0200004100000000002104350000000402100039000000200300003900000000003204350000004b020000410000004b0310009c000000000102801900000040011002100000005b011001c70000012a000104300000003f035000390000005103300197000000400400043d0000000003340019000000000643004b00000000060000190000000106004039000000520730009c000000fc0000213d0000000106600190000000fc0000c13d000000400030043f0000001f0350018f00000000045404360000000505500272000000980000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000000900000413d000000000603004b0000005c0000613d0000000505500210000000000151034f00000000045400190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000005c0000013d000000010450019000000054040000410000005505000041000000000504c019000000c0033002100000005603300197000000000353019f00000000046700490000004b0440019700000000014103df00000000013103af0000004e0d800197012801220000040f000000000301001900000060033002700000004b033001970000000102200190000001020000613d0000003f023000390000005104200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000000520640009c000000fc0000213d0000000105500190000000fc0000c13d000000400040043f00000000043204360000001f053000390000000505500272000000d50000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000000cd0000413d000000000500004b000000d70000613d0000001f0530018f0000000503300272000000e30000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000000db0000413d000000000605004b000000f20000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000013043500000000010204330000004b020000410000004b0310009c00000000010280190000004b0340009c000000000402801900000040024002100000006001100210000000000121019f000001290001042e000000570100004100000000001004350000004101000039000000040010043f00000058010000410000012a000104300000001f0430018f00000005023002720000010d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001060000413d000000000504004b0000011b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000012a0001043000000120002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900000126002104290000000102000039000000000001042d0000000002000019000000000001042d0000012800000432000001290001042e0000012a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000000000000000000000000000000000000000006400000080000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000000000000000000000000000000000000000000000000000000000000000000bd3386b643652f0d2d91676a702da94d4184d0caf8993b96d7eb891324b9ae9b", + "deployedBytecode": "0x000200000000000200060000000000020001000000010355000000000601001900000060066002700000004b0060019d0000008007000039000000400070043f0000004b09600197000000000800041600000001072001900000001f0000c13d000000000708004b000000690000c13d0000000202200190000000260000c13d00000000020004110000004d0220009c000000260000413d0000005a01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f0000005e01000041000000c40010043f0000005f01000041000000e40010043f00000060010000410000012a00010430000000000108004b000000690000c13d0000002001000039000001000010044300000120000004430000004c01000041000001290001042e0000004e024001970000000004000410000000000442004b000000340000c13d0000005a01000041000000800010043f0000002001000039000000840010043f0000001e01000039000000a40010043f0000005c01000041000000c40010043f0000005d010000410000012a00010430000000000403004b00000000080004110000000007090019000000400000c13d00000000000304170000000003000414000000000497004b0000006b0000813d000000570100004100000000001004350000001101000039000000ff0000013d000300000009001d000500000005001d000600000006001d0000004f01000041000000a00010043f000100000008001d0000004e01800197000000a40010043f000200000002001d000000c40020043f000400000003001d000000e40030043f0000006401000039000000800010043f0000012001000039000000400010043f0000004b0100004100000000020004140000004b0320009c0000000002018019000000c00120021000000050011001c70000800a020000390128011d0000040f000000000301001900000060033002700000004b053001980000007f0000c13d00000001012001900000000606000029000000050500002900000004030000290000000309000029000000690000613d000000530130009c000000020200002900000001080000290000006d0000213d00000001010003670000000007000031000000380000013d00000000010000190000012a000104300000004b0430009c000000a80000a13d000000400100043d0000004402100039000000590300004100000000003204350000002402100039000000080300003900000000003204350000005a0200004100000000002104350000000402100039000000200300003900000000003204350000004b020000410000004b0310009c000000000102801900000040011002100000005b011001c70000012a000104300000003f035000390000005103300197000000400400043d0000000003340019000000000643004b00000000060000190000000106004039000000520730009c000000fc0000213d0000000106600190000000fc0000c13d000000400030043f0000001f0350018f00000000045404360000000505500272000000980000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000000900000413d000000000603004b0000005c0000613d0000000505500210000000000151034f00000000045400190000000303300210000000000504043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f00000000001404350000005c0000013d000000010450019000000054040000410000005505000041000000000504c019000000c0033002100000005603300197000000000353019f00000000046700490000004b0440019700000000014103df00000000013103af0000004e0d800197012801220000040f000000000301001900000060033002700000004b033001970000000102200190000001020000613d0000003f023000390000005104200197000000400200043d0000000004420019000000000524004b00000000050000190000000105004039000000520640009c000000fc0000213d0000000105500190000000fc0000c13d000000400040043f00000000043204360000001f053000390000000505500272000000d50000613d00000000060000310000000106600367000000000700001900000005087002100000000009840019000000000886034f000000000808043b00000000008904350000000107700039000000000857004b000000cd0000413d000000000500004b000000d70000613d0000001f0530018f0000000503300272000000e30000613d000000000600001900000005076002100000000008740019000000000771034f000000000707043b00000000007804350000000106600039000000000736004b000000db0000413d000000000605004b000000f20000613d0000000503300210000000000131034f00000000033400190000000305500210000000000603043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000013043500000000010204330000004b020000410000004b0310009c00000000010280190000004b0340009c000000000402801900000040024002100000006001100210000000000121019f000001290001042e000000570100004100000000001004350000004101000039000000040010043f00000058010000410000012a000104300000001f0430018f00000005023002720000010d0000613d00000000050000190000000506500210000000000761034f000000000707043b00000000007604350000000105500039000000000625004b000001060000413d000000000504004b0000011b0000613d00000003044002100000000502200210000000000502043300000000054501cf000000000545022f000000000121034f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000012043500000060013002100000012a0001043000000120002104210000000102000039000000000001042d0000000002000019000000000001042d000000000f0d001900000126002104290000000102000039000000000001042d0000000002000019000000000001042d0000012800000432000001290001042e0000012a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff579952fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000a0000000000000000000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff0100000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004f766572666c6f7700000000000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000004d736756616c756553696d756c61746f722063616c6c7320697473656c660000000000000000000000000000000000000000006400000080000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c61670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000000000000000000000000000000000000000000000000000000000000000000000bd3386b643652f0d2d91676a702da94d4184d0caf8993b96d7eb891324b9ae9b", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/NonceHolder.json b/src/deps/contracts/NonceHolder.json index cf484dff..aff59093 100644 --- a/src/deps/contracts/NonceHolder.json +++ b/src/deps/contracts/NonceHolder.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "NonceHolder", - "sourceName": "cache-zk/solpp-generated-contracts/NonceHolder.sol", + "sourceName": "contracts-preprocessed/NonceHolder.sol", "abi": [ { "anonymous": false, @@ -221,8 +221,8 @@ "type": "function" } ], - "bytecode": "0x0004000000000002000600000000000200030000000103550000006001100270000001020010019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000003e0000c13d0000000001000031000000040110008c000002080000413d0000000301000367000000000101043b000000e001100270000001040210009c000000460000213d0000010b0210009c000000720000a13d0000010c0210009c0000017b0000613d0000010d0210009c000001ac0000613d0000010e0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d0000002001000039000001000010044300000120000004430000010301000041000004050001042e000001050210009c000000a10000a13d000001060210009c000001d30000613d000001070210009c000001f70000613d000001080110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a0000008001100270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000010f0210009c000000c40000613d000001100110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000002000411000080060220008c0000025d0000c13d000600000001001d040403910000040f000000000101041a000500000001001d0000000601000029040403910000040f00000005030000290000012002300041000000000021041b0000008001300270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000001090210009c000001320000613d0000010a0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d040403a10000040f000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000300041100000003010003670000002402100370000000000402043b0000000401100370000000000201043b00000002010000390000000201100188000000e00000c13d000001210130009c000002100000813d000400000004001d000300000002001d000000400400043d000600000004001d00000122010000410000000001140436000500000001001d000200000003001d00000112023001970000000401400039000100000002001d000000000021043500000102010000410000000002000414000001020320009c0000000002018019000001020340009c00000000010440190000004001100210000000c002200210000000000112019f00000123011001c70000800602000039040403ff0000040f000000060a000029000000000301001900000060033002700000010203300197000000400430008c000000400400003900000000040340190000001f0540018f00000005064002720000010b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001030000413d000000000705004b0000011a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000002720000613d0000001f01400039000000e00210018f0000000001a20019000000000221004b00000000020000190000000102004039000001240410009c0000012c0000213d00000001022001900000012c0000c13d000000400010043f000000400230008c000002080000413d000001250210009c000002ce0000a13d0000012a0100004100000000001004350000004101000039000000040010043f000001230100004100000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000600310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003010003670000000402100370000000000402043b000001120240009c000002080000213d0000004402100370000000000302043b000000000203004b0000000002000019000000010200c039000600000003001d000000000223004b000002080000c13d0000002401100370000000000101043b000400000001001d0000000000400435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039000500000004001d040403ff0000040f00000005030000290000000102200190000002080000613d000000000101043b000000000101041a00000115011001970000000402000029000000000121004b000002aa0000a13d0000000601000029000000000101004b000002cc0000c13d000000400200043d000600000002001d000001170100004100000000001204350000000401200039040403f00000040f000000060400002900000000014100490000010202000041000001020310009c0000000001028019000001020340009c000000000204401900000040022002100000006001100210000000000121019f00000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000201043b00000002010000390000000201100188000001950000c13d00000000010004110000ffff0110008c000002100000213d0000011a0120009c000002450000413d000000400100043d00000064021000390000011b03000041000000000032043500000044021000390000011c030000410000000000320435000000240210003900000030030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c700000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000100041100000000001004350000000101000039000000200010043f00000000010000190404037f0000040f00000004020000390000000302200367000000000202043b0000000000200435000000200010043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003020003670000000401200370000000000101043b000001120310009c000002080000213d0000002402200370000000000202043b040403b40000040f000000000101004b0000000001000019000000010100c039000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b0000020a0000613d00000000010000190000040600010430000000000200041100000002010000390000000201100188000002250000c13d0000ffff0120008c000002250000a13d000000400100043d00000064021000390000012b03000041000000000032043500000044021000390000012c030000410000000000320435000000240210003900000024030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000600000002001d0000000000200435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d00000004020000390000000302200367000000000202043b000000000101043b000000000101041a0000011503100197000000000223004b000002980000c13d00000006020000290000000000200435000000200000043f0000000101100039000600000001001d00000000010000190404037f0000040f0000000602000029000000000021041b0000000001000019000004050001042e0000000001000411000500000001001d0000000000100435000000200000043f0000000001000019000600000002001d0404037f0000040f000000000101041a000400000001001d0000000501000029040403910000040f000000060200002900000004030000290000000002230019000000000021041b0000011501300197000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000000400100043d00000064021000390000011e03000041000000000032043500000044021000390000011f03000041000000000032043500000024021000390000003d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000000400200043d0000001f0430018f00000005033002720000027f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002770000413d000000000504004b0000028e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000102010000410000000103000031000001020430009c0000000003018019000001020420009c000000000102401900000040011002100000006002300210000000000112019f0000040600010430000000400100043d00000044021000390000011603000041000000000032043500000024021000390000000f030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000000003004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000004020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b000001670000c13d0000000601000029000000000101004b000002ee0000c13d0000000001000019000004050001042e0000004002100039000000400020043f00000000020a0433000000010320008c000002080000213d000000000221043600000005010000290000000001010433000000010310008c000002080000213d00000000001204350000000402000029000000000202004b000003000000c13d000000400100043d00000044021000390000012903000041000000000032043500000024021000390000001e030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000400100043d00000044021000390000011903000041000000000032043500000024021000390000001d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000000101004b0000031a0000c13d0000000301000029000000000101004b0000031a0000613d00000001010000290000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d0000000302000029000000010220008a000000000101043b000000000101041a0000011501100197000600000002001d000000000121004b0000034e0000a13d000000020100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000003020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b0000000402000029000000000021041b000000400100043d000000000021043500000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000127011001c70000800d020000390000000303000039000001280400004100000002050000290000000306000029040403fa0000040f0000000101200190000002080000613d000002cc0000013d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000006020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b0000031a0000c13d000000400100043d00000044021000390000012603000041000000000032043500000117020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000114011001c70000801002000039040403ff0000040f00000001022001900000038f0000613d000000000101043b000000000001042d000000000100001900000406000104300000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f00000001022001900000039f0000613d000000000101043b000000000001042d0000000001000019000004060001043000000112011001970000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003b20000613d000000000101043b000000000101041a0000011501100197000000000001042d000000000100001900000406000104300002000000000002000200000002001d0000011201100197000100000001001d0000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d0000000102000039000000000101043b000000000101041a00000115011001970000000203000029000000000131004b000003ec0000213d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b00000002020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000004060001043000000040021000390000012d03000041000000000032043500000020021000390000001c030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d000003fd002104210000000102000039000000000001042d0000000002000019000000000001042d00000402002104230000000102000039000000000001042d0000000002000019000000000001042d0000040400000432000004050001042e0000040600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000000000000000000000000000000000000000000000000000000000001000000016f6e636520697320746f6f2068696768000000000000000000000000000000005468652076616c756520666f7220696e6372656d656e74696e6720746865206e00000000000000000000000000000000000000840000000000000000000000006e6372656d656e7420746865206465706c6f796d656e74206e6f6e63650000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e2069000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf50726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f203000004e487b7100000000000000000000000000000000000000000000000000000000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2052657573696e67207468652073616d65206e6f6e636520747769636500000000501c26608344a09e93fd75d75fa0338d79ed540145d531243c88c8adba134376", - "deployedBytecode": "0x0004000000000002000600000000000200030000000103550000006001100270000001020010019d000200000002001f000100000000001f0000008001000039000000400010043f00000001012001900000003e0000c13d0000000001000031000000040110008c000002080000413d0000000301000367000000000101043b000000e001100270000001040210009c000000460000213d0000010b0210009c000000720000a13d0000010c0210009c0000017b0000613d0000010d0210009c000001ac0000613d0000010e0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d0000002001000039000001000010044300000120000004430000010301000041000004050001042e000001050210009c000000a10000a13d000001060210009c000001d30000613d000001070210009c000001f70000613d000001080110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000000100435000000200000043f00000000010000190404037f0000040f000000000101041a0000008001100270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000010f0210009c000000c40000613d000001100110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d0000000002000411000080060220008c0000025d0000c13d000600000001001d040403910000040f000000000101041a000500000001001d0000000601000029040403910000040f00000005030000290000012002300041000000000021041b0000008001300270000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000001090210009c000001320000613d0000010a0110009c000002080000c13d0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000101043b000001120210009c000002080000213d040403a10000040f000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000300041100000003010003670000002402100370000000000402043b0000000401100370000000000201043b00000002010000390000000201100188000000e00000c13d000001210130009c000002100000813d000400000004001d000300000002001d000000400400043d000600000004001d00000122010000410000000001140436000500000001001d000200000003001d00000112023001970000000401400039000100000002001d000000000021043500000102010000410000000002000414000001020320009c0000000002018019000001020340009c00000000010440190000004001100210000000c002200210000000000112019f00000123011001c70000800602000039040403ff0000040f000000060a000029000000000301001900000060033002700000010203300197000000400430008c000000400400003900000000040340190000001f0540018f00000005064002720000010b0000613d0000000007000019000000050870021000000000098a0019000000000881034f000000000808043b00000000008904350000000107700039000000000867004b000001030000413d000000000705004b0000011a0000613d0000000506600210000000000761034f00000000066a00190000000305500210000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f0000000000560435000100000003001f0000000102200190000002720000613d0000001f01400039000000e00210018f0000000001a20019000000000221004b00000000020000190000000102004039000001240410009c0000012c0000213d00000001022001900000012c0000c13d000000400010043f000000400230008c000002080000413d000001250210009c000002ce0000a13d0000012a0100004100000000001004350000004101000039000000040010043f000001230100004100000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000600310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003010003670000000402100370000000000402043b000001120240009c000002080000213d0000004402100370000000000302043b000000000203004b0000000002000019000000010200c039000600000003001d000000000223004b000002080000c13d0000002401100370000000000101043b000400000001001d0000000000400435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039000500000004001d040403ff0000040f00000005030000290000000102200190000002080000613d000000000101043b000000000101041a00000115011001970000000402000029000000000121004b000002aa0000a13d0000000601000029000000000101004b000002cc0000c13d000000400200043d000600000002001d000001170100004100000000001204350000000401200039040403f00000040f000000060400002900000000014100490000010202000041000001020310009c0000000001028019000001020340009c000000000204401900000040022002100000006001100210000000000121019f00000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000004010000390000000301100367000000000201043b00000002010000390000000201100188000001950000c13d00000000010004110000ffff0110008c000002100000213d0000011a0120009c000002450000413d000000400100043d00000064021000390000011b03000041000000000032043500000044021000390000011c030000410000000000320435000000240210003900000030030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c700000406000104300000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d000000000100041100000000001004350000000101000039000000200010043f00000000010000190404037f0000040f00000004020000390000000302200367000000000202043b0000000000200435000000200010043f00000000010000190404037f0000040f000000000101041a000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000400310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b000002080000c13d00000003020003670000000401200370000000000101043b000001120310009c000002080000213d0000002402200370000000000202043b040403b40000040f000000000101004b0000000001000019000000010100c039000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e0000000001000416000000000101004b000002080000c13d000000040100008a00000000011000310000011102000041000000200310008c000000000300001900000000030240190000011101100197000000000401004b000000000200a019000001110110009c00000000010300190000000001026019000000000101004b0000020a0000613d00000000010000190000040600010430000000000200041100000002010000390000000201100188000002250000c13d0000ffff0120008c000002250000a13d000000400100043d00000064021000390000012b03000041000000000032043500000044021000390000012c030000410000000000320435000000240210003900000024030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000600000002001d0000000000200435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d00000004020000390000000302200367000000000202043b000000000101043b000000000101041a0000011503100197000000000223004b000002980000c13d00000006020000290000000000200435000000200000043f0000000101100039000600000001001d00000000010000190404037f0000040f0000000602000029000000000021041b0000000001000019000004050001042e0000000001000411000500000001001d0000000000100435000000200000043f0000000001000019000600000002001d0404037f0000040f000000000101041a000400000001001d0000000501000029040403910000040f000000060200002900000004030000290000000002230019000000000021041b0000011501300197000000400200043d00000000001204350000010201000041000001020320009c0000000001024019000000400110021000000113011001c7000004050001042e000000400100043d00000064021000390000011e03000041000000000032043500000044021000390000011f03000041000000000032043500000024021000390000003d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c000000000102801900000040011002100000011d011001c70000040600010430000000400200043d0000001f0430018f00000005033002720000027f0000613d000000000500001900000005065002100000000007620019000000000661034f000000000606043b00000000006704350000000105500039000000000635004b000002770000413d000000000504004b0000028e0000613d0000000503300210000000000131034f00000000033200190000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f000000000013043500000102010000410000000103000031000001020430009c0000000003018019000001020420009c000000000102401900000040011002100000006002300210000000000112019f0000040600010430000000400100043d00000044021000390000011603000041000000000032043500000024021000390000000f030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000000003004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000004020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b000001670000c13d0000000601000029000000000101004b000002ee0000c13d0000000001000019000004050001042e0000004002100039000000400020043f00000000020a0433000000010320008c000002080000213d000000000221043600000005010000290000000001010433000000010310008c000002080000213d00000000001204350000000402000029000000000202004b000003000000c13d000000400100043d00000044021000390000012903000041000000000032043500000024021000390000001e030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000400100043d00000044021000390000011903000041000000000032043500000024021000390000001d030000390000000000320435000001170200004100000000002104350000000402100039000000200300003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c70000040600010430000000000101004b0000031a0000c13d0000000301000029000000000101004b0000031a0000613d00000001010000290000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d0000000302000029000000010220008a000000000101043b000000000101041a0000011501100197000600000002001d000000000121004b0000034e0000a13d000000020100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000003020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b0000000402000029000000000021041b000000400100043d000000000021043500000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000127011001c70000800d020000390000000303000039000001280400004100000002050000290000000306000029040403fa0000040f0000000101200190000002080000613d000002cc0000013d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b00000006020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000002080000613d000000000101043b000000000101041a000000000101004b0000031a0000c13d000000400100043d00000044021000390000012603000041000000000032043500000117020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900000000003204350000010202000041000001020310009c0000000001028019000000400110021000000118011001c7000004060001043000000102020000410000000003000414000001020430009c0000000003028019000001020410009c00000000010280190000004001100210000000c002300210000000000112019f00000114011001c70000801002000039040403ff0000040f00000001022001900000038f0000613d000000000101043b000000000001042d000000000100001900000406000104300000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f00000001022001900000039f0000613d000000000101043b000000000001042d0000000001000019000004060001043000000112011001970000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003b20000613d000000000101043b000000000101041a0000011501100197000000000001042d000000000100001900000406000104300002000000000002000200000002001d0000011201100197000100000001001d0000000000100435000000200000043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d0000000102000039000000000101043b000000000101041a00000115011001970000000203000029000000000131004b000003ec0000213d000000010100002900000000001004350000000101000039000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b00000002020000290000000000200435000000200010043f00000102010000410000000002000414000001020320009c0000000001024019000000c00110021000000114011001c70000801002000039040403ff0000040f0000000102200190000003ee0000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000004060001043000000040021000390000012d03000041000000000032043500000020021000390000001c030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d000003fd002104210000000102000039000000000001042d0000000002000019000000000001042d00000402002104230000000102000039000000000001042d0000000002000019000000000001042d0000040400000432000004050001042e0000040600010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c68000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000000000000000000000000000000000000000000000000000000000001000000016f6e636520697320746f6f2068696768000000000000000000000000000000005468652076616c756520666f7220696e6372656d656e74696e6720746865206e00000000000000000000000000000000000000840000000000000000000000006e6372656d656e7420746865206465706c6f796d656e74206e6f6e63650000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e2069000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf50726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f203000004e487b7100000000000000000000000000000000000000000000000000000000666c61670000000000000000000000000000000000000000000000000000000054686973206d6574686f6420726571756972652073797374656d2063616c6c2052657573696e67207468652073616d65206e6f6e636520747769636500000000501c26608344a09e93fd75d75fa0338d79ed540145d531243c88c8adba134376", + "bytecode": "0x00010000000000020005000000000002000000000601034f00000000000603550000008001000039000000400010043f00000000010600190000006001100270000000bb011001970000000103200190000000260000c13d000000040310008c0000026b0000413d000000000306043b000000e003300270000000bd0430009c0000002e0000213d000000c40430009c000000470000a13d000000c50430009c000001000000613d000000c60230009c000001190000613d000000c70230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f0000012b0000013d0000000001000416000000000101004b0000026b0000c13d000000200100003900000100001004430000012000000443000000bc01000041000002e70001042e000000be0430009c000000630000a13d000000bf0430009c000001310000613d000000c00430009c000001420000613d000000c10230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f000000000100001902e602ca0000040f000000000101041a00000080011002700000012e0000013d000000c80430009c000000730000613d000000c90230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000002000411000080060220008c000001b20000c13d000500000001001d02e6026d0000040f000000000101041a000400000001001d000000050100002902e6026d0000040f0000000403000029000000da02300041000000000021041b0000008001300270000001870000013d000000c20230009c000000cf0000613d000000c30230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d02e6027d0000040f000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d00000000030004110000002401600370000000000501043b0000000401600370000000000401043b0000000201200190000000820000c13d000000db0130009c0000014d0000813d000500000005001d000400000004001d000000dc01000041000000800010043f000300000003001d000000ca01300197000200000001001d000000840010043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000dd011001c7000080060200003902e602e10000040f00000000030100190000006003300270000000bb03300197000000400430008c000000000403001900000040040080390000001f0540018f0000000506400272000000a40000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000009c0000413d000000000705004b000000b30000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000018f0000613d0000001f01400039000000e00110018f0000008002100039000000400020043f000000400330008c0000026b0000413d000000c003100039000000400030043f000000800300043d000000010430008c0000026b0000213d0000000000320435000000a00200043d000000010320008c0000026b0000213d000000a0011000390000000000210435000000050100006b000001f50000c13d000000400100043d0000004402100039000000e103000041000000000032043500000024021000390000001e03000039000001c20000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000600110008c0000026b0000413d0000000401600370000000000301043b000000ca0130009c0000026b0000213d0000004401600370000000000201043b000000000102004b0000000001000019000000010100c039000500000002001d000000000112004b0000026b0000c13d0000002401600370000000000101043b000300000001001d0000000000300435000000200000043f000000bb010000410000000002000414000400000003001d000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f000000040300002900000001022001900000026b0000613d000000000101043b000000000101041a000000cd01100197000000030110006c000001ce0000a13d000000050100006b0000023f0000c13d000000400100043d0000004402100039000000d303000041000000000032043500000024021000390000001c03000039000001c20000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000301043b00000002012001900000010d0000c13d00000000010004110000ffff0110008c0000014d0000213d000000d40130009c000001780000413d000000cf01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f000000d501000041000000c40010043f000000d601000041000001560000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d000000000100041100000000001004350000000101000039000000200010043f0000000001000019000500000006035302e602ca0000040f000000050200035f0000000402200370000000000202043b0000000000200435000000200010043f000000000100001902e602ca0000040f000000000101041a000000800010043f000000cb01000041000002e70001042e0000000002000416000000000202004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000002402600370000000000202043b02e602900000040f000000000101004b0000000001000019000000010100c039000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d00000000030004110000000201200190000001590000c13d0000ffff0130008c000001590000a13d000000cf01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000000e201000041000000c40010043f000000e301000041000000e40010043f000000d701000041000002e800010430000500000003001d0000000000300435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000390000000002200367000000000202043b000000000101043b000000000101041a000000cd03100197000000000223004b000001bc0000c13d00000005020000290000000000200435000000200000043f000500010010003d000000000100001902e602ca0000040f0000000502000029000000000021041b0000000001000019000002e70001042e0000000001000411000400000001001d0000000000100435000000200000043f0000000001000019000500000003001d02e602ca0000040f000000000101041a000300000001001d000000040100002902e6026d0000040f00000003030000290000000502300029000000000021041b000000cd01300197000000400200043d0000000000120435000000bb01000041000000bb0320009c00000000020180190000004001200210000000d1011001c7000002e70001042e000000400200043d0000001f0430018f00000005053002720000019c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001940000413d000000000604004b000001ab0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000bb01000041000000bb0420009c000000000201801900000040012002100000006002300210000000000121019f000002e800010430000000cf01000041000000800010043f0000002001000039000000840010043f0000003d01000039000000a40010043f000000d801000041000000c40010043f000000d901000041000001560000013d000000400100043d0000004402100039000000ce03000041000000000032043500000024021000390000000f030000390000000000320435000000cf020000410000000000210435000000040210003900000020030000390000000000320435000000bb02000041000000bb0310009c00000000010280190000004001100210000000d0011001c7000002e80001043000000000003004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000003020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b000000f70000c13d000000050100006b0000023f0000613d000000400100043d0000004402100039000000d203000041000000000032043500000024021000390000001d03000039000001c20000013d000000000102004b0000020d0000c13d000000040100006b0000020d0000613d00000002010000290000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000290001000100200092000000000101043b000000000101041a000000cd01100197000000010110006c000002410000a13d000000030100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000004020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b0000000502000029000000000021041b000000400100043d0000000000210435000000bb020000410000000003000414000000bb0430009c0000000003028019000000bb0410009c00000000010280190000004001100210000000c002300210000000000112019f000000df011001c70000800d020000390000000303000039000000e0040000410000000305000029000000040600002902e602dc0000040f00000001012001900000026b0000613d0000000001000019000002e70001042e000000020100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b0000020d0000c13d000000400100043d0000004402100039000000de030000410000000000320435000000cf0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001c70000013d0000000001000019000002e8000104300000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000027b0000613d000000000101043b000000000001042d0000000001000019000002e800010430000000ca011001970000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000028e0000613d000000000101043b000000000101041a000000cd01100197000000000001042d0000000001000019000002e8000104300002000000000002000200000002001d000000ca01100197000100000001001d0000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d0000000102000039000000000101043b000000000101041a000000cd01100197000000020110006c000002c60000213d000000010100002900000000001004350000000101000039000000200010043f000000bb040000410000000001000414000000bb0210009c0000000001048019000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b00000002020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000002e800010430000000bb02000041000000bb0310009c00000000010280190000000003000414000000bb0430009c0000000003028019000000c0023002100000004001100210000000000121019f000000cc011001c7000080100200003902e602e10000040f0000000102200190000002da0000613d000000000101043b000000000001042d0000000001000019000002e800010430000002df002104210000000102000039000000000001042d0000000002000019000000000001042d000002e4002104230000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c6000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000052657573696e67207468652073616d65206e6f6e63652074776963650000000000000000000000000000000000000000000000000000000000000001000000015468652076616c756520666f7220696e6372656d656e74696e6720746865206e6f6e636520697320746f6f20686967680000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e20696e6372656d656e7420746865206465706c6f796d656e74206e6f6e6365000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000050726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f2030000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167000000000000000000000000000000000000000000000000000000002939c4cdfb90c729970c3ad2c9098d21b2a06bfb91c7512c7e805ee298dc6741", + "deployedBytecode": "0x00010000000000020005000000000002000000000601034f00000000000603550000008001000039000000400010043f00000000010600190000006001100270000000bb011001970000000103200190000000260000c13d000000040310008c0000026b0000413d000000000306043b000000e003300270000000bd0430009c0000002e0000213d000000c40430009c000000470000a13d000000c50430009c000001000000613d000000c60230009c000001190000613d000000c70230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f0000012b0000013d0000000001000416000000000101004b0000026b0000c13d000000200100003900000100001004430000012000000443000000bc01000041000002e70001042e000000be0430009c000000630000a13d000000bf0430009c000001310000613d000000c00430009c000001420000613d000000c10230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000000100435000000200000043f000000000100001902e602ca0000040f000000000101041a00000080011002700000012e0000013d000000c80430009c000000730000613d000000c90230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000000002000411000080060220008c000001b20000c13d000500000001001d02e6026d0000040f000000000101041a000400000001001d000000050100002902e6026d0000040f0000000403000029000000da02300041000000000021041b0000008001300270000001870000013d000000c20230009c000000cf0000613d000000c30230009c0000026b0000c13d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d02e6027d0000040f000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d00000000030004110000002401600370000000000501043b0000000401600370000000000401043b0000000201200190000000820000c13d000000db0130009c0000014d0000813d000500000005001d000400000004001d000000dc01000041000000800010043f000300000003001d000000ca01300197000200000001001d000000840010043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000dd011001c7000080060200003902e602e10000040f00000000030100190000006003300270000000bb03300197000000400430008c000000000403001900000040040080390000001f0540018f0000000506400272000000a40000613d00000000070000190000000508700210000000000981034f000000000909043b000000800880003900000000009804350000000107700039000000000867004b0000009c0000413d000000000705004b000000b30000613d0000000506600210000000000761034f00000003055002100000008006600039000000000806043300000000085801cf000000000858022f000000000707043b0000010005500089000000000757022f00000000055701cf000000000585019f000000000056043500000001022001900000018f0000613d0000001f01400039000000e00110018f0000008002100039000000400020043f000000400330008c0000026b0000413d000000c003100039000000400030043f000000800300043d000000010430008c0000026b0000213d0000000000320435000000a00200043d000000010320008c0000026b0000213d000000a0011000390000000000210435000000050100006b000001f50000c13d000000400100043d0000004402100039000000e103000041000000000032043500000024021000390000001e03000039000001c20000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000600110008c0000026b0000413d0000000401600370000000000301043b000000ca0130009c0000026b0000213d0000004401600370000000000201043b000000000102004b0000000001000019000000010100c039000500000002001d000000000112004b0000026b0000c13d0000002401600370000000000101043b000300000001001d0000000000300435000000200000043f000000bb010000410000000002000414000400000003001d000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f000000040300002900000001022001900000026b0000613d000000000101043b000000000101041a000000cd01100197000000030110006c000001ce0000a13d000000050100006b0000023f0000c13d000000400100043d0000004402100039000000d303000041000000000032043500000024021000390000001c03000039000001c20000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d0000000401600370000000000301043b00000002012001900000010d0000c13d00000000010004110000ffff0110008c0000014d0000213d000000d40130009c000001780000413d000000cf01000041000000800010043f0000002001000039000000840010043f0000003001000039000000a40010043f000000d501000041000000c40010043f000000d601000041000001560000013d0000000002000416000000000202004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d000000000100041100000000001004350000000101000039000000200010043f0000000001000019000500000006035302e602ca0000040f000000050200035f0000000402200370000000000202043b0000000000200435000000200010043f000000000100001902e602ca0000040f000000000101041a000000800010043f000000cb01000041000002e70001042e0000000002000416000000000202004b0000026b0000c13d000000040110008a000000400110008c0000026b0000413d0000000401600370000000000101043b000000ca0210009c0000026b0000213d0000002402600370000000000202043b02e602900000040f000000000101004b0000000001000019000000010100c039000001870000013d0000000003000416000000000303004b0000026b0000c13d000000040110008a000000200110008c0000026b0000413d00000000030004110000000201200190000001590000c13d0000ffff0130008c000001590000a13d000000cf01000041000000800010043f0000002001000039000000840010043f0000002401000039000000a40010043f000000e201000041000000c40010043f000000e301000041000000e40010043f000000d701000041000002e800010430000500000003001d0000000000300435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000390000000002200367000000000202043b000000000101043b000000000101041a000000cd03100197000000000223004b000001bc0000c13d00000005020000290000000000200435000000200000043f000500010010003d000000000100001902e602ca0000040f0000000502000029000000000021041b0000000001000019000002e70001042e0000000001000411000400000001001d0000000000100435000000200000043f0000000001000019000500000003001d02e602ca0000040f000000000101041a000300000001001d000000040100002902e6026d0000040f00000003030000290000000502300029000000000021041b000000cd01300197000000400200043d0000000000120435000000bb01000041000000bb0320009c00000000020180190000004001200210000000d1011001c7000002e70001042e000000400200043d0000001f0430018f00000005053002720000019c0000613d000000000600001900000005076002100000000008720019000000000771034f000000000707043b00000000007804350000000106600039000000000756004b000001940000413d000000000604004b000001ab0000613d0000000505500210000000000151034f00000000055200190000000304400210000000000605043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f0000000000150435000000bb01000041000000bb0420009c000000000201801900000040012002100000006002300210000000000121019f000002e800010430000000cf01000041000000800010043f0000002001000039000000840010043f0000003d01000039000000a40010043f000000d801000041000000c40010043f000000d901000041000001560000013d000000400100043d0000004402100039000000ce03000041000000000032043500000024021000390000000f030000390000000000320435000000cf020000410000000000210435000000040210003900000020030000390000000000320435000000bb02000041000000bb0310009c00000000010280190000004001100210000000d0011001c7000002e80001043000000000003004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000003020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b000000f70000c13d000000050100006b0000023f0000613d000000400100043d0000004402100039000000d203000041000000000032043500000024021000390000001d03000039000001c20000013d000000000102004b0000020d0000c13d000000040100006b0000020d0000613d00000002010000290000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d00000004020000290001000100200092000000000101043b000000000101041a000000cd01100197000000010110006c000002410000a13d000000030100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000004020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b0000000502000029000000000021041b000000400100043d0000000000210435000000bb020000410000000003000414000000bb0430009c0000000003028019000000bb0410009c00000000010280190000004001100210000000c002300210000000000112019f000000df011001c70000800d020000390000000303000039000000e0040000410000000305000029000000040600002902e602dc0000040f00000001012001900000026b0000613d0000000001000019000002e70001042e000000020100002900000000001004350000000101000039000000200010043f000000bb030000410000000001000414000000bb0210009c0000000001038019000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b00000001020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f00000001022001900000026b0000613d000000000101043b000000000101041a000000000101004b0000020d0000c13d000000400100043d0000004402100039000000de030000410000000000320435000000cf0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000001c70000013d0000000001000019000002e8000104300000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000027b0000613d000000000101043b000000000001042d0000000001000019000002e800010430000000ca011001970000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f00000001022001900000028e0000613d000000000101043b000000000101041a000000cd01100197000000000001042d0000000001000019000002e8000104300002000000000002000200000002001d000000ca01100197000100000001001d0000000000100435000000200000043f000000bb010000410000000002000414000000bb0320009c0000000002018019000000c001200210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d0000000102000039000000000101043b000000000101041a000000cd01100197000000020110006c000002c60000213d000000010100002900000000001004350000000101000039000000200010043f000000bb040000410000000001000414000000bb0210009c0000000001048019000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b00000002020000290000000000200435000000200010043f0000000001000414000000bb0210009c000000bb01008041000000c001100210000000cc011001c7000080100200003902e602e10000040f0000000102200190000002c80000613d000000000101043b000000000101041a000000000101004b0000000002000019000000010200c039000000010120018f000000000001042d0000000001000019000002e800010430000000bb02000041000000bb0310009c00000000010280190000000003000414000000bb0430009c0000000003028019000000c0023002100000004001100210000000000121019f000000cc011001c7000080100200003902e602e10000040f0000000102200190000002da0000613d000000000101043b000000000001042d0000000001000019000002e800010430000002df002104210000000102000039000000000001042d0000000002000019000000000001042d000002e4002104230000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e80001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000006ee1dc1f00000000000000000000000000000000000000000000000000000000cab7e8ea00000000000000000000000000000000000000000000000000000000cab7e8eb00000000000000000000000000000000000000000000000000000000e1239cd800000000000000000000000000000000000000000000000000000000fb1a9a57000000000000000000000000000000000000000000000000000000006ee1dc2000000000000000000000000000000000000000000000000000000000896909dc0000000000000000000000000000000000000000000000000000000038a780910000000000000000000000000000000000000000000000000000000038a780920000000000000000000000000000000000000000000000000000000055d35d18000000000000000000000000000000000000000000000000000000005aa9b6b500000000000000000000000000000000000000000000000000000000155fd27a00000000000000000000000000000000000000000000000000000000306395c6000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000800000000000000000020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff496e636f7272656374206e6f6e6365000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000020000000000000000000000000546865206e6f6e636520776173206e6f7420736574206173207573656400000052657573696e67207468652073616d65206e6f6e63652074776963650000000000000000000000000000000000000000000000000000000000000001000000015468652076616c756520666f7220696e6372656d656e74696e6720746865206e6f6e636520697320746f6f20686967680000000000000000000000000000000000000000000000000000000000000000000000840000008000000000000000004f6e6c792074686520636f6e7472616374206465706c6f7965722063616e20696e6372656d656e7420746865206465706c6f796d656e74206e6f6e6365000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100007b510fe800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000080000000000000000050726576696f7573206e6f6e636520686173206e6f74206265656e20757365640200000000000000000000000000000000000020000000000000000000000000da2b716e5a5d5f602b9a5842bcd89c215b125258dfea271a03e5e0e801d93a8c4e6f6e63652076616c75652063616e6e6f742062652073657420746f2030000054686973206d6574686f6420726571756972652073797374656d2063616c6c20666c6167000000000000000000000000000000000000000000000000000000002939c4cdfb90c729970c3ad2c9098d21b2a06bfb91c7512c7e805ee298dc6741", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/SHA256.yul.zbin b/src/deps/contracts/SHA256.yul.zbin index 81eea3d7..305def7b 100644 Binary files a/src/deps/contracts/SHA256.yul.zbin and b/src/deps/contracts/SHA256.yul.zbin differ diff --git a/src/deps/contracts/SystemContext.json b/src/deps/contracts/SystemContext.json index 35112544..051bd11e 100644 --- a/src/deps/contracts/SystemContext.json +++ b/src/deps/contracts/SystemContext.json @@ -1,7 +1,7 @@ { "_format": "hh-zksolc-artifact-1", "contractName": "SystemContext", - "sourceName": "cache-zk/solpp-generated-contracts/SystemContext.sol", + "sourceName": "contracts-preprocessed/SystemContext.sol", "abi": [ { "inputs": [ @@ -402,8 +402,8 @@ "type": "function" } ], - "bytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001d80010019d0000008001000039000000400010043f0000000102200190000000370000c13d0000000002000031000000040220008c000003ea0000413d0000000102000367000000000202043b000000e002200270000001dc0320009c0000004a0000213d000001ee0320009c000000580000a13d000001ef0120009c000000b10000a13d000001f00120009c0000013d0000213d000001f30120009c0000019d0000613d000001f40120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000020101100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000001d8010000410000000302000039000000000012041b0000000401000039000000000201041a000001d90220019700008001022001bf000000000021041b000001da010000410000000502000039000000000012041b000000200100003900000100001004430000012000000443000001db010000410000075b0001042e000001dd0120009c0000008b0000a13d000001de0120009c000000d20000a13d000001df0120009c0000017e0000213d000001e20120009c000001b80000613d000001e30120009c000003ea0000c13d0000000001000416000000000101004b000001bb0000613d000003ea0000013d000001f80320009c000000f50000213d000001fc0320009c000001d60000613d000001fd0320009c0000022a0000613d000001fe0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000000a05000039000000000305041a000000400200043d0000002001200039000000000031043500000004030000390000000103300367000000000303043b00000040042000390000000000340435000000400300003900000000003204350000020f0320009c0000044d0000213d0000006003200039000000400030043f0000000002020433000600000005001d075a06250000040f0000000602000029000000000012041b00000000010000190000075b0001042e000001e70120009c0000011a0000213d000001eb0120009c000002840000613d000001ec0120009c000002880000613d000001ed0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a067a0000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e000001f50120009c000002a40000613d000001f60120009c000002c00000613d000001f70120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000601000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001e40120009c000002dc0000613d000001e50120009c000002f80000613d000001e60120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f00000004010000390000000101100367000000000101043b0000000202000039000000000012041b00000000010000190000075b0001042e000001f90120009c0000031c0000613d000001fa0120009c000003370000613d000001fb0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000004210000c13d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000001e80120009c000003600000613d000001e90120009c0000037c0000613d000001ea0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f00000201022001970000008001100210000000000121019f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001f10120009c000003960000613d000001f20120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000000400200043d000002040320009c0000044d0000213d0000010c03000039000000000503041a0000004003200039000000400030043f0000010d03000039000000000403041a00000201034001970000000006320436000000800340027000000000003604350000008006500270000000000516004b00000000050000190000047a0000a13d0000000005160049000001010550008c00000000050000190000047a0000813d00000000020204330000020102200197000000000221004b000004270000813d00000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b000000000501041a0000047a0000013d000001e00120009c000003d90000613d000001e10120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000201000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000301000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000800310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000001010003670000000402100370000000000202043b000600000002001d0000002402100370000000000202043b0000000004020019000002010220009c000003ea0000213d0000004401100370000000000101043b000500000001001d000002010110009c000003ea0000213d000000400500043d0000000002000411000080010220008c0000042f0000c13d0000022e0250009c0000044d0000813d0000004002500039000000400020043f0000000702000039000000000202041a00000020035000390000008001200270000000000013043500000201022001970000000000250435000400000004001d000000000224004b000004530000a13d000300000001001d075a068d0000040f0000000502000029000000000121013f000002010110019800000000010000190000000101006039075a070c0000040f0000000401000029075a07360000040f0000000301000029075a07240000040f0000000602000029000000000021041b0000000301000029075a068d0000040f000500000001001d075a065b0000040f000000050200002900000201022001970000002003100039000000000023043500000004020000290000000000210435075a06a20000040f00000064010000390000000101100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000075b0001042e0000000002000416000000000202004b000003ea0000c13d000000040200008a0000000002200031000001ff03000041000000a00420008c00000000040000190000000004034019000001ff02200197000000000502004b000000000300a019000001ff0220009c00000000020400190000000002036019000000000202004b000003ea0000c13d00000001030003670000000402300370000000000202043b000600000002001d000002010220009c000003ea0000213d0000002402300370000000000202043b000500000002001d000002010220009c000003ea0000213d0000004402300370000000000202043b000400000002001d0000006402300370000000000202043b000000000402004b0000000004000019000000010400c039000000000442004b000003ea0000c13d0000008403300370000000000303043b000300000003001d000002010330009c000003ea0000213d0000000003000411000080010330008c000003fe0000c13d000000000302004b000004820000c13d000000400400043d000002040340009c0000044d0000213d0000004003400039000000400030043f0000000903000039000100000003001d000000000503041a0000002006400039000000800350027000000000003604350000020106500197000200000006001d0000000000640435000002010450009c000004bb0000213d0000000204000029000000000404004b000004c10000c13d000000000102004b0000054c0000c13d000000400100043d00000064021000390000022c03000041000000000032043500000044021000390000022d03000041000000000032043500000024021000390000002103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000003dc0000013d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010e01000039000000000101041a0000ffff0110018f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000010e01000039000000000201041a0000020e02200197000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000008001100270000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000401000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000600000001001d000002030110009c000003ea0000213d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000000101000039000000000201041a000001d9022001970000000603000029000000000232019f000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000501000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000600310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f000000400100043d075a06500000040f00000001010003670000002402100370000000000202043b00000080022002100000000401100370000000000101043b0000020101100197000000000121019f0000000702000039000000000012041b00000044010000390000000101100367000000000101043b0000000602000039000000000012041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000101000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d000000000200041a0000000000210435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d0000000002000411000080010220008c000004100000c13d000002040210009c0000044d0000213d0000004002100039000000400020043f0000000702000039000000000202041a00000020031000390000008004200270000000000043043500000201032001970000000000310435000000400100043d000002040410009c0000044d0000213d0000004004100039000000400040043f0000000904000039000000000404041a00000020051000390000008006400270000000000065043500000201044001970000000000410435000002010120009c000004410000213d000000400100043d00000064021000390000020b03000041000000000032043500000044021000390000020c03000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ec0000613d00000000010000190000075c0001043000000004010000390000000101100367000000000101043b00000000001004350000000801000039000000200010043f00000040020000390000000001000019075a06250000040f000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c0001043000000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000020e022001970000000103300039000000000223019f000000000021041b00000000010000190000075b0001042e000002050240009c000004470000413d000000000231004b000004470000413d000001012110011a0000000b01200039000000000501041a0000047a0000013d00000044025000390000020803000041000000000032043500000024025000390000001f03000039000000000032043500000209020000410000000000250435000000040250003900000020030000390000000000320435000001d802000041000001d80350009c0000000001020019000000000105401900000040011002100000020a011001c70000075c000104300000008001300210000000000114019f0000000302000039000000000012041c00000000010000190000075b0001042e000000400200043d000000200300003900000000033204360000000000130435000002040120009c000004640000a13d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d00000044021000390000022f0300004100000000003204350000020902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000004001200039000000400010043f000001d801000041000001d80430009c000000000301801900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000501043b000000400100043d0000000000510435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000703000039000000000303041a00000201033001970000000504000029000000000334004b000004a30000813d000000400100043d000000a4021000390000021203000041000000000032043500000084021000390000021303000041000000000032043500000064021000390000021403000041000000000032043500000044021000390000021503000041000000000032043500000024021000390000006103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c0000000001028019000000400110021000000216011001c70000075c000104300000000303000029000000000303004b0000025a0000c13d000000400100043d00000064021000390000021003000041000000000032043500000044021000390000021103000041000000000032043500000024021000390000003f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000604000029000000000443004b000004c40000613d000002010230009c000004ed0000c13d000001140000013d0000000604000029000000000443004b000004ed0000c13d000000000102004b000005370000c13d00000005010000290000000202000029000000000112004b000005750000c13d0000000601000029000000010110008a000002010210009c000001140000213d0000020101100197000001012110011a0000000b01200039000000000101041a0000000402000029000000000112004b000005cf0000c13d0000000301000029000000000101004b000005c90000613d000000400100043d00000064021000390000022403000041000000000032043500000044021000390000022503000041000000000032043500000024021000390000003c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000001023000390000000604000029000000000242004b000005640000c13d000000010230008a000002010420009c000001140000213d0000020102200197000001014220011a0000000b02400039000000000402041a0000000a02000039000000000502041a000000400200043d0000008006200039000000000056043500000060052000390000000000450435000000400420003900000002050000290000000000540435000000200420003900000000003404350000000000120435000002170120009c0000044d0000213d000000a001200039000000400010043f000001d801000041000001d80340009c0000000003010019000000000304401900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000112004b000005e40000c13d000000400100043d00000005020000290000000203000029000000000232004b0000060e0000a13d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a000002010210009c000001140000213d000005c20000013d000000400100043d00000064021000390000021e03000041000000000032043500000044021000390000021f03000041000000000032043500000024021000390000003503000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000601000029000000000101004b0000058a0000c13d000000400100043d00000064021000390000022a03000041000000000032043500000044021000390000022b03000041000000000032043500000024021000390000002c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400200043d000600000002001d000002090100004100000000001204350000000401200039075a06980000040f00000006040000290000000001410049000001d802000041000001d80310009c0000000001028019000001d80340009c000000000204401900000040022002100000006001100210000000000121019f0000075c00010430000000400100043d00000064021000390000022003000041000000000032043500000044021000390000022103000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d0000000402000039000000000221043600000006030000290000020103300041000200000003001d000000e0033002100000000000320435000002040310009c0000044d0000213d0000004003100039000000400030043f000001d803000041000001d80420009c000000000203801900000040022002100000000001010433000001d80410009c00000000010380190000006001100210000000000121019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000121004b000005f90000c13d00000002010000290000020101100197000001012110011a0000000b012000390000000402000029000000000021041b000000400100043d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a0000020101100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b000000060100002900000003020000290000000503000029075a06aa0000040f00000000010000190000075b0001042e000000400100043d00000064021000390000022203000041000000000032043500000044021000390000022303000041000000000032043500000024021000390000003303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000021803000041000000000032043500000044021000390000021903000041000000000032043500000024021000390000002603000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000022803000041000000000032043500000044021000390000022903000041000000000032043500000024021000390000002703000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000084021000390000021a03000041000000000032043500000064021000390000021b03000041000000000032043500000044021000390000021c03000041000000000032043500000024021000390000005d03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c00010430000001d803000041000001d80410009c00000000010380190000004001100210000001d80420009c00000000020380190000006002200210000000000112019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000006390000613d000000000101043b000000000001042d00000000010000190000075c00010430000000000101004b0000063e0000613d000000000001042d000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000022e0210009c000006550000813d0000004001100039000000400010043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d0000022e0210009c000006610000813d0000004002100039000000400020043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006740000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006870000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c000104300000020101100197000002010210009c000006920000613d0000000101100039000000000001042d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c0001043000000040021000390000023003000041000000000032043500000020021000390000001b030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0000000021010434000002010110019700000000020204330000008002200210000000000112019f0000000702000039000000000012041b000000000001042d0000010d04000039000000000504041a000002050550009c000006c20000813d000000400500043d0000022e0650009c000006eb0000813d0000004006500039000000400060043f0000010c08000039000000000708041a0000020106700197000000000665043600000080077002700000000000760435000000000808041a000002010880009c000006bf0000213d00000000080504330000020108800198000006c50000613d0000020102200198000006d10000c13d000006ea0000013d0000000901000039000000000101041a000006e80000013d0000000707000039000000000707041a00000080077002700000000000760435000000000804041a0000023108800197000000000778019f000000000074041b0000020102200198000006f70000613d0000000007060433000000010220008a00000201077001970000000002270019000002050720009c000006f10000813d000000000026043500000201033001970000000000350435000002010210019700000000070604330000020108700197000000000828004b000006e50000413d0000008001100210000000000304041a0000020103300197000000000113019f000000000014041b00000000002604350000000003050433000000000702001900000201013001970000008002700210000000000112019f0000010c02000039000000000012041b000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000000400100043d00000064021000390000023203000041000000000032043500000044021000390000023303000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000000101004b0000070f0000613d000000000001042d000000400100043d00000064021000390000023403000041000000000032043500000044021000390000023503000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000002010110019700000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000007340000613d000000000101043b000000000001042d00000000010000190000075c0001043000000201011001970000000902000039000000000202041a0000020102200197000000000121004b0000073d0000a13d000000000001042d000000400100043d00000084021000390000023603000041000000000032043500000064021000390000023703000041000000000032043500000044021000390000023803000041000000000032043500000024021000390000005303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c0001043000000758002104230000000102000039000000000001042d0000000002000019000000000001042d0000075a000004320000075b0001042e0000075c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000004000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000002067726561746572207468616e203000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062650000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffffff9f656174656420617420746865207374617274206f6620746865206261746368005468657265206d7573742062652061207669727475616c20626c6f636b206372680000000000000000000000000000000000000000000000000000000000000068652074696d657374616d70206f66207468652063757272656e74206261746373742062652067726561746572207468616e206f7220657175616c20746f20745468652074696d657374616d70206f6620746865204c3220626c6f636b206d7500000000000000000000000000000000000000c4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f6f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e6374616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a40000000000000000000000006f6d207468652070726576696f7573206261746368000000000000000000000043616e206e6f74207265757365204c3220626c6f636b206e756d626572206672636b206d7573742062652073616d6500000000000000000000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f20626c6f636b206d7573742062652073616d65000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220746865206d6964646c65206f6620746865206d696e69626c6f636b0000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696e6420746f206265207a65726f00000000000000000000000000000000000000004c3220626c6f636b206e756d626572206973206e657665722065787065637465740000000000000000000000000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273000000000000000000000000000000000000000000000000ffffffffffffffc054696d657374616d70732073686f756c6420626520696e6372656d656e74616c496e76616c6964206e6577204c3220626c6f636b206e756d6265720000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a652074686520666972737420766972747520636f72726563740000000000000000000000000000000000000000000000005468652070726f766964656420626c6f636b206e756d626572206973206e6f74207468652070726576696f757320626c6f636b0000000000000000000000000062652067726561746572207468616e207468652074696d657374616d70206f665468652074696d657374616d70206f6620746865206261746368206d7573742000000000000000000000000000000000000000000000000000000000000000000be0c6cf64037e617675286e231b21587c8dedaf2b373135e6ddfb43a22f29d2", - "deployedBytecode": "0x0002000000000002000600000000000200010000000103550000006001100270000001d80010019d0000008001000039000000400010043f0000000102200190000000370000c13d0000000002000031000000040220008c000003ea0000413d0000000102000367000000000202043b000000e002200270000001dc0320009c0000004a0000213d000001ee0320009c000000580000a13d000001ef0120009c000000b10000a13d000001f00120009c0000013d0000213d000001f30120009c0000019d0000613d000001f40120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000020101100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000001d8010000410000000302000039000000000012041b0000000401000039000000000201041a000001d90220019700008001022001bf000000000021041b000001da010000410000000502000039000000000012041b000000200100003900000100001004430000012000000443000001db010000410000075b0001042e000001dd0120009c0000008b0000a13d000001de0120009c000000d20000a13d000001df0120009c0000017e0000213d000001e20120009c000001b80000613d000001e30120009c000003ea0000c13d0000000001000416000000000101004b000001bb0000613d000003ea0000013d000001f80320009c000000f50000213d000001fc0320009c000001d60000613d000001fd0320009c0000022a0000613d000001fe0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000000a05000039000000000305041a000000400200043d0000002001200039000000000031043500000004030000390000000103300367000000000303043b00000040042000390000000000340435000000400300003900000000003204350000020f0320009c0000044d0000213d0000006003200039000000400030043f0000000002020433000600000005001d075a06250000040f0000000602000029000000000012041b00000000010000190000075b0001042e000001e70120009c0000011a0000213d000001eb0120009c000002840000613d000001ec0120009c000002880000613d000001ed0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a067a0000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e000001f50120009c000002a40000613d000001f60120009c000002c00000613d000001f70120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000601000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001e40120009c000002dc0000613d000001e50120009c000002f80000613d000001e60120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f00000004010000390000000101100367000000000101043b0000000202000039000000000012041b00000000010000190000075b0001042e000001f90120009c0000031c0000613d000001fa0120009c000003370000613d000001fb0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c000003fe0000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000004210000c13d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000001e80120009c000003600000613d000001e90120009c0000037c0000613d000001ea0120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f00000201022001970000008001100210000000000121019f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000001f10120009c000003960000613d000001f20120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000000400200043d000002040320009c0000044d0000213d0000010c03000039000000000503041a0000004003200039000000400030043f0000010d03000039000000000403041a00000201034001970000000006320436000000800340027000000000003604350000008006500270000000000516004b00000000050000190000047a0000a13d0000000005160049000001010550008c00000000050000190000047a0000813d00000000020204330000020102200197000000000221004b000004270000813d00000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b000000000501041a0000047a0000013d000001e00120009c000003d90000613d000001e10120009c000003ea0000c13d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000201000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000301000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d075a06670000040f0000020102200197000000400300043d0000002004300039000000000024043500000201011001970000000000130435000001d801000041000001d80230009c0000000001034019000000400110021000000202011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000800310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000001010003670000000402100370000000000202043b000600000002001d0000002402100370000000000202043b0000000004020019000002010220009c000003ea0000213d0000004401100370000000000101043b000500000001001d000002010110009c000003ea0000213d000000400500043d0000000002000411000080010220008c0000042f0000c13d0000022e0250009c0000044d0000813d0000004002500039000000400020043f0000000702000039000000000202041a00000020035000390000008001200270000000000013043500000201022001970000000000250435000400000004001d000000000224004b000004530000a13d000300000001001d075a068d0000040f0000000502000029000000000121013f000002010110019800000000010000190000000101006039075a070c0000040f0000000401000029075a07360000040f0000000301000029075a07240000040f0000000602000029000000000021041b0000000301000029075a068d0000040f000500000001001d075a065b0000040f000000050200002900000201022001970000002003100039000000000023043500000004020000290000000000210435075a06a20000040f00000064010000390000000101100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000075b0001042e0000000002000416000000000202004b000003ea0000c13d000000040200008a0000000002200031000001ff03000041000000a00420008c00000000040000190000000004034019000001ff02200197000000000502004b000000000300a019000001ff0220009c00000000020400190000000002036019000000000202004b000003ea0000c13d00000001030003670000000402300370000000000202043b000600000002001d000002010220009c000003ea0000213d0000002402300370000000000202043b000500000002001d000002010220009c000003ea0000213d0000004402300370000000000202043b000400000002001d0000006402300370000000000202043b000000000402004b0000000004000019000000010400c039000000000442004b000003ea0000c13d0000008403300370000000000303043b000300000003001d000002010330009c000003ea0000213d0000000003000411000080010330008c000003fe0000c13d000000000302004b000004820000c13d000000400400043d000002040340009c0000044d0000213d0000004003400039000000400030043f0000000903000039000100000003001d000000000503041a0000002006400039000000800350027000000000003604350000020106500197000200000006001d0000000000640435000002010450009c000004bb0000213d0000000204000029000000000404004b000004c10000c13d000000000102004b0000054c0000c13d000000400100043d00000064021000390000022c03000041000000000032043500000044021000390000022d03000041000000000032043500000024021000390000002103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000003dc0000013d0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010e01000039000000000101041a0000ffff0110018f000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000010e01000039000000000201041a0000020e02200197000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000010c01000039000000000101041a0000008001100270000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000401000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d00000004010000390000000101100367000000000101043b000600000001001d000002030110009c000003ea0000213d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f0000000101000039000000000201041a000001d9022001970000000603000029000000000232019f000000000021041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000501000039000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000600310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000001000411000080010110008c00000000010000190000000101006039075a063b0000040f000000400100043d075a06500000040f00000001010003670000002402100370000000000202043b00000080022002100000000401100370000000000101043b0000020101100197000000000121019f0000000702000039000000000012041b00000044010000390000000101100367000000000101043b0000000602000039000000000012041b00000000010000190000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d0000000101000039000000000101041a0000020301100197000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d000000000200041a0000000000210435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000000301004b00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ea0000c13d000000400100043d0000000002000411000080010220008c000004100000c13d000002040210009c0000044d0000213d0000004002100039000000400020043f0000000702000039000000000202041a00000020031000390000008004200270000000000043043500000201032001970000000000310435000000400100043d000002040410009c0000044d0000213d0000004004100039000000400040043f0000000904000039000000000404041a00000020051000390000008006400270000000000065043500000201044001970000000000410435000002010120009c000004410000213d000000400100043d00000064021000390000020b03000041000000000032043500000044021000390000020c03000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000001000416000000000101004b000003ea0000c13d000000040100008a0000000001100031000001ff02000041000000200310008c00000000030000190000000003024019000001ff01100197000000000401004b000000000200a019000001ff0110009c00000000010300190000000001026019000000000101004b000003ec0000613d00000000010000190000075c0001043000000004010000390000000101100367000000000101043b00000000001004350000000801000039000000200010043f00000040020000390000000001000019075a06250000040f000000000101041a000000400200043d0000000000120435000001d801000041000001d80320009c0000000001024019000000400110021000000200011001c70000075b0001042e000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c0001043000000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000020e022001970000000103300039000000000223019f000000000021041b00000000010000190000075b0001042e000002050240009c000004470000413d000000000231004b000004470000413d000001012110011a0000000b01200039000000000501041a0000047a0000013d00000044025000390000020803000041000000000032043500000024025000390000001f03000039000000000032043500000209020000410000000000250435000000040250003900000020030000390000000000320435000001d802000041000001d80350009c0000000001020019000000000105401900000040011002100000020a011001c70000075c000104300000008001300210000000000114019f0000000302000039000000000012041c00000000010000190000075b0001042e000000400200043d000000200300003900000000033204360000000000130435000002040120009c000004640000a13d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d00000044021000390000022f0300004100000000003204350000020902000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000004001200039000000400010043f000001d801000041000001d80430009c000000000301801900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000501043b000000400100043d0000000000510435000001d802000041000001d80310009c0000000001028019000000400110021000000200011001c70000075b0001042e0000000703000039000000000303041a00000201033001970000000504000029000000000334004b000004a30000813d000000400100043d000000a4021000390000021203000041000000000032043500000084021000390000021303000041000000000032043500000064021000390000021403000041000000000032043500000044021000390000021503000041000000000032043500000024021000390000006103000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c0000000001028019000000400110021000000216011001c70000075c000104300000000303000029000000000303004b0000025a0000c13d000000400100043d00000064021000390000021003000041000000000032043500000044021000390000021103000041000000000032043500000024021000390000003f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000604000029000000000443004b000004c40000613d000002010230009c000004ed0000c13d000001140000013d0000000604000029000000000443004b000004ed0000c13d000000000102004b000005370000c13d00000005010000290000000202000029000000000112004b000005750000c13d0000000601000029000000010110008a000002010210009c000001140000213d0000020101100197000001012110011a0000000b01200039000000000101041a0000000402000029000000000112004b000005cf0000c13d0000000301000029000000000101004b000005c90000613d000000400100043d00000064021000390000022403000041000000000032043500000044021000390000022503000041000000000032043500000024021000390000003c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000001023000390000000604000029000000000242004b000005640000c13d000000010230008a000002010420009c000001140000213d0000020102200197000001014220011a0000000b02400039000000000402041a0000000a02000039000000000502041a000000400200043d0000008006200039000000000056043500000060052000390000000000450435000000400420003900000002050000290000000000540435000000200420003900000000003404350000000000120435000002170120009c0000044d0000213d000000a001200039000000400010043f000001d801000041000001d80340009c0000000003010019000000000304401900000040033002100000000002020433000001d80420009c00000000020180190000006002200210000000000232019f0000000003000414000001d80430009c0000000001034019000000c001100210000000000121019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000112004b000005e40000c13d000000400100043d00000005020000290000000203000029000000000232004b0000060e0000a13d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a000002010210009c000001140000213d000005c20000013d000000400100043d00000064021000390000021e03000041000000000032043500000044021000390000021f03000041000000000032043500000024021000390000003503000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c000104300000000601000029000000000101004b0000058a0000c13d000000400100043d00000064021000390000022a03000041000000000032043500000044021000390000022b03000041000000000032043500000024021000390000002c03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400200043d000600000002001d000002090100004100000000001204350000000401200039075a06980000040f00000006040000290000000001410049000001d802000041000001d80310009c0000000001028019000001d80340009c000000000204401900000040022002100000006001100210000000000121019f0000075c00010430000000400100043d00000064021000390000022003000041000000000032043500000044021000390000022103000041000000000032043500000024021000390000002f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d0000000402000039000000000221043600000006030000290000020103300041000200000003001d000000e0033002100000000000320435000002040310009c0000044d0000213d0000004003100039000000400030043f000001d803000041000001d80420009c000000000203801900000040022002100000000001010433000001d80410009c00000000010380190000006001100210000000000121019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000003ea0000613d000000000101043b0000000402000029000000000121004b000005f90000c13d00000002010000290000020101100197000001012110011a0000000b012000390000000402000029000000000021041b000000400100043d000002040210009c0000044d0000213d0000004002100039000000400020043f000000200210003900000006030000290000000000320435000000050200002900000000002104350000008001300210000000000112019f0000000102000029000000000012041b000000010130008a0000020101100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b000000060100002900000003020000290000000503000029075a06aa0000040f00000000010000190000075b0001042e000000400100043d00000064021000390000022203000041000000000032043500000044021000390000022303000041000000000032043500000024021000390000003303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000021803000041000000000032043500000044021000390000021903000041000000000032043500000024021000390000002603000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000400100043d00000064021000390000022803000041000000000032043500000044021000390000022903000041000000000032043500000024021000390000002703000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c0001043000000084021000390000021a03000041000000000032043500000064021000390000021b03000041000000000032043500000044021000390000021c03000041000000000032043500000024021000390000005d03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c00010430000001d803000041000001d80410009c00000000010380190000004001100210000001d80420009c00000000020380190000006002200210000000000112019f0000000002000414000001d80420009c0000000002038019000000c002200210000000000112019f00000206011001c70000801002000039075a07550000040f0000000102200190000006390000613d000000000101043b000000000001042d00000000010000190000075c00010430000000000101004b0000063e0000613d000000000001042d000000400100043d00000044021000390000020803000041000000000032043500000024021000390000001f03000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020a011001c70000075c000104300000022e0210009c000006550000813d0000004001100039000000400010043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400100043d0000022e0210009c000006610000813d0000004002100039000000400020043f000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006740000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000000400300043d0000022e0130009c000006870000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000201022001970000000000230435000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c000104300000020101100197000002010210009c000006920000613d0000000101100039000000000001042d000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c0001043000000040021000390000023003000041000000000032043500000020021000390000001b030000390000000000320435000000200200003900000000002104350000006001100039000000000001042d0000000021010434000002010110019700000000020204330000008002200210000000000112019f0000000702000039000000000012041b000000000001042d0000010d04000039000000000504041a000002050550009c000006c20000813d000000400500043d0000022e0650009c000006eb0000813d0000004006500039000000400060043f0000010c08000039000000000708041a0000020106700197000000000665043600000080077002700000000000760435000000000808041a000002010880009c000006bf0000213d00000000080504330000020108800198000006c50000613d0000020102200198000006d10000c13d000006ea0000013d0000000901000039000000000101041a000006e80000013d0000000707000039000000000707041a00000080077002700000000000760435000000000804041a0000023108800197000000000778019f000000000074041b0000020102200198000006f70000613d0000000007060433000000010220008a00000201077001970000000002270019000002050720009c000006f10000813d000000000026043500000201033001970000000000350435000002010210019700000000070604330000020108700197000000000828004b000006e50000413d0000008001100210000000000304041a0000020103300197000000000113019f000000000014041b00000000002604350000000003050433000000000702001900000201013001970000008002700210000000000112019f0000010c02000039000000000012041b000000000001042d000002260100004100000000001004350000004101000039000000040010043f00000227010000410000075c00010430000002260100004100000000001004350000001101000039000000040010043f00000227010000410000075c00010430000000400100043d00000064021000390000023203000041000000000032043500000044021000390000023303000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000000000101004b0000070f0000613d000000000001042d000000400100043d00000064021000390000023403000041000000000032043500000044021000390000023503000041000000000032043500000024021000390000002803000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000020d011001c70000075c00010430000002010110019700000000001004350000000801000039000000200010043f000001d8010000410000000002000414000001d80320009c0000000001024019000000c00110021000000207011001c70000801002000039075a07550000040f0000000102200190000007340000613d000000000101043b000000000001042d00000000010000190000075c0001043000000201011001970000000902000039000000000202041a0000020102200197000000000121004b0000073d0000a13d000000000001042d000000400100043d00000084021000390000023603000041000000000032043500000064021000390000023703000041000000000032043500000044021000390000023803000041000000000032043500000024021000390000005303000039000000000032043500000209020000410000000000210435000000040210003900000020030000390000000000320435000001d802000041000001d80310009c000000000102801900000040011002100000021d011001c70000075c0001043000000758002104230000000102000039000000000001042d0000000002000019000000000001042d0000075a000004320000075b0001042e0000075c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf00000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000004000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f616465720008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000002067726561746572207468616e203000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062650000000000000000000000000000000000000084000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000ffffffffffffff9f656174656420617420746865207374617274206f6620746865206261746368005468657265206d7573742062652061207669727475616c20626c6f636b206372680000000000000000000000000000000000000000000000000000000000000068652074696d657374616d70206f66207468652063757272656e74206261746373742062652067726561746572207468616e206f7220657175616c20746f20745468652074696d657374616d70206f6620746865204c3220626c6f636b206d7500000000000000000000000000000000000000c4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f6f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e6374616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a40000000000000000000000006f6d207468652070726576696f7573206261746368000000000000000000000043616e206e6f74207265757365204c3220626c6f636b206e756d626572206672636b206d7573742062652073616d6500000000000000000000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f20626c6f636b206d7573742062652073616d65000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220746865206d6964646c65206f6620746865206d696e69626c6f636b0000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e4e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696e6420746f206265207a65726f00000000000000000000000000000000000000004c3220626c6f636b206e756d626572206973206e657665722065787065637465740000000000000000000000000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273000000000000000000000000000000000000000000000000ffffffffffffffc054696d657374616d70732073686f756c6420626520696e6372656d656e74616c496e76616c6964206e6577204c3220626c6f636b206e756d6265720000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a652074686520666972737420766972747520636f72726563740000000000000000000000000000000000000000000000005468652070726f766964656420626c6f636b206e756d626572206973206e6f74207468652070726576696f757320626c6f636b0000000000000000000000000062652067726561746572207468616e207468652074696d657374616d70206f665468652074696d657374616d70206f6620746865206261746368206d7573742000000000000000000000000000000000000000000000000000000000000000000be0c6cf64037e617675286e231b21587c8dedaf2b373135e6ddfb43a22f29d2", + "bytecode": "0x0001000000000002000600000000000200000000000103550000008004000039000000400040043f0000000003010019000000600330027000000118033001970000000102200190000000210000c13d000000040230008c000003960000413d000000000201043b000000e0022002700000011c0520009c000000340000213d0000012e0520009c000000430000a13d0000012f0420009c0000007b0000a13d000001300420009c000000c80000213d000001330120009c000001100000613d000001340120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000014001100197000001f10000013d0000000001000416000000000101004b000003960000c13d00000118010000410000000302000039000000000012041b0000000401000039000000000201041a000001190220019700008001022001bf000000000021041b0000011a010000410000000502000039000000000012041b0000002001000039000001000010044300000120000004430000011b010000410000045a0001042e0000011d0420009c000000630000a13d0000011e0420009c000000860000a13d0000011f0420009c000000f80000213d000001220120009c0000003e0000613d000001230120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f0000006f0000013d000001380520009c0000009c0000213d0000013c0520009c000001150000613d0000013d0520009c000001570000613d0000013e0220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000002000411000080010220008c000002160000c13d0000000a02000039000600000002001d000000000202041a000000a00020043f0000000401100370000000000101043b000000c00010043f0000004002000039000000800020043f000000e001000039000000400010043f000000a0010000390459043e0000040f0000000602000029000001e30000013d000001270420009c000000b30000213d0000012b0420009c000001010000613d0000012c0120009c0000018f0000613d0000012d0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0459042b0000040f0000014002200197000000400300043d00000020043000390000000000240435000001400110019700000000001304350000011801000041000001180230009c0000000003018019000000400130021000000141011001c70000045a0001042e000001350120009c000001960000613d000001360120009c000001a20000613d000001370120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000601000039000001c70000013d000001240420009c000001a90000613d000001250420009c000001ae0000613d000001260120009c000003960000c13d0000000001000416000000000101004b000003960000c13d000000040130008a000000200110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f00000004010000390000000001100367000000000101043b0000000202000039000001e30000013d000001390120009c000001c30000613d0000013a0120009c000001c90000613d0000013b0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000002200000c13d0000017b0100004100000000001004350000001101000039000000040010043f0000017c010000410000045b00010430000001280120009c000001e60000613d000001290120009c000001ed0000613d0000012a0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f00000140022001970000008001100210000000000121019f000000400200043d00000000001204350000011801000041000001180320009c0000000002018019000000400120021000000143011001c70000045a0001042e000001310420009c000001f40000613d000001320220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b0000010c02000039000000000202041a000000c003000039000000400030043f00000080062002700000010d02000039000000000302041a0000014005300197000000800050043f0000008002300270000000a00020043f000000000416004b0000000004000019000002440000a13d0000000004160049000001010440008c0000000004000019000002440000813d000000000451004b000002260000813d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000101043b000000000401041a000002440000013d000001200420009c000001010000613d000001210120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000201000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b00000000001004350000000801000039000000200010043f000000400200003900000000010000190459043e0000040f000001c70000013d0000000001000416000000000101004b000003960000c13d0000000301000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000800220008c000003960000413d0000000402100370000000000302043b0000002402100370000000000402043b000001400240009c000003960000213d0000004401100370000000000501043b000001400150009c000003960000213d0000000001000411000080010110008c000002160000c13d000000c001000039000000400010043f0000000706000039000000000106041a0000014002100197000000800020043f0000008001100270000000a00010043f000000000224004b0000024c0000a13d000001400210009c000000ad0000613d0000000102100039000000000252004b000002550000c13d000300000006001d000400000005001d000600000003001d0000000902000039000000000202041a0000014002200197000500000004001d000000000224004b000002610000a13d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f00000001022001900000000602000029000003960000613d000000000101043b000000000021041b000000400100043d0000015e0210009c000003110000a13d0000017b0100004100000000001004350000004101000039000000b00000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000a00220008c000003960000413d0000000402100370000000000602043b000001400260009c000003960000213d0000002402100370000000000502043b000001400250009c000003960000213d0000004402100370000000000702043b0000006402100370000000000202043b000000000302004b0000000003000019000000010300c039000000000332004b000003960000c13d0000008401100370000000000301043b000001400130009c000003960000213d0000000001000411000080010110008c000002160000c13d000000000102004b000600000003001d000400000007001d0000027e0000613d0000000701000039000000000101041a00000140011001970000000003050019000000000115004b0000026f0000813d0000014701000041000000800010043f0000002001000039000000840010043f0000006101000039000000a40010043f0000014f01000041000000c40010043f0000015001000041000000e40010043f0000015101000041000001040010043f0000015201000041000001240010043f00000153010000410000045b000104300000000001000416000000000101004b000003960000c13d0000010e01000039000000000101041a0000ffff0110018f000001f10000013d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f0000010e01000039000000000201041a0000014b02200197000002230000013d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000008001100270000001f10000013d0000000001000416000000000101004b000003960000c13d0000000401000039000001ea0000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000201043b000001420120009c000003960000213d0000000001000411000080010110008c00000000010000190000000101006039000600000002001d045903f80000040f0000000101000039000000000201041a000001190220019700000006022001af000002230000013d0000000001000416000000000101004b000003960000c13d0000000501000039000000000101041a000001f10000013d0000000001000416000000000101004b000003960000c13d000000040130008a000000600110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f000000400100043d0459040d0000040f00000000010003670000002402100370000000000202043b00000080022002100000000403100370000000000303043b0000014003300197000000000223019f0000000703000039000000000023041b0000004401100370000000000101043b0000000602000039000000000012041b00000000010000190000045a0001042e0000000001000416000000000101004b000003960000c13d0000000101000039000000000101041a0000014201100197000001f10000013d0000000001000416000000000101004b000003960000c13d000000000100041a000000800010043f0000013f010000410000045a0001042e0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000000701000039000000000301041a0000014001300197000000800010043f0000008002300270000000a00020043f0000010002000039000000400020043f0000000902000039000000000402041a0000014002400197000000c00020043f0000008004400270000000e00040043f000001400330009c0000022e0000213d0000014701000041000001000010043f0000002001000039000001040010043f0000002f01000039000001240010043f0000014801000041000001440010043f0000014901000041000001640010043f0000014a010000410000045b000104300000014701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000017201000041000000c40010043f00000173010000410000045b000104300000014b022001970000000103300039000000000223019f000000000021041b00000000010000190000045a0001042e000001440330009c000002340000413d000000000221004b000002340000413d000001012110011a0000000b01200039000000000401041a000002440000013d0000008001100210000000000112019f0000000302000039000000000012041c00000000010000190000045a0001042e000000e00010043f0000002001000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000145011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000401043b000000400100043d00000000004104350000011802000041000001180310009c0000000001028019000000400110021000000143011001c70000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f000000e40010043f0000017401000041000001040010043f00000155010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000002801000039000000e40010043f0000017501000041000001040010043f0000017601000041000001240010043f00000161010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000005301000039000000e40010043f0000017701000041000001040010043f0000017801000041000001240010043f0000017901000041000001440010043f0000017a010000410000045b00010430000000060100006b00000000050300190000027e0000c13d0000014701000041000000800010043f0000002001000039000000840010043f0000003f01000039000000a40010043f0000014c01000041000000c40010043f0000014d01000041000000e40010043f0000014e010000410000045b00010430000200000005001d000000c001000039000000400010043f0000000901000039000100000001001d000000000301041a0000014005300197000000800050043f0000008001300270000000a00010043f000001400330009c000500000006001d000300000005001d0000029a0000213d000000000305004b0000029f0000c13d000000000102004b000002fd0000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002101000039000000e40010043f0000017001000041000001040010043f00000171010000410000025e0000013d000000000361004b000002a10000613d000001400210009c000000ad0000613d000002bc0000013d000000050310006c000002bc0000c13d000000000102004b000002f30000c13d0000000302000029000000020120006c000003270000c13d0000000501000029000000010110008a000001400210009c000000ad0000213d0000014001100197000001012110011a0000000b01200039000000000101041a000000040110006b000003980000c13d000000060100006b000003640000613d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003c01000039000000e40010043f0000016601000041000001040010043f00000167010000410000025e0000013d0000000102100039000000050220006c000003090000c13d000000010210008a000001400320009c000000ad0000213d0000000a03000039000000000303041a0000014002200197000001015220011a0000000b02500039000000000202041a000000e00010043f0000000301000029000001000010043f000001200020043f000001400030043f000000c00040043f0000016001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000156011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000113004b000003a20000c13d0000000303000029000000020130006b000003c50000a13d0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a000001400210009c000000ad0000213d0000035d0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003501000039000000e40010043f0000015f01000041000001040010043f00000160010000410000025e0000013d000000050100006b000003310000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002c01000039000000e40010043f0000016e01000041000001040010043f0000016f010000410000025e0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000001b01000039000000e40010043f0000015401000041000002520000013d0000004002100039000000400020043f0000002002100039000000040300002900000000003204350000000502000029000000000021043500000080013002100000014002200197000000000112019f0000000302000029000000000012041b00000064010000390000000001100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f0000002f01000039000000e40010043f0000016201000041000001040010043f00000163010000410000025e0000013d00000005010000290000014001100041000300000001001d000000e001100210000000e00010043f0000000401000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000168011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000131004b000003ab0000c13d00000003010000290000014001100197000001013110011a0000000b013000390000000403000029000000000031041b0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a0000014001100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b0000010d01000039000000000201041a000001440320009c000003bf0000813d000000400300043d0000015e0430009c000001530000213d0000004004300039000000400040043f0000010c04000039000000000604041a0000014004600197000000000443043600000080056002700000000000540435000001400660009c000003dc0000213d00000000060304330000014006600198000003dc0000c13d0000000705000039000000000505041a000000800550027000000000005404350000016b02200197000000000225019f000000000021041b000000060600006b000003df0000c13d000000400100043d00000064021000390000016c03000041000000000032043500000044021000390000016d030000410000000000320435000000240210003900000028030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c0000000001028019000000400110021000000159011001c70000045b0001043000000000010000190000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000003301000039000000e40010043f0000016401000041000001040010043f00000165010000410000025e0000013d00000064012000390000015703000041000000000031043500000044012000390000015803000041000000000031043500000024012000390000002603000039000003b30000013d00000064012000390000016903000041000000000031043500000044012000390000016a030000410000000000310435000000240120003900000027030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c0000000002018019000000400120021000000159011001c70000045b000104300000000101000029000000000101041a0000010c02000039000000000012041b00000000010000190000045a0001042e00000084012000390000015a03000041000000000031043500000064012000390000015b03000041000000000031043500000044012000390000015c03000041000000000031043500000024012000390000005d030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c000000000201801900000040012002100000015d011001c70000045b00010430000000060600006b000003e10000c13d000003c30000013d000000060600002900060001006000920000000605500029000001400650009c000000ad0000213d00000000005404350000000205000029000000000053043500000000050404330000014006500197000000050660006c000003ed0000813d0000008005500210000003f40000013d00000005060000290000008005600210000000000252019f000000000021041b00000000006404350000000001030433000200000001001d00000002010000290000014001100197000000000151019f000003c10000013d000000000101004b000003fb0000613d000000000001042d000000400100043d00000044021000390000017203000041000000000032043500000024021000390000001f030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c000000000102801900000040011002100000017d011001c70000045b000104300000017e0210009c000004120000813d0000004001100039000000400010043f000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004250000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004380000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b000104300000011803000041000001180410009c00000000010380190000004001100210000001180420009c00000000020380190000006002200210000000000112019f0000000002000414000001180420009c0000000002038019000000c002200210000000000112019f0000017f011001c70000801002000039045904540000040f0000000102200190000004520000613d000000000101043b000000000001042d00000000010000190000045b0001043000000457002104230000000102000039000000000001042d0000000002000019000000000001042d00000459000004320000045a0001042e0000045b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000020000000e00000000000000000020000000000000000000000000000000000004000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062652067726561746572207468616e203000000000000000000000000000000000000000000000000000000000000000000000000084000001000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00005468657265206d7573742062652061207669727475616c20626c6f636b206372656174656420617420746865207374617274206f66207468652062617463680000000000000000000000000000000000000000840000008000000000000000005468652074696d657374616d70206f6620746865204c3220626c6f636b206d7573742062652067726561746572207468616e206f7220657175616c20746f207468652074696d657374616d70206f66207468652063757272656e742062617463680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4000000800000000000000000496e76616c6964206e6577204c3220626c6f636b206e756d62657200000000000000000000000000000000000000000000000064000000c000000000000000000200000000000000000000000000000000000080000000e000000000000000006f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e63000000000000000000000000000000000000008400000000000000000000000074616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf43616e206e6f74207265757365204c3220626c6f636b206e756d6265722066726f6d207468652070726576696f757320626174636800000000000000000000000000000000000000000000000000000000000084000000c000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d6500000000000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d650000000000000000000000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e20746865206d6964646c65206f6620746865206d696e69626c6f636b000000000200000000000000000000000000000000000004000000e00000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696effffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a65207468652066697273742076697274754c3220626c6f636b206e756d626572206973206e6576657220657870656374656420746f206265207a65726f000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273740000000000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f6164657200000000000000000000000000000000000000006400000080000000000000000054696d657374616d70732073686f756c6420626520696e6372656d656e74616c5468652070726f766964656420626c6f636b206e756d626572206973206e6f7420636f72726563740000000000000000000000000000000000000000000000005468652074696d657374616d70206f6620746865206261746368206d7573742062652067726561746572207468616e207468652074696d657374616d70206f66207468652070726576696f757320626c6f636b0000000000000000000000000000000000000000000000000000000000000000a4000000c000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc0020000000000000000000000000000000000000000000000000000000000000062ab76af9f7a5ed8b3b2b2b21425656a7fcc2662625674f9d12b72e6c688b431", + "deployedBytecode": "0x0001000000000002000600000000000200000000000103550000008004000039000000400040043f0000000003010019000000600330027000000118033001970000000102200190000000210000c13d000000040230008c000003960000413d000000000201043b000000e0022002700000011c0520009c000000340000213d0000012e0520009c000000430000a13d0000012f0420009c0000007b0000a13d000001300420009c000000c80000213d000001330120009c000001100000613d000001340120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000014001100197000001f10000013d0000000001000416000000000101004b000003960000c13d00000118010000410000000302000039000000000012041b0000000401000039000000000201041a000001190220019700008001022001bf000000000021041b0000011a010000410000000502000039000000000012041b0000002001000039000001000010044300000120000004430000011b010000410000045a0001042e0000011d0420009c000000630000a13d0000011e0420009c000000860000a13d0000011f0420009c000000f80000213d000001220120009c0000003e0000613d000001230120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f0000006f0000013d000001380520009c0000009c0000213d0000013c0520009c000001150000613d0000013d0520009c000001570000613d0000013e0220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000002000411000080010220008c000002160000c13d0000000a02000039000600000002001d000000000202041a000000a00020043f0000000401100370000000000101043b000000c00010043f0000004002000039000000800020043f000000e001000039000000400010043f000000a0010000390459043e0000040f0000000602000029000001e30000013d000001270420009c000000b30000213d0000012b0420009c000001010000613d0000012c0120009c0000018f0000613d0000012d0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0459042b0000040f0000014002200197000000400300043d00000020043000390000000000240435000001400110019700000000001304350000011801000041000001180230009c0000000003018019000000400130021000000141011001c70000045a0001042e000001350120009c000001960000613d000001360120009c000001a20000613d000001370120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000601000039000001c70000013d000001240420009c000001a90000613d000001250420009c000001ae0000613d000001260120009c000003960000c13d0000000001000416000000000101004b000003960000c13d000000040130008a000000200110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f00000004010000390000000001100367000000000101043b0000000202000039000001e30000013d000001390120009c000001c30000613d0000013a0120009c000001c90000613d0000013b0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000010e01000039000000000201041a0000ffff0320018f0000ffff0430008c000002200000c13d0000017b0100004100000000001004350000001101000039000000040010043f0000017c010000410000045b00010430000001280120009c000001e60000613d000001290120009c000001ed0000613d0000012a0120009c000003960000c13d0000000001000416000000000101004b000003960000c13d045904180000040f00000140022001970000008001100210000000000121019f000000400200043d00000000001204350000011801000041000001180320009c0000000002018019000000400120021000000143011001c70000045a0001042e000001310420009c000001f40000613d000001320220009c000003960000c13d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b0000010c02000039000000000202041a000000c003000039000000400030043f00000080062002700000010d02000039000000000302041a0000014005300197000000800050043f0000008002300270000000a00020043f000000000416004b0000000004000019000002440000a13d0000000004160049000001010440008c0000000004000019000002440000813d000000000451004b000002260000813d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000101043b000000000401041a000002440000013d000001200420009c000001010000613d000001210120009c000003960000c13d0000000001000416000000000101004b000003960000c13d0000000201000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000101043b00000000001004350000000801000039000000200010043f000000400200003900000000010000190459043e0000040f000001c70000013d0000000001000416000000000101004b000003960000c13d0000000301000039000001c70000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000800220008c000003960000413d0000000402100370000000000302043b0000002402100370000000000402043b000001400240009c000003960000213d0000004401100370000000000501043b000001400150009c000003960000213d0000000001000411000080010110008c000002160000c13d000000c001000039000000400010043f0000000706000039000000000106041a0000014002100197000000800020043f0000008001100270000000a00010043f000000000224004b0000024c0000a13d000001400210009c000000ad0000613d0000000102100039000000000252004b000002550000c13d000300000006001d000400000005001d000600000003001d0000000902000039000000000202041a0000014002200197000500000004001d000000000224004b000002610000a13d00000000001004350000000801000039000000200010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000146011001c70000801002000039045904540000040f00000001022001900000000602000029000003960000613d000000000101043b000000000021041b000000400100043d0000015e0210009c000003110000a13d0000017b0100004100000000001004350000004101000039000000b00000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000a00220008c000003960000413d0000000402100370000000000602043b000001400260009c000003960000213d0000002402100370000000000502043b000001400250009c000003960000213d0000004402100370000000000702043b0000006402100370000000000202043b000000000302004b0000000003000019000000010300c039000000000332004b000003960000c13d0000008401100370000000000301043b000001400130009c000003960000213d0000000001000411000080010110008c000002160000c13d000000000102004b000600000003001d000400000007001d0000027e0000613d0000000701000039000000000101041a00000140011001970000000003050019000000000115004b0000026f0000813d0000014701000041000000800010043f0000002001000039000000840010043f0000006101000039000000a40010043f0000014f01000041000000c40010043f0000015001000041000000e40010043f0000015101000041000001040010043f0000015201000041000001240010043f00000153010000410000045b000104300000000001000416000000000101004b000003960000c13d0000010e01000039000000000101041a0000ffff0110018f000001f10000013d0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f0000010e01000039000000000201041a0000014b02200197000002230000013d0000000001000416000000000101004b000003960000c13d0000010c01000039000000000101041a0000008001100270000001f10000013d0000000001000416000000000101004b000003960000c13d0000000401000039000001ea0000013d0000000002000416000000000202004b000003960000c13d000000040230008a000000200220008c000003960000413d0000000401100370000000000201043b000001420120009c000003960000213d0000000001000411000080010110008c00000000010000190000000101006039000600000002001d045903f80000040f0000000101000039000000000201041a000001190220019700000006022001af000002230000013d0000000001000416000000000101004b000003960000c13d0000000501000039000000000101041a000001f10000013d0000000001000416000000000101004b000003960000c13d000000040130008a000000600110008c000003960000413d0000000001000411000080010110008c00000000010000190000000101006039045903f80000040f000000400100043d0459040d0000040f00000000010003670000002402100370000000000202043b00000080022002100000000403100370000000000303043b0000014003300197000000000223019f0000000703000039000000000023041b0000004401100370000000000101043b0000000602000039000000000012041b00000000010000190000045a0001042e0000000001000416000000000101004b000003960000c13d0000000101000039000000000101041a0000014201100197000001f10000013d0000000001000416000000000101004b000003960000c13d000000000100041a000000800010043f0000013f010000410000045a0001042e0000000001000416000000000101004b000003960000c13d0000000001000411000080010110008c000002160000c13d0000000701000039000000000301041a0000014001300197000000800010043f0000008002300270000000a00020043f0000010002000039000000400020043f0000000902000039000000000402041a0000014002400197000000c00020043f0000008004400270000000e00040043f000001400330009c0000022e0000213d0000014701000041000001000010043f0000002001000039000001040010043f0000002f01000039000001240010043f0000014801000041000001440010043f0000014901000041000001640010043f0000014a010000410000045b000104300000014701000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000017201000041000000c40010043f00000173010000410000045b000104300000014b022001970000000103300039000000000223019f000000000021041b00000000010000190000045a0001042e000001440330009c000002340000413d000000000221004b000002340000413d000001012110011a0000000b01200039000000000401041a000002440000013d0000008001100210000000000112019f0000000302000039000000000012041c00000000010000190000045a0001042e000000e00010043f0000002001000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000145011001c70000801002000039045904540000040f0000000102200190000003960000613d000000000401043b000000400100043d00000000004104350000011802000041000001180310009c0000000001028019000000400110021000000143011001c70000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f000000e40010043f0000017401000041000001040010043f00000155010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000002801000039000000e40010043f0000017501000041000001040010043f0000017601000041000001240010043f00000161010000410000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000005301000039000000e40010043f0000017701000041000001040010043f0000017801000041000001240010043f0000017901000041000001440010043f0000017a010000410000045b00010430000000060100006b00000000050300190000027e0000c13d0000014701000041000000800010043f0000002001000039000000840010043f0000003f01000039000000a40010043f0000014c01000041000000c40010043f0000014d01000041000000e40010043f0000014e010000410000045b00010430000200000005001d000000c001000039000000400010043f0000000901000039000100000001001d000000000301041a0000014005300197000000800050043f0000008001300270000000a00010043f000001400330009c000500000006001d000300000005001d0000029a0000213d000000000305004b0000029f0000c13d000000000102004b000002fd0000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002101000039000000e40010043f0000017001000041000001040010043f00000171010000410000025e0000013d000000000361004b000002a10000613d000001400210009c000000ad0000613d000002bc0000013d000000050310006c000002bc0000c13d000000000102004b000002f30000c13d0000000302000029000000020120006c000003270000c13d0000000501000029000000010110008a000001400210009c000000ad0000213d0000014001100197000001012110011a0000000b01200039000000000101041a000000040110006b000003980000c13d000000060100006b000003640000613d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003c01000039000000e40010043f0000016601000041000001040010043f00000167010000410000025e0000013d0000000102100039000000050220006c000003090000c13d000000010210008a000001400320009c000000ad0000213d0000000a03000039000000000303041a0000014002200197000001015220011a0000000b02500039000000000202041a000000e00010043f0000000301000029000001000010043f000001200020043f000001400030043f000000c00040043f0000016001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000156011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000113004b000003a20000c13d0000000303000029000000020130006b000003c50000a13d0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a000001400210009c000000ad0000213d0000035d0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000003501000039000000e40010043f0000015f01000041000001040010043f00000160010000410000025e0000013d000000050100006b000003310000c13d0000014701000041000000c00010043f0000002001000039000000c40010043f0000002c01000039000000e40010043f0000016e01000041000001040010043f0000016f010000410000025e0000013d0000014701000041000000c00010043f0000002001000039000000c40010043f0000001b01000039000000e40010043f0000015401000041000002520000013d0000004002100039000000400020043f0000002002100039000000040300002900000000003204350000000502000029000000000021043500000080013002100000014002200197000000000112019f0000000302000029000000000012041b00000064010000390000000001100367000000000101043b0000000602000039000000000012041b00000004010000390000000602000029000000000021041c00000000010000190000045a0001042e0000014701000041000000c00010043f0000002001000039000000c40010043f0000002f01000039000000e40010043f0000016201000041000001040010043f00000163010000410000025e0000013d00000005010000290000014001100041000300000001001d000000e001100210000000e00010043f0000000401000039000000c00010043f0000010001000039000000400010043f00000118010000410000000002000414000001180320009c0000000002018019000000c00120021000000168011001c70000801002000039045904540000040f00000001022001900000000403000029000003960000613d000000400200043d000000000101043b000000000131004b000003ab0000c13d00000003010000290000014001100197000001013110011a0000000b013000390000000403000029000000000031041b0000015e0120009c000001530000213d0000004001200039000000400010043f000000200120003900000005040000290000000000410435000000020300002900000000003204350000008001400210000000000113019f0000000102000029000000000012041b000000010140008a0000014001100197000001012110011a0000000b012000390000000402000029000000000021041b0000000a01000039000000000001041b0000010d01000039000000000201041a000001440320009c000003bf0000813d000000400300043d0000015e0430009c000001530000213d0000004004300039000000400040043f0000010c04000039000000000604041a0000014004600197000000000443043600000080056002700000000000540435000001400660009c000003dc0000213d00000000060304330000014006600198000003dc0000c13d0000000705000039000000000505041a000000800550027000000000005404350000016b02200197000000000225019f000000000021041b000000060600006b000003df0000c13d000000400100043d00000064021000390000016c03000041000000000032043500000044021000390000016d030000410000000000320435000000240210003900000028030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c0000000001028019000000400110021000000159011001c70000045b0001043000000000010000190000045b000104300000014701000041000000c00010043f0000002001000039000000c40010043f0000003301000039000000e40010043f0000016401000041000001040010043f00000165010000410000025e0000013d00000064012000390000015703000041000000000031043500000044012000390000015803000041000000000031043500000024012000390000002603000039000003b30000013d00000064012000390000016903000041000000000031043500000044012000390000016a030000410000000000310435000000240120003900000027030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c0000000002018019000000400120021000000159011001c70000045b000104300000000101000029000000000101041a0000010c02000039000000000012041b00000000010000190000045a0001042e00000084012000390000015a03000041000000000031043500000064012000390000015b03000041000000000031043500000044012000390000015c03000041000000000031043500000024012000390000005d030000390000000000310435000001470100004100000000001204350000000401200039000000200300003900000000003104350000011801000041000001180320009c000000000201801900000040012002100000015d011001c70000045b00010430000000060600006b000003e10000c13d000003c30000013d000000060600002900060001006000920000000605500029000001400650009c000000ad0000213d00000000005404350000000205000029000000000053043500000000050404330000014006500197000000050660006c000003ed0000813d0000008005500210000003f40000013d00000005060000290000008005600210000000000252019f000000000021041b00000000006404350000000001030433000200000001001d00000002010000290000014001100197000000000151019f000003c10000013d000000000101004b000003fb0000613d000000000001042d000000400100043d00000044021000390000017203000041000000000032043500000024021000390000001f030000390000000000320435000001470200004100000000002104350000000402100039000000200300003900000000003204350000011802000041000001180310009c000000000102801900000040011002100000017d011001c70000045b000104300000017e0210009c000004120000813d0000004001100039000000400010043f000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004250000813d0000004001300039000000400010043f0000000701000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b00010430000000400300043d0000017e0130009c000004380000813d0000004001300039000000400010043f0000000901000039000000000201041a00000020043000390000008001200270000000000014043500000140022001970000000000230435000000000001042d0000017b0100004100000000001004350000004101000039000000040010043f0000017c010000410000045b000104300000011803000041000001180410009c00000000010380190000004001100210000001180420009c00000000020380190000006002200210000000000112019f0000000002000414000001180420009c0000000002038019000000c002200210000000000112019f0000017f011001c70000801002000039045904540000040f0000000102200190000004520000613d000000000101043b000000000001042d00000000010000190000045b0001043000000457002104230000000102000039000000000001042d0000000002000019000000000001042d00000459000004320000045a0001042e0000045b00010430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008e1bc9bf0400000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000085df51fc00000000000000000000000000000000000000000000000000000000a6ae0aab00000000000000000000000000000000000000000000000000000000d0f2c66200000000000000000000000000000000000000000000000000000000ddeaa8e500000000000000000000000000000000000000000000000000000000ddeaa8e600000000000000000000000000000000000000000000000000000000fe173b9700000000000000000000000000000000000000000000000000000000d0f2c66300000000000000000000000000000000000000000000000000000000d4a4ca0d00000000000000000000000000000000000000000000000000000000a6ae0aac00000000000000000000000000000000000000000000000000000000a851ae7800000000000000000000000000000000000000000000000000000000bf1fe42000000000000000000000000000000000000000000000000000000000938b5f3100000000000000000000000000000000000000000000000000000000938b5f32000000000000000000000000000000000000000000000000000000009a8a059200000000000000000000000000000000000000000000000000000000a0803ef70000000000000000000000000000000000000000000000000000000085df51fd000000000000000000000000000000000000000000000000000000008ac84c0e000000000000000000000000000000000000000000000000000000008e8acf87000000000000000000000000000000000000000000000000000000003635f3e5000000000000000000000000000000000000000000000000000000007877a796000000000000000000000000000000000000000000000000000000007c9bd1f2000000000000000000000000000000000000000000000000000000007c9bd1f30000000000000000000000000000000000000000000000000000000080b41246000000000000000000000000000000000000000000000000000000007877a79700000000000000000000000000000000000000000000000000000000796b89b9000000000000000000000000000000000000000000000000000000003635f3e60000000000000000000000000000000000000000000000000000000042cbb15c000000000000000000000000000000000000000000000000000000006ef25c3a0000000000000000000000000000000000000000000000000000000019cae4610000000000000000000000000000000000000000000000000000000019cae4620000000000000000000000000000000000000000000000000000000029f172ad0000000000000000000000000000000000000000000000000000000030e5ccbd0000000000000000000000000000000000000000000000000000000002fa57790000000000000000000000000000000000000000000000000000000006bed0360000000000000000000000000000000000000000000000000000000006e7517b000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000040000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000200000000000000000000000000000000000020000000e00000000000000000020000000000000000000000000000000000004000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000005468652063757272656e74206261746368206e756d626572206d7573742062652067726561746572207468616e203000000000000000000000000000000000000000000000000000000000000000000000000084000001000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00005468657265206d7573742062652061207669727475616c20626c6f636b206372656174656420617420746865207374617274206f66207468652062617463680000000000000000000000000000000000000000840000008000000000000000005468652074696d657374616d70206f6620746865204c3220626c6f636b206d7573742062652067726561746572207468616e206f7220657175616c20746f207468652074696d657374616d70206f66207468652063757272656e742062617463680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4000000800000000000000000496e76616c6964206e6577204c3220626c6f636b206e756d62657200000000000000000000000000000000000000000000000064000000c000000000000000000200000000000000000000000000000000000080000000e000000000000000006f727265637400000000000000000000000000000000000000000000000000005468652063757272656e74204c3220626c6f636b206861736820697320696e63000000000000000000000000000000000000008400000000000000000000000074616d70206f66207468652070726576696f7573204c3220626c6f636b0000006b206d7573742062652067726561746572207468616e207468652074696d65735468652074696d657374616d70206f6620746865206e6577204c3220626c6f6300000000000000000000000000000000000000a4000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf43616e206e6f74207265757365204c3220626c6f636b206e756d6265722066726f6d207468652070726576696f757320626174636800000000000000000000000000000000000000000000000000000000000084000000c000000000000000005468652074696d657374616d70206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d6500000000000000000000000000000000005468652070726576696f75732068617368206f66207468652073616d65204c3220626c6f636b206d7573742062652073616d650000000000000000000000000043616e206e6f7420637265617465207669727475616c20626c6f636b7320696e20746865206d6964646c65206f6620746865206d696e69626c6f636b000000000200000000000000000000000000000000000004000000e00000000000000000636f7272656374000000000000000000000000000000000000000000000000005468652070726576696f7573204c3220626c6f636b206861736820697320696effffffffffffffffffffffffffffffff00000000000000000000000000000000616c20626c6f636b00000000000000000000000000000000000000000000000043616e277420696e697469616c697a65207468652066697273742076697274754c3220626c6f636b206e756d626572206973206e6576657220657870656374656420746f206265207a65726f000000000000000000000000000000000000000055706772616465207472616e73616374696f6e206d7573742062652066697273740000000000000000000000000000000000000000000000000000000000000043616c6c61626c65206f6e6c792062792074686520626f6f746c6f6164657200000000000000000000000000000000000000006400000080000000000000000054696d657374616d70732073686f756c6420626520696e6372656d656e74616c5468652070726f766964656420626c6f636b206e756d626572206973206e6f7420636f72726563740000000000000000000000000000000000000000000000005468652074696d657374616d70206f6620746865206261746368206d7573742062652067726561746572207468616e207468652074696d657374616d70206f66207468652070726576696f757320626c6f636b0000000000000000000000000000000000000000000000000000000000000000a4000000c000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffc0020000000000000000000000000000000000000000000000000000000000000062ab76af9f7a5ed8b3b2b2b21425656a7fcc2662625674f9d12b72e6c688b431", "linkReferences": {}, "deployedLinkReferences": {}, "factoryDeps": {} diff --git a/src/deps/contracts/fee_estimate.yul.zbin b/src/deps/contracts/fee_estimate.yul.zbin index 2d626c48..bcaa84a4 100644 Binary files a/src/deps/contracts/fee_estimate.yul.zbin and b/src/deps/contracts/fee_estimate.yul.zbin differ diff --git a/src/deps/contracts/fee_estimate_impersonating.yul.zbin b/src/deps/contracts/fee_estimate_impersonating.yul.zbin index 9b04373a..1f0273c6 100644 Binary files a/src/deps/contracts/fee_estimate_impersonating.yul.zbin and b/src/deps/contracts/fee_estimate_impersonating.yul.zbin differ diff --git a/src/deps/contracts/gas_test.yul.zbin b/src/deps/contracts/gas_test.yul.zbin index 59865263..02fe55da 100644 Binary files a/src/deps/contracts/gas_test.yul.zbin and b/src/deps/contracts/gas_test.yul.zbin differ diff --git a/src/deps/contracts/playground_batch.yul.zbin b/src/deps/contracts/playground_batch.yul.zbin index 3968da09..04430b31 100644 Binary files a/src/deps/contracts/playground_batch.yul.zbin and b/src/deps/contracts/playground_batch.yul.zbin differ diff --git a/src/deps/contracts/proved_batch.yul.zbin b/src/deps/contracts/proved_batch.yul.zbin index a66ba559..04dc8908 100644 Binary files a/src/deps/contracts/proved_batch.yul.zbin and b/src/deps/contracts/proved_batch.yul.zbin differ diff --git a/src/deps/contracts/proved_batch_impersonating.yul.zbin b/src/deps/contracts/proved_batch_impersonating.yul.zbin index 9ac83eb4..c93abf5c 100644 Binary files a/src/deps/contracts/proved_batch_impersonating.yul.zbin and b/src/deps/contracts/proved_batch_impersonating.yul.zbin differ diff --git a/src/fork.rs b/src/fork.rs index 69aaf089..62f9488a 100644 --- a/src/fork.rs +++ b/src/fork.rs @@ -331,6 +331,7 @@ const SUPPORTED_VERSIONS: &[ProtocolVersionId] = &[ ProtocolVersionId::Version17, ProtocolVersionId::Version18, ProtocolVersionId::Version19, + ProtocolVersionId::Version20, ]; pub fn supported_protocol_versions(version: ProtocolVersionId) -> bool { diff --git a/src/namespaces/debug.rs b/src/namespaces/debug.rs index 421154a5..5c37042e 100644 --- a/src/namespaces/debug.rs +++ b/src/namespaces/debug.rs @@ -1,576 +1,39 @@ -use crate::{ - fork::ForkSource, - node::{InMemoryNodeInner, MAX_TX_SIZE}, - utils::{create_debug_output, storage_view::StorageView, to_real_block_number}, -}; -use itertools::Itertools; use jsonrpc_core::{BoxFuture, Result}; -use multivm::interface::VmInterface; -use multivm::vm_latest::{constants::ETH_CALL_GAS_LIMIT, CallTracer, Vm}; -use once_cell::sync::OnceCell; -use std::sync::{Arc, RwLock}; -use zksync_basic_types::H256; -use zksync_core::api_server::web3::backend_jsonrpc::{ - error::into_jsrpc_error, namespaces::debug::DebugNamespaceT, -}; +use jsonrpc_derive::rpc; use zksync_types::{ - api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig, TransactionVariant}, - l2::L2Tx, + api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig}, transaction_request::CallRequest, - PackedEthSignature, Transaction, U64, + H256, }; -use zksync_web3_decl::error::Web3Error; - -/// Implementation of DebugNamespaceImpl -pub struct DebugNamespaceImpl { - node: Arc>>, -} -impl DebugNamespaceImpl { - /// Creates a new `Debug` instance with the given `node`. - pub fn new(node: Arc>>) -> Self { - Self { node } - } -} - -impl DebugNamespaceT - for DebugNamespaceImpl -{ +#[rpc] +pub trait DebugNamespaceT { + #[rpc(name = "debug_traceBlockByNumber")] fn trace_block_by_number( &self, block: BlockNumber, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let block = { - let number = - to_real_block_number(block, U64::from(inner.current_miniblock)).as_u64(); - - inner - .block_hashes - .get(&number) - .and_then(|hash| inner.blocks.get(hash)) - .ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Block not found".to_string(), - vec![], - )) - })? - }; - - let tx_hashes = block - .transactions - .iter() - .map(|tx| match tx { - TransactionVariant::Full(tx) => tx.hash, - TransactionVariant::Hash(hash) => *hash, - }) - .collect_vec(); - - let debug_calls = tx_hashes - .into_iter() - .map(|tx_hash| { - let tx = inner.tx_results.get(&tx_hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Transaction not found".to_string(), - vec![], - )) - })?; - Ok(tx.debug_info(only_top)) - }) - .collect::>>()? - .into_iter() - .map(|result| ResultDebugCall { result }) - .collect_vec(); - - Ok(debug_calls) - }) - } + ) -> BoxFuture>>; + #[rpc(name = "debug_traceBlockByHash")] fn trace_block_by_hash( &self, hash: H256, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let block = inner.blocks.get(&hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Block not found".to_string(), - vec![], - )) - })?; - - let tx_hashes = block - .transactions - .iter() - .map(|tx| match tx { - TransactionVariant::Full(tx) => tx.hash, - TransactionVariant::Hash(hash) => *hash, - }) - .collect_vec(); - - let debug_calls = tx_hashes - .into_iter() - .map(|tx_hash| { - let tx = inner.tx_results.get(&tx_hash).ok_or_else(|| { - into_jsrpc_error(Web3Error::SubmitTransactionError( - "Transaction not found".to_string(), - vec![], - )) - })?; - Ok(tx.debug_info(only_top)) - }) - .collect::>>()? - .into_iter() - .map(|result| ResultDebugCall { result }) - .collect_vec(); - - Ok(debug_calls) - }) - } + ) -> BoxFuture>>; - /// Trace execution of a transaction. + #[rpc(name = "debug_traceCall")] fn trace_call( &self, request: CallRequest, block: Option, options: Option, - ) -> BoxFuture> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - if block.is_some() && !matches!(block, Some(BlockId::Number(BlockNumber::Latest))) { - return Err(jsonrpc_core::Error::invalid_params( - "tracing only supported at `latest` block", - )); - } - - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - let mut l2_tx = match L2Tx::from_request(request.into(), MAX_TX_SIZE) { - Ok(tx) => tx, - Err(e) => { - let error = Web3Error::SerializationError(e); - return Err(into_jsrpc_error(error)); - } - }; - - let execution_mode = multivm::interface::TxExecutionMode::EthCall; - let storage = StorageView::new(&inner.fork_storage).into_rc_ptr(); - - let bootloader_code = inner.system_contracts.contracts_for_l2_call(); - - // init vm - let (mut l1_batch_env, _block_context) = inner.create_l1_batch_env(storage.clone()); - - // update the enforced_base_fee within l1_batch_env to match the logic in zksync_core - l1_batch_env.enforced_base_fee = Some(l2_tx.common_data.fee.max_fee_per_gas.as_u64()); - let system_env = inner.create_system_env(bootloader_code.clone(), execution_mode); - let mut vm: Vm<_, HistoryDisabled> = Vm::new(l1_batch_env, system_env, storage); - - // We must inject *some* signature (otherwise bootloader code fails to generate hash). - if l2_tx.common_data.signature.is_empty() { - l2_tx.common_data.signature = - PackedEthSignature::default().serialize_packed().into(); - } - - // Match behavior of zksync_core: - // Protection against infinite-loop eth_calls and alike: - // limiting the amount of gas the call can use. - l2_tx.common_data.fee.gas_limit = ETH_CALL_GAS_LIMIT.into(); - - let tx: Transaction = l2_tx.clone().into(); - vm.push_transaction(tx); - - let call_tracer_result = Arc::new(OnceCell::default()); - let tracer = CallTracer::new(call_tracer_result.clone()).into_tracer_pointer(); - let tx_result = vm.inspect(tracer.into(), multivm::interface::VmExecutionMode::OneTx); - - let call_traces = if only_top { - vec![] - } else { - Arc::try_unwrap(call_tracer_result) - .unwrap() - .take() - .unwrap_or_default() - }; - - let debug = - create_debug_output(&l2_tx, &tx_result, call_traces).map_err(into_jsrpc_error)?; - - Ok(debug) - }) - } + ) -> BoxFuture>; + #[rpc(name = "debug_traceTransaction")] fn trace_transaction( &self, tx_hash: H256, options: Option, - ) -> BoxFuture>> { - let only_top = options.is_some_and(|o| o.tracer_config.only_top_call); - let inner = Arc::clone(&self.node); - Box::pin(async move { - let inner = inner - .read() - .map_err(|_| into_jsrpc_error(Web3Error::InternalError))?; - - Ok(inner - .tx_results - .get(&tx_hash) - .map(|tx| tx.debug_info(only_top))) - }) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use crate::{ - deps::system_contracts::bytecode_from_slice, - http_fork_source::HttpForkSource, - node::{InMemoryNode, TransactionResult}, - testing::{self, LogBuilder}, - }; - use ethers::abi::{short_signature, AbiEncode, HumanReadableParser, ParamType, Token}; - use zksync_basic_types::{Address, Nonce, H160, U256}; - use zksync_types::{ - api::{Block, CallTracerConfig, SupportedTracers, TransactionReceipt}, - transaction_request::CallRequestBuilder, - utils::deployed_address_create, - }; - - fn deploy_test_contracts(node: &InMemoryNode) -> (Address, Address) { - let private_key = H256::repeat_byte(0xee); - let from_account = zksync_types::PackedEthSignature::address_from_private_key(&private_key) - .expect("failed generating address"); - node.set_rich_account(from_account); - - // first, deploy secondary contract - let secondary_bytecode = bytecode_from_slice( - "Secondary", - include_bytes!("deps/test-contracts/Secondary.json"), - ); - let secondary_deployed_address = deployed_address_create(from_account, U256::zero()); - testing::deploy_contract( - &node, - H256::repeat_byte(0x1), - private_key, - secondary_bytecode, - Some((U256::from(2),).encode()), - Nonce(0), - ); - - // deploy primary contract using the secondary contract address as a constructor parameter - let primary_bytecode = bytecode_from_slice( - "Primary", - include_bytes!("deps/test-contracts/Primary.json"), - ); - let primary_deployed_address = deployed_address_create(from_account, U256::one()); - testing::deploy_contract( - &node, - H256::repeat_byte(0x1), - private_key, - primary_bytecode, - Some((secondary_deployed_address).encode()), - Nonce(1), - ); - (primary_deployed_address, secondary_deployed_address) - } - - #[tokio::test] - async fn test_trace_deployed_contract() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, secondary_deployed_address) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let func = HumanReadableParser::parse_function("calculate(uint)").unwrap(); - let calldata = func.encode_input(&[Token::Uint(U256::from(42))]).unwrap(); - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(calldata.clone().into()) - .gas(80_000_000.into()) - .build(); - let trace = debug - .trace_call(request.clone(), None, None) - .await - .expect("trace call"); - - // call should not revert - assert!(trace.error.is_none()); - assert!(trace.revert_reason.is_none()); - - // check that the call was successful - let output = - ethers::abi::decode(&[ParamType::Uint(256)], &trace.output.0.as_slice()).unwrap(); - assert_eq!(output[0], Token::Uint(U256::from(84))); - - // find the call to primary contract in the trace - let contract_call = trace - .calls - .first() - .unwrap() - .calls - .last() - .unwrap() - .calls - .first() - .unwrap(); - - assert_eq!(contract_call.to, primary_deployed_address); - assert_eq!(contract_call.input, calldata.into()); - - // check that it contains a call to secondary contract - let subcall = contract_call.calls.first().unwrap(); - assert_eq!(subcall.to, secondary_deployed_address); - assert_eq!(subcall.from, primary_deployed_address); - assert_eq!(subcall.output, U256::from(84).encode().into()); - } - - #[tokio::test] - async fn test_trace_only_top() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, _) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let func = HumanReadableParser::parse_function("calculate(uint)").unwrap(); - let calldata = func.encode_input(&[Token::Uint(U256::from(42))]).unwrap(); - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(calldata.into()) - .gas(80_000_000.into()) - .build(); - - // if we trace with onlyTopCall=true, we should get only the top-level call - let trace = debug - .trace_call( - request, - None, - Some(TracerConfig { - tracer: SupportedTracers::CallTracer, - tracer_config: CallTracerConfig { - only_top_call: true, - }, - }), - ) - .await - .expect("trace call"); - // call should not revert - assert!(trace.error.is_none()); - assert!(trace.revert_reason.is_none()); - - // call should not contain any subcalls - assert!(trace.calls.is_empty()); - } - - #[tokio::test] - async fn test_trace_reverts() { - let node = InMemoryNode::::default(); - let debug = DebugNamespaceImpl::new(node.get_inner()); - - let (primary_deployed_address, _) = deploy_test_contracts(&node); - - // trace a call to the primary contract - let request = CallRequestBuilder::default() - .to(primary_deployed_address) - .data(short_signature("shouldRevert()", &[]).into()) - .gas(80_000_000.into()) - .build(); - let trace = debug - .trace_call(request, None, None) - .await - .expect("trace call"); - - // call should revert - assert!(trace.revert_reason.is_some()); - - // find the call to primary contract in the trace - let contract_call = trace - .calls - .first() - .unwrap() - .calls - .last() - .unwrap() - .calls - .first() - .unwrap(); - - // the contract subcall should have reverted - assert!(contract_call.revert_reason.is_some()); - } - - #[tokio::test] - async fn test_trace_transaction() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - writer.tx_results.insert( - H256::repeat_byte(0x1), - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt { - logs: vec![LogBuilder::new() - .set_address(H160::repeat_byte(0xa1)) - .build()], - ..Default::default() - }, - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_transaction(H256::repeat_byte(0x1), None) - .await - .unwrap() - .unwrap(); - assert_eq!(result.calls.len(), 1); - } - - #[tokio::test] - async fn test_trace_transaction_only_top() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - writer.tx_results.insert( - H256::repeat_byte(0x1), - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt { - logs: vec![LogBuilder::new() - .set_address(H160::repeat_byte(0xa1)) - .build()], - ..Default::default() - }, - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_transaction( - H256::repeat_byte(0x1), - Some(TracerConfig { - tracer: SupportedTracers::CallTracer, - tracer_config: CallTracerConfig { - only_top_call: true, - }, - }), - ) - .await - .unwrap() - .unwrap(); - assert!(result.calls.is_empty()); - } - - #[tokio::test] - async fn test_trace_transaction_not_found() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - let result = DebugNamespaceImpl::new(inner) - .trace_transaction(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert!(result.is_none()); - } - - #[tokio::test] - async fn test_trace_block_by_hash_empty() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let block = Block::::default(); - writer.blocks.insert(H256::repeat_byte(0x1), block); - } - let result = DebugNamespaceImpl::new(inner) - .trace_block_by_hash(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert_eq!(result.len(), 0); - } - - #[tokio::test] - async fn test_trace_block_by_hash() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let tx = zksync_types::api::Transaction::default(); - let tx_hash = tx.hash; - let mut block = Block::::default(); - block.transactions.push(TransactionVariant::Full(tx)); - writer.blocks.insert(H256::repeat_byte(0x1), block); - writer.tx_results.insert( - tx_hash, - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt::default(), - debug: testing::default_tx_debug_info(), - }, - ); - } - let result = DebugNamespaceImpl::new(inner) - .trace_block_by_hash(H256::repeat_byte(0x1), None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - } - - #[tokio::test] - async fn test_trace_block_by_number() { - let node = InMemoryNode::::default(); - let inner = node.get_inner(); - { - let mut writer = inner.write().unwrap(); - let tx = zksync_types::api::Transaction::default(); - let tx_hash = tx.hash; - let mut block = Block::::default(); - block.transactions.push(TransactionVariant::Full(tx)); - writer.blocks.insert(H256::repeat_byte(0x1), block); - writer.block_hashes.insert(0, H256::repeat_byte(0x1)); - writer.tx_results.insert( - tx_hash, - TransactionResult { - info: testing::default_tx_execution_info(), - receipt: TransactionReceipt::default(), - debug: testing::default_tx_debug_info(), - }, - ); - } - // check `latest` alias - let result = DebugNamespaceImpl::new(node.get_inner()) - .trace_block_by_number(BlockNumber::Latest, None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - - // check block number - let result = DebugNamespaceImpl::new(node.get_inner()) - .trace_block_by_number(BlockNumber::Number(0.into()), None) - .await - .unwrap(); - assert_eq!(result.len(), 1); - assert_eq!(result[0].result.calls.len(), 1); - } + ) -> BoxFuture>>; } diff --git a/src/namespaces/eth.rs b/src/namespaces/eth.rs new file mode 100644 index 00000000..ab7badf2 --- /dev/null +++ b/src/namespaces/eth.rs @@ -0,0 +1,165 @@ +use jsonrpc_core::{BoxFuture, Result}; +use jsonrpc_derive::rpc; +use zksync_types::{ + api::{BlockIdVariant, BlockNumber, Transaction, TransactionReceipt, TransactionVariant}, + transaction_request::CallRequest, + web3::types::{FeeHistory, Index, SyncState}, + Address, Bytes, H256, U256, U64, +}; +use zksync_web3_decl::types::{Block, Filter, FilterChanges, Log}; + +#[rpc] +pub trait EthNamespaceT { + #[rpc(name = "eth_blockNumber")] + fn get_block_number(&self) -> BoxFuture>; + + #[rpc(name = "eth_chainId")] + fn chain_id(&self) -> BoxFuture>; + + #[rpc(name = "eth_call")] + fn call(&self, req: CallRequest, block: Option) -> BoxFuture>; + + #[rpc(name = "eth_estimateGas")] + fn estimate_gas( + &self, + req: CallRequest, + _block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_gasPrice")] + fn gas_price(&self) -> BoxFuture>; + + #[rpc(name = "eth_newFilter")] + fn new_filter(&self, filter: Filter) -> BoxFuture>; + + #[rpc(name = "eth_newBlockFilter")] + fn new_block_filter(&self) -> BoxFuture>; + + #[rpc(name = "eth_uninstallFilter")] + fn uninstall_filter(&self, idx: U256) -> BoxFuture>; + + #[rpc(name = "eth_newPendingTransactionFilter")] + fn new_pending_transaction_filter(&self) -> BoxFuture>; + + #[rpc(name = "eth_getLogs")] + fn get_logs(&self, filter: Filter) -> BoxFuture>>; + + #[rpc(name = "eth_getFilterLogs")] + fn get_filter_logs(&self, filter_index: U256) -> BoxFuture>; + + #[rpc(name = "eth_getFilterChanges")] + fn get_filter_changes(&self, filter_index: U256) -> BoxFuture>; + + #[rpc(name = "eth_getBalance")] + fn get_balance( + &self, + address: Address, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getBlockByNumber")] + fn get_block_by_number( + &self, + block_number: BlockNumber, + full_transactions: bool, + ) -> BoxFuture>>>; + + #[rpc(name = "eth_getBlockByHash")] + fn get_block_by_hash( + &self, + hash: H256, + full_transactions: bool, + ) -> BoxFuture>>>; + + #[rpc(name = "eth_getBlockTransactionCountByNumber")] + fn get_block_transaction_count_by_number( + &self, + block_number: BlockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getBlockTransactionCountByHash")] + fn get_block_transaction_count_by_hash( + &self, + block_hash: H256, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getCode")] + fn get_code(&self, address: Address, block: Option) + -> BoxFuture>; + + #[rpc(name = "eth_getStorageAt")] + fn get_storage( + &self, + address: Address, + idx: U256, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getTransactionCount")] + fn get_transaction_count( + &self, + address: Address, + block: Option, + ) -> BoxFuture>; + + #[rpc(name = "eth_getTransactionByHash")] + fn get_transaction_by_hash(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionByBlockHashAndIndex")] + fn get_transaction_by_block_hash_and_index( + &self, + block_hash: H256, + index: Index, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionByBlockNumberAndIndex")] + fn get_transaction_by_block_number_and_index( + &self, + block_number: BlockNumber, + index: Index, + ) -> BoxFuture>>; + + #[rpc(name = "eth_getTransactionReceipt")] + fn get_transaction_receipt(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_protocolVersion")] + fn protocol_version(&self) -> BoxFuture>; + + #[rpc(name = "eth_sendRawTransaction")] + fn send_raw_transaction(&self, tx_bytes: Bytes) -> BoxFuture>; + + #[rpc(name = "eth_syncing")] + fn syncing(&self) -> BoxFuture>; + + #[rpc(name = "eth_accounts")] + fn accounts(&self) -> BoxFuture>>; + + #[rpc(name = "eth_coinbase")] + fn coinbase(&self) -> BoxFuture>; + + #[rpc(name = "eth_getCompilers")] + fn compilers(&self) -> BoxFuture>>; + + #[rpc(name = "eth_hashrate")] + fn hashrate(&self) -> BoxFuture>; + + #[rpc(name = "eth_getUncleCountByBlockHash")] + fn get_uncle_count_by_block_hash(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "eth_getUncleCountByBlockNumber")] + fn get_uncle_count_by_block_number( + &self, + number: BlockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "eth_mining")] + fn mining(&self) -> BoxFuture>; + + #[rpc(name = "eth_feeHistory")] + fn fee_history( + &self, + block_count: U64, + newest_block: BlockNumber, + reward_percentiles: Vec, + ) -> BoxFuture>; +} diff --git a/src/namespaces/mod.rs b/src/namespaces/mod.rs index 8c359b3e..75fe8e83 100644 --- a/src/namespaces/mod.rs +++ b/src/namespaces/mod.rs @@ -1,11 +1,12 @@ mod config; +mod debug; +mod eth; mod eth_test; mod evm; mod hardhat; mod net; mod web3; - -use zksync_core::api_server::web3::backend_jsonrpc::namespaces::{debug, eth, zks}; +mod zks; pub use config::ConfigurationApiNamespaceT; pub use debug::DebugNamespaceT; diff --git a/src/namespaces/zks.rs b/src/namespaces/zks.rs new file mode 100644 index 00000000..921ba809 --- /dev/null +++ b/src/namespaces/zks.rs @@ -0,0 +1,111 @@ +use std::collections::HashMap; + +use bigdecimal::BigDecimal; +use jsonrpc_core::{BoxFuture, Result}; +use jsonrpc_derive::rpc; +use zksync_types::{ + api::{ + BlockDetails, BridgeAddresses, L1BatchDetails, L2ToL1LogProof, Proof, ProtocolVersion, + TransactionDetails, + }, + fee::Fee, + transaction_request::CallRequest, + Address, L1BatchNumber, MiniblockNumber, H256, U256, U64, +}; +use zksync_web3_decl::types::Token; + +#[rpc] +pub trait ZksNamespaceT { + #[rpc(name = "zks_estimateFee")] + fn estimate_fee(&self, req: CallRequest) -> BoxFuture>; + + #[rpc(name = "zks_estimateGasL1ToL2")] + fn estimate_gas_l1_to_l2(&self, req: CallRequest) -> BoxFuture>; + + #[rpc(name = "zks_getMainContract")] + fn get_main_contract(&self) -> BoxFuture>; + + #[rpc(name = "zks_getTestnetPaymaster")] + fn get_testnet_paymaster(&self) -> BoxFuture>>; + + #[rpc(name = "zks_getBridgeContracts")] + fn get_bridge_contracts(&self) -> BoxFuture>; + + #[rpc(name = "zks_L1ChainId")] + fn l1_chain_id(&self) -> BoxFuture>; + + #[rpc(name = "zks_getConfirmedTokens")] + fn get_confirmed_tokens(&self, from: u32, limit: u8) -> BoxFuture>>; + + #[rpc(name = "zks_getTokenPrice")] + fn get_token_price(&self, token_address: Address) -> BoxFuture>; + + #[rpc(name = "zks_getAllAccountBalances")] + fn get_all_account_balances( + &self, + address: Address, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL2ToL1MsgProof")] + fn get_l2_to_l1_msg_proof( + &self, + block: MiniblockNumber, + sender: Address, + msg: H256, + l2_log_position: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL2ToL1LogProof")] + fn get_l2_to_l1_log_proof( + &self, + tx_hash: H256, + index: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_L1BatchNumber")] + fn get_l1_batch_number(&self) -> BoxFuture>; + + #[rpc(name = "zks_getBlockDetails")] + fn get_block_details( + &self, + block_number: MiniblockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL1BatchBlockRange")] + fn get_miniblock_range(&self, batch: L1BatchNumber) -> BoxFuture>>; + + #[rpc(name = "zks_getTransactionDetails")] + fn get_transaction_details(&self, hash: H256) -> BoxFuture>>; + + #[rpc(name = "zks_getRawBlockTransactions")] + fn get_raw_block_transactions( + &self, + block_number: MiniblockNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getL1BatchDetails")] + fn get_l1_batch_details( + &self, + batch: L1BatchNumber, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getBytecodeByHash")] + fn get_bytecode_by_hash(&self, hash: H256) -> BoxFuture>>>; + + #[rpc(name = "zks_getL1GasPrice")] + fn get_l1_gas_price(&self) -> BoxFuture>; + + #[rpc(name = "zks_getProtocolVersion")] + fn get_protocol_version( + &self, + version_id: Option, + ) -> BoxFuture>>; + + #[rpc(name = "zks_getProof")] + fn get_proof( + &self, + address: Address, + keys: Vec, + l1_batch_number: L1BatchNumber, + ) -> BoxFuture>; +} diff --git a/src/node/config.rs b/src/node/config.rs index 81f350ef..e9ece3ab 100644 --- a/src/node/config.rs +++ b/src/node/config.rs @@ -1,4 +1,3 @@ -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ @@ -6,6 +5,7 @@ use crate::{ namespaces::{ConfigurationApiNamespaceT, Result}, node::InMemoryNode, observability::LogLevel, + utils::into_jsrpc_error, }; use super::{ShowCalls, ShowGasDetails, ShowStorageLogs, ShowVMDetails}; diff --git a/src/node/debug.rs b/src/node/debug.rs index 7bf11179..e6732a3e 100644 --- a/src/node/debug.rs +++ b/src/node/debug.rs @@ -8,7 +8,6 @@ use multivm::vm_latest::HistoryDisabled; use multivm::vm_latest::{constants::ETH_CALL_GAS_LIMIT, ToTracerPointer, Vm}; use zksync_basic_types::H256; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_types::{ api::{BlockId, BlockNumber, DebugCall, ResultDebugCall, TracerConfig, TransactionVariant}, l2::L2Tx, @@ -22,7 +21,7 @@ use crate::{ fork::ForkSource, namespaces::{DebugNamespaceT, Result, RpcResult}, node::{InMemoryNode, MAX_TX_SIZE}, - utils::{create_debug_output, to_real_block_number}, + utils::{create_debug_output, into_jsrpc_error, to_real_block_number}, }; impl DebugNamespaceT diff --git a/src/node/eth.rs b/src/node/eth.rs index dcd04006..52a69f3c 100644 --- a/src/node/eth.rs +++ b/src/node/eth.rs @@ -6,7 +6,6 @@ use itertools::Itertools; use multivm::interface::{ExecutionResult, TxExecutionMode}; use multivm::vm_latest::constants::ETH_CALL_GAS_LIMIT; use zksync_basic_types::{web3, AccountTreeId, Address, Bytes, H160, H256, U256, U64}; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_state::ReadStorage; use zksync_types::{ api::{Block, BlockIdVariant, BlockNumber, TransactionVariant}, @@ -28,7 +27,7 @@ use crate::{ fork::ForkSource, namespaces::{EthNamespaceT, EthTestNodeNamespaceT, RpcResult}, node::{InMemoryNode, TransactionResult, L2_GAS_PRICE, MAX_TX_SIZE, PROTOCOL_VERSION}, - utils::{self, h256_to_u64, not_implemented, IntoBoxedFuture}, + utils::{self, h256_to_u64, into_jsrpc_error, not_implemented, IntoBoxedFuture}, }; impl EthNamespaceT @@ -2001,7 +2000,7 @@ mod tests { .expect("failed fetching transaction receipt by hash") .expect("no transaction receipt"); - assert_eq!(Some(expected_block_hash), actual_tx_receipt.block_hash); + assert_eq!(expected_block_hash, actual_tx_receipt.block_hash); } #[tokio::test] @@ -2687,7 +2686,7 @@ mod tests { current_batch: inner.current_batch, current_miniblock: inner.current_miniblock, current_miniblock_hash: inner.current_miniblock_hash, - l1_gas_price: inner.l1_gas_price, + fee_input_provider: inner.fee_input_provider.clone(), tx_results: inner.tx_results.clone(), blocks: inner.blocks.clone(), block_hashes: inner.block_hashes.clone(), @@ -2717,7 +2716,10 @@ mod tests { expected_snapshot.current_miniblock_hash, actual_snapshot.current_miniblock_hash ); - assert_eq!(expected_snapshot.l1_gas_price, actual_snapshot.l1_gas_price); + assert_eq!( + expected_snapshot.fee_input_provider, + actual_snapshot.fee_input_provider + ); assert_eq!( expected_snapshot.tx_results.keys().collect_vec(), actual_snapshot.tx_results.keys().collect_vec() @@ -2791,7 +2793,7 @@ mod tests { current_batch: inner.current_batch, current_miniblock: inner.current_miniblock, current_miniblock_hash: inner.current_miniblock_hash, - l1_gas_price: inner.l1_gas_price, + fee_input_provider: inner.fee_input_provider.clone(), tx_results: inner.tx_results.clone(), blocks: inner.blocks.clone(), block_hashes: inner.block_hashes.clone(), @@ -2850,7 +2852,10 @@ mod tests { expected_snapshot.current_miniblock_hash, inner.current_miniblock_hash ); - assert_eq!(expected_snapshot.l1_gas_price, inner.l1_gas_price); + assert_eq!( + expected_snapshot.fee_input_provider, + inner.fee_input_provider + ); assert_eq!( expected_snapshot.tx_results.keys().collect_vec(), inner.tx_results.keys().collect_vec() diff --git a/src/node/evm.rs b/src/node/evm.rs index 71af8c19..f4f21a5f 100644 --- a/src/node/evm.rs +++ b/src/node/evm.rs @@ -1,12 +1,11 @@ use zksync_basic_types::U64; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ fork::ForkSource, namespaces::{EvmNamespaceT, RpcResult}, node::InMemoryNode, - utils::IntoBoxedFuture, + utils::{into_jsrpc_error, IntoBoxedFuture}, }; impl EvmNamespaceT diff --git a/src/node/fee_model.rs b/src/node/fee_model.rs new file mode 100644 index 00000000..f8a28aa4 --- /dev/null +++ b/src/node/fee_model.rs @@ -0,0 +1,35 @@ +use std::fmt::Debug; +use zksync_core::fee_model::BatchFeeModelInputProvider; +use zksync_types::fee_model::{FeeModelConfigV2, FeeParams, FeeParamsV2}; +use zksync_types::L1_GAS_PER_PUBDATA_BYTE; + +pub const CONFIG: FeeModelConfigV2 = FeeModelConfigV2 { + minimal_l2_gas_price: 100000000, + compute_overhead_part: 0.0, + pubdata_overhead_part: 1.0, + batch_overhead_l1_gas: 800000, + max_gas_per_batch: 200000000, + max_pubdata_per_batch: 100000, +}; + +#[derive(Debug, Clone, PartialEq)] +pub struct TestNodeFeeInputProvider { + l1_gas_price: u64, +} + +impl TestNodeFeeInputProvider { + pub fn new(l1_gas_price: u64) -> Self { + Self { l1_gas_price } + } +} + +impl BatchFeeModelInputProvider for TestNodeFeeInputProvider { + fn get_fee_model_params(&self) -> FeeParams { + // TODO: consider using old fee model for the olds blocks, when forking + FeeParams::V2(FeeParamsV2 { + config: CONFIG, + l1_gas_price: self.l1_gas_price, + l1_pubdata_price: self.l1_gas_price * L1_GAS_PER_PUBDATA_BYTE as u64, + }) + } +} diff --git a/src/node/hardhat.rs b/src/node/hardhat.rs index 23abda98..7255dd8e 100644 --- a/src/node/hardhat.rs +++ b/src/node/hardhat.rs @@ -1,12 +1,11 @@ use zksync_basic_types::{Address, U256, U64}; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; use zksync_web3_decl::error::Web3Error; use crate::{ fork::ForkSource, namespaces::{HardhatNamespaceT, RpcResult}, node::InMemoryNode, - utils::IntoBoxedFuture, + utils::{into_jsrpc_error, IntoBoxedFuture}, }; impl HardhatNamespaceT diff --git a/src/node/in_memory.rs b/src/node/in_memory.rs index 3fa0f365..05a0aa6c 100644 --- a/src/node/in_memory.rs +++ b/src/node/in_memory.rs @@ -4,14 +4,15 @@ use crate::{ console_log::ConsoleLogHandler, deps::{storage_view::StorageView, InMemoryStorage}, filters::EthFilters, - fork::{ForkDetails, ForkSource, ForkStorage}, + fork::{block_on, ForkDetails, ForkSource, ForkStorage}, formatter, - node::storage_logs::print_storage_logs_details, + node::{ + fee_model::{TestNodeFeeInputProvider, CONFIG}, + storage_logs::print_storage_logs_details, + }, observability::Observability, system_contracts::{self, SystemContracts}, - utils::{ - adjust_l1_gas_price_for_tx, bytecode_to_factory_dep, create_debug_output, to_human_size, - }, + utils::{bytecode_to_factory_dep, create_debug_output, into_jsrpc_error, to_human_size}, }; use clap::Parser; use colored::Colorize; @@ -31,17 +32,18 @@ use multivm::{ VmExecutionResultAndLogs, VmInterface, }, vm_latest::L2Block, + VmVersion, }; use multivm::{ tracers::CallTracer, + utils::{ + adjust_pubdata_price_for_tx, derive_base_fee_and_gas_per_pubdata, derive_overhead, + get_max_gas_per_pubdata_byte, + }, vm_latest::HistoryDisabled, vm_latest::{ - constants::{BLOCK_GAS_LIMIT, BLOCK_OVERHEAD_PUBDATA, MAX_PUBDATA_PER_BLOCK}, - utils::{ - fee::derive_base_fee_and_gas_per_pubdata, - l2_blocks::load_last_l2_block, - overhead::{derive_overhead, OverheadCoefficients}, - }, + constants::{BLOCK_GAS_LIMIT, MAX_PUBDATA_PER_BLOCK}, + utils::l2_blocks::load_last_l2_block, ToTracerPointer, TracerPointer, Vm, }, }; @@ -50,7 +52,7 @@ use zksync_basic_types::{ H256, U256, U64, }; use zksync_contracts::BaseSystemContracts; -use zksync_core::api_server::web3::backend_jsonrpc::error::into_jsrpc_error; +use zksync_core::fee_model::BatchFeeModelInputProvider; use zksync_state::{ReadStorage, StoragePtr, WriteStorage}; use zksync_types::{ api::{Block, DebugCall, Log, TransactionReceipt, TransactionVariant}, @@ -62,8 +64,8 @@ use zksync_types::{ utils::{decompose_full_nonce, nonces_to_full_nonce, storage_key_for_eth_balance}, vm_trace::Call, PackedEthSignature, StorageKey, StorageLogQueryType, StorageValue, Transaction, - ACCOUNT_CODE_STORAGE_ADDRESS, EIP_712_TX_TYPE, MAX_GAS_PER_PUBDATA_BYTE, MAX_L2_TX_GAS_LIMIT, - SYSTEM_CONTEXT_ADDRESS, SYSTEM_CONTEXT_BLOCK_INFO_POSITION, + ACCOUNT_CODE_STORAGE_ADDRESS, MAX_L2_TX_GAS_LIMIT, SYSTEM_CONTEXT_ADDRESS, + SYSTEM_CONTEXT_BLOCK_INFO_POSITION, }; use zksync_utils::{ bytecode::{compress_bytecode, hash_bytecode}, @@ -79,10 +81,11 @@ pub const NON_FORK_FIRST_BLOCK_TIMESTAMP: u64 = 1_000; pub const TEST_NODE_NETWORK_ID: u32 = 260; /// L1 Gas Price. pub const L1_GAS_PRICE: u64 = 50_000_000_000; -/// L2 Gas Price (0.25 gwei). -pub const L2_GAS_PRICE: u64 = 250_000_000; +// TODO: for now, that's fine, as computation overhead is set to zero, but we may consider using calculated fee input everywhere. +/// L2 Gas Price (0.1 gwei). +pub const L2_GAS_PRICE: u64 = 100_000_000; /// L1 Gas Price Scale Factor for gas estimation. -pub const ESTIMATE_GAS_L1_GAS_PRICE_SCALE_FACTOR: f64 = 1.2; +pub const ESTIMATE_GAS_PRICE_SCALE_FACTOR: f64 = 1.5; /// The max possible number of gas that `eth_estimateGas` is allowed to overestimate. pub const ESTIMATE_GAS_PUBLISH_BYTE_OVERHEAD: u32 = 100; /// Acceptable gas overestimation limit. @@ -294,7 +297,8 @@ pub struct InMemoryNodeInner { pub current_miniblock: u64, /// The latest miniblock hash. pub current_miniblock_hash: H256, - pub l1_gas_price: u64, + /// The fee input provider. + pub fee_input_provider: TestNodeFeeInputProvider, // Map from transaction to details about the exeuction pub tx_results: HashMap, // Map from block hash to information about the block. @@ -364,13 +368,13 @@ impl InMemoryNodeInner { ) .new_batch(); + let fee_input_provider = self.fee_input_provider.clone(); let batch_env = L1BatchEnv { // TODO: set the previous batch hash properly (take from fork, when forking, and from local storage, when this is not the first block). previous_batch_hash: None, number: L1BatchNumber::from(block_ctx.batch), timestamp: block_ctx.timestamp, - l1_gas_price: self.l1_gas_price, - fair_l2_gas_price: L2_GAS_PRICE, + fee_input: block_on(async move { fee_input_provider.get_batch_fee_input().await }), fee_account: H160::zero(), enforced_base_fee: None, first_l2_block: L2BlockEnv { @@ -427,7 +431,8 @@ impl InMemoryNodeInner { if let Some(ref mut eip712_meta) = request_with_gas_per_pubdata_overridden.eip712_meta { if eip712_meta.gas_per_pubdata == U256::zero() { - eip712_meta.gas_per_pubdata = MAX_GAS_PER_PUBDATA_BYTE.into(); + eip712_meta.gas_per_pubdata = + get_max_gas_per_pubdata_byte(VmVersion::latest()).into(); } } @@ -445,24 +450,29 @@ impl InMemoryNodeInner { }; let tx: Transaction = l2_tx.clone().into(); - let fair_l2_gas_price = L2_GAS_PRICE; - // Calculate Adjusted L1 Price - let l1_gas_price = { - let current_l1_gas_price = - ((self.l1_gas_price as f64) * ESTIMATE_GAS_L1_GAS_PRICE_SCALE_FACTOR) as u64; + let fee_input_provider = self.fee_input_provider.clone(); + let fee_input = { + let fee_input = block_on(async move { + fee_input_provider + .get_batch_fee_input_scaled( + ESTIMATE_GAS_PRICE_SCALE_FACTOR, + ESTIMATE_GAS_PRICE_SCALE_FACTOR, + ) + .await + }); // In order for execution to pass smoothly, we need to ensure that block's required gasPerPubdata will be // <= to the one in the transaction itself. - adjust_l1_gas_price_for_tx( - current_l1_gas_price, - L2_GAS_PRICE, + adjust_pubdata_price_for_tx( + fee_input, tx.gas_per_pubdata_byte_limit(), + VmVersion::latest(), ) }; let (base_fee, gas_per_pubdata_byte) = - derive_base_fee_and_gas_per_pubdata(l1_gas_price, fair_l2_gas_price); + derive_base_fee_and_gas_per_pubdata(fee_input, VmVersion::latest()); // Properly format signature if l2_tx.common_data.signature.is_empty() { @@ -476,7 +486,8 @@ impl InMemoryNodeInner { l2_tx.common_data.transaction_type = TransactionType::EIP712Transaction; } - l2_tx.common_data.fee.gas_per_pubdata_limit = MAX_GAS_PER_PUBDATA_BYTE.into(); + l2_tx.common_data.fee.gas_per_pubdata_limit = + get_max_gas_per_pubdata_byte(VmVersion::latest()).into(); l2_tx.common_data.fee.max_fee_per_gas = base_fee.into(); l2_tx.common_data.fee.max_priority_fee_per_gas = base_fee.into(); @@ -517,7 +528,7 @@ impl InMemoryNodeInner { let execution_mode = TxExecutionMode::EstimateFee; let (mut batch_env, _) = self.create_l1_batch_env(storage.clone()); - batch_env.l1_gas_price = l1_gas_price; + batch_env.fee_input = fee_input; let impersonating = self .impersonated_accounts .contains(&l2_tx.common_data.initiator_address); @@ -549,7 +560,6 @@ impl InMemoryNodeInner { l2_tx.clone(), gas_per_pubdata_byte, try_gas_limit, - l1_gas_price, batch_env.clone(), system_env.clone(), &self.fork_storage, @@ -579,18 +589,17 @@ impl InMemoryNodeInner { l2_tx.clone(), gas_per_pubdata_byte, suggested_gas_limit, - l1_gas_price, batch_env, system_env, &self.fork_storage, ); - let coefficients = OverheadCoefficients::from_tx_type(EIP_712_TX_TYPE); let overhead: u32 = derive_overhead( suggested_gas_limit, gas_per_pubdata_byte as u32, tx.encoding_len(), - coefficients, + l2_tx.common_data.transaction_type as u8, + VmVersion::latest(), ); match estimate_gas_result.result { @@ -699,23 +708,20 @@ impl InMemoryNodeInner { mut l2_tx: L2Tx, gas_per_pubdata_byte: u64, tx_gas_limit: u32, - l1_gas_price: u64, - mut batch_env: L1BatchEnv, + batch_env: L1BatchEnv, system_env: SystemEnv, fork_storage: &ForkStorage, ) -> VmExecutionResultAndLogs { let tx: Transaction = l2_tx.clone().into(); - let l1_gas_price = - adjust_l1_gas_price_for_tx(l1_gas_price, L2_GAS_PRICE, tx.gas_per_pubdata_byte_limit()); - let coefficients = OverheadCoefficients::from_tx_type(EIP_712_TX_TYPE); // Set gas_limit for transaction let gas_limit_with_overhead = tx_gas_limit + derive_overhead( tx_gas_limit, gas_per_pubdata_byte as u32, tx.encoding_len(), - coefficients, + l2_tx.common_data.transaction_type as u8, + VmVersion::latest(), ); l2_tx.common_data.fee.gas_limit = gas_limit_with_overhead.into(); @@ -741,8 +747,6 @@ impl InMemoryNodeInner { .borrow_mut() .set_value(balance_key, u256_to_h256(current_balance)); - batch_env.l1_gas_price = l1_gas_price; - let mut vm: Vm<_, HistoryDisabled> = Vm::new(batch_env, system_env, storage.clone()); let tx: Transaction = l2_tx.into(); @@ -801,7 +805,7 @@ impl InMemoryNodeInner { current_batch: self.current_batch, current_miniblock: self.current_miniblock, current_miniblock_hash: self.current_miniblock_hash, - l1_gas_price: self.l1_gas_price, + fee_input_provider: self.fee_input_provider.clone(), tx_results: self.tx_results.clone(), blocks: self.blocks.clone(), block_hashes: self.block_hashes.clone(), @@ -827,7 +831,7 @@ impl InMemoryNodeInner { self.current_batch = snapshot.current_batch; self.current_miniblock = snapshot.current_miniblock; self.current_miniblock_hash = snapshot.current_miniblock_hash; - self.l1_gas_price = snapshot.l1_gas_price; + self.fee_input_provider = snapshot.fee_input_provider; self.tx_results = snapshot.tx_results; self.blocks = snapshot.blocks; self.block_hashes = snapshot.block_hashes; @@ -851,7 +855,9 @@ pub struct Snapshot { pub(crate) current_batch: u32, pub(crate) current_miniblock: u64, pub(crate) current_miniblock_hash: H256, - pub(crate) l1_gas_price: u64, + // Currently, the fee is static and the fee input provider is immutable during the test node life cycle, + // but in the future, it may contain some mutable state. + pub(crate) fee_input_provider: TestNodeFeeInputProvider, pub(crate) tx_results: HashMap, pub(crate) blocks: HashMap>, pub(crate) block_hashes: HashMap, @@ -920,7 +926,7 @@ impl InMemoryNode { current_batch: f.l1_block.0, current_miniblock: f.l2_miniblock, current_miniblock_hash: f.l2_miniblock_hash, - l1_gas_price: f.l1_gas_price, + fee_input_provider: TestNodeFeeInputProvider::new(f.l1_gas_price), tx_results: Default::default(), blocks, block_hashes, @@ -953,7 +959,7 @@ impl InMemoryNode { current_batch: 0, current_miniblock: 0, current_miniblock_hash: block_hash, - l1_gas_price: L1_GAS_PRICE, + fee_input_provider: TestNodeFeeInputProvider::new(L1_GAS_PRICE), tx_results: Default::default(), blocks, block_hashes, @@ -1217,23 +1223,11 @@ impl InMemoryNode { ) ); - let publish_block_l1_bytes = BLOCK_OVERHEAD_PUBDATA; - tracing::info!( - "Publishing full block costs the operator up to: {}, where {} is due to {} bytes published to L1", - to_human_size(bootloader_debug.total_overhead_for_block), - to_human_size(bootloader_debug.gas_per_pubdata * publish_block_l1_bytes), - to_human_size(publish_block_l1_bytes.into()) - ); - tracing::info!("Your transaction has contributed to filling up the block in the following way (we take the max contribution as the cost):"); tracing::info!( - " Circuits overhead:{:>15} ({}% of the full block: {})", - to_human_size(bootloader_debug.overhead_for_circuits), - to_human_size( - bootloader_debug.overhead_for_circuits * 100 - / bootloader_debug.total_overhead_for_block - ), - to_human_size(bootloader_debug.total_overhead_for_block) + "Publishing full block costs the operator around {} l2 gas", + to_human_size(bootloader_debug.gas_per_pubdata * CONFIG.batch_overhead_l1_gas), ); + tracing::info!("Your transaction has contributed to filling up the block in the following way (we take the max contribution as the cost):"); tracing::info!( " Length overhead: {:>15}", to_human_size(bootloader_debug.overhead_for_length) @@ -1242,6 +1236,12 @@ impl InMemoryNode { " Slot overhead: {:>15}", to_human_size(bootloader_debug.overhead_for_slot) ); + tracing::info!("Also, with every spent gas unit you potentially can pay some additional amount of gas for filling up the block by execution limits"); + tracing::info!( + "This overhead is included in the gas price, although now it's set to zero" + ); + tracing::info!("And with every pubdata byte, you potentially can pay an additional amount of gas for filling up the block by pubdata limit"); + tracing::info!("This overhead is included in the `gas_per_pubdata` price"); Ok(()) } else { Err("Booloader tracer didn't finish.".to_owned()) @@ -1288,7 +1288,7 @@ impl InMemoryNode { /// * [InMemoryNodeInner::current_batch] /// * [InMemoryNodeInner::current_miniblock] /// * [InMemoryNodeInner::current_miniblock_hash] - /// * [InMemoryNodeInner::l1_gas_price] + /// * [InMemoryNodeInner::fee_input_provider] /// /// And must _NEVER_ rely on data updated in [InMemoryNodeInner] during previous runs: /// (if used, they must never panic and/or have meaningful defaults) @@ -1557,13 +1557,13 @@ impl InMemoryNode { let tx_receipt = TransactionReceipt { transaction_hash: tx_hash, transaction_index: U64::from(0), - block_hash: Some(block.hash), - block_number: Some(block.number), + block_hash: block.hash, + block_number: block.number, l1_batch_tx_index: None, l1_batch_number: block.l1_batch_number, from: l2_tx.initiator_account(), to: Some(l2_tx.recipient_account()), - root: Some(H256::zero()), + root: H256::zero(), cumulative_gas_used: Default::default(), gas_used: Some(l2_tx.common_data.fee.gas_limit - result.refunds.gas_refunded), contract_address: contract_address_from_tx_result(&result), @@ -1588,11 +1588,11 @@ impl InMemoryNode { }) .collect(), l2_to_l1_logs: vec![], - status: Some(if result.result.is_failed() { + status: if result.result.is_failed() { U64::from(0) } else { U64::from(1) - }), + }, effective_gas_price: Some(L2_GAS_PRICE.into()), ..Default::default() }; @@ -1745,7 +1745,7 @@ mod tests { async fn test_run_l2_tx_validates_tx_max_fee_per_gas_too_low() { let node = InMemoryNode::::default(); let tx = testing::TransactionBuilder::new() - .set_max_fee_per_gas(U256::from(250_000_000 - 1)) + .set_max_fee_per_gas(U256::from(L2_GAS_PRICE - 1)) .build(); node.set_rich_account(tx.common_data.initiator_address); diff --git a/src/node/in_memory_ext.rs b/src/node/in_memory_ext.rs index 90e5395b..279b58cd 100644 --- a/src/node/in_memory_ext.rs +++ b/src/node/in_memory_ext.rs @@ -323,10 +323,10 @@ impl InMemoryNo #[cfg(test)] mod tests { use super::*; + use crate::namespaces::EthNamespaceT; use crate::{http_fork_source::HttpForkSource, node::InMemoryNode}; use std::str::FromStr; use zksync_basic_types::{Nonce, H256}; - use zksync_core::api_server::web3::backend_jsonrpc::namespaces::eth::EthNamespaceT; use zksync_types::{api::BlockNumber, fee::Fee, l2::L2Tx, PackedEthSignature}; #[tokio::test] diff --git a/src/node/mod.rs b/src/node/mod.rs index eef4206f..b2dab7c5 100644 --- a/src/node/mod.rs +++ b/src/node/mod.rs @@ -4,6 +4,7 @@ mod config; mod debug; mod eth; mod evm; +mod fee_model; mod hardhat; mod in_memory; mod in_memory_ext; diff --git a/src/node/zks.rs b/src/node/zks.rs index 4c3834c4..7b83b540 100644 --- a/src/node/zks.rs +++ b/src/node/zks.rs @@ -4,7 +4,6 @@ use bigdecimal::BigDecimal; use colored::Colorize; use futures::FutureExt; use zksync_basic_types::{AccountTreeId, Address, L1BatchNumber, MiniblockNumber, H256, U256}; -use zksync_core::api_server::web3::backend_jsonrpc::error::{internal_error, into_jsrpc_error}; use zksync_state::ReadStorage; use zksync_types::{ api::{ @@ -22,7 +21,10 @@ use crate::{ fork::ForkSource, namespaces::{RpcResult, ZksNamespaceT}, node::{InMemoryNode, TransactionResult, L2_GAS_PRICE}, - utils::{not_implemented, utc_datetime_from_epoch_ms, IntoBoxedFuture}, + utils::{ + internal_error, into_jsrpc_error, not_implemented, utc_datetime_from_epoch_ms, + IntoBoxedFuture, + }, }; impl ZksNamespaceT @@ -552,10 +554,10 @@ mod tests { let result = node.estimate_fee(mock_request).await.unwrap(); - assert_eq!(result.gas_limit, U256::from(746532)); - assert_eq!(result.max_fee_per_gas, U256::from(250000000)); + assert_eq!(result.gas_limit, U256::from(1784965)); + assert_eq!(result.max_fee_per_gas, U256::from(100000000)); assert_eq!(result.max_priority_fee_per_gas, U256::from(0)); - assert_eq!(result.gas_per_pubdata_limit, U256::from(4080)); + assert_eq!(result.gas_per_pubdata_limit, U256::from(18750)); } #[tokio::test] diff --git a/src/system_contracts.rs b/src/system_contracts.rs index b1409727..1cdeed13 100644 --- a/src/system_contracts.rs +++ b/src/system_contracts.rs @@ -1,6 +1,5 @@ use multivm::interface::TxExecutionMode; use zksync_contracts::{ - read_playground_batch_bootloader_bytecode, read_proved_batch_bootloader_bytecode, read_sys_contract_bytecode, read_zbin_bytecode, BaseSystemContracts, ContractLanguage, SystemContractCode, }; @@ -130,7 +129,9 @@ pub fn playground(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/playground_batch.yul.zbin").to_vec() } - Options::Local => read_playground_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "etc/system-contracts/bootloader/build/artifacts/playground_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) @@ -151,8 +152,9 @@ pub fn fee_estimate_contracts(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/fee_estimate.yul.zbin").to_vec() } - Options::Local => - read_zbin_bytecode("etc/system-contracts/bootloader/build/artifacts/fee_estimate.yul/fee_estimate.yul.zbin") + Options::Local => read_zbin_bytecode( + "etc/system-contracts/bootloader/build/artifacts/fee_estimate.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) @@ -176,7 +178,9 @@ pub fn baseline_contracts(options: &Options) -> BaseSystemContracts { Options::BuiltIn | Options::BuiltInWithoutSecurity => { include_bytes!("deps/contracts/proved_batch.yul.zbin").to_vec() } - Options::Local => read_proved_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "contracts/system-contracts/bootloader/build/artifacts/proved_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) } @@ -187,7 +191,9 @@ pub fn baseline_impersonating_contracts(options: &Options) -> BaseSystemContract include_bytes!("deps/contracts/proved_batch_impersonating.yul.zbin").to_vec() } // Account impersonating is not supported with the local contracts - Options::Local => read_proved_batch_bootloader_bytecode(), + Options::Local => read_zbin_bytecode( + "contracts/system-contracts/bootloader/build/artifacts/proved_batch.yul.zbin", + ), }; bsc_load_with_bootloader(bootloader_bytecode, options) } diff --git a/src/utils.rs b/src/utils.rs index 197ff03d..7c6f2fec 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,12 +1,14 @@ use std::collections::HashMap; use std::convert::TryInto; +use std::fmt; use std::pin::Pin; use chrono::{DateTime, Utc}; use futures::Future; +use jsonrpc_core::{Error, ErrorCode}; use multivm::interface::{ExecutionResult, VmExecutionResultAndLogs, VmInterface}; use multivm::vm_latest::HistoryDisabled; -use multivm::vm_latest::{utils::fee::derive_base_fee_and_gas_per_pubdata, Vm}; +use multivm::vm_latest::Vm; use zksync_basic_types::{H256, U256, U64}; use zksync_state::WriteStorage; use zksync_types::api::{BlockNumber, DebugCall, DebugCallType}; @@ -34,38 +36,6 @@ where { } -/// Adjusts the L1 gas price for a transaction based on the current pubdata price and the fair L2 gas price. -/// If the current pubdata price is small enough, returns the original L1 gas price. -/// Otherwise, calculates a new L1 gas price based on the fair L2 gas price and the transaction gas per pubdata limit. -/// -/// # Arguments -/// -/// * `l1_gas_price` - The original L1 gas price. -/// * `fair_l2_gas_price` - The fair L2 gas price. -/// * `tx_gas_per_pubdata_limit` - The transaction gas per pubdata limit. -/// -/// # Returns -/// -/// The adjusted L1 gas price. -pub fn adjust_l1_gas_price_for_tx( - l1_gas_price: u64, - fair_l2_gas_price: u64, - tx_gas_per_pubdata_limit: U256, -) -> u64 { - let (_, current_pubdata_price) = - derive_base_fee_and_gas_per_pubdata(l1_gas_price, fair_l2_gas_price); - if U256::from(current_pubdata_price) <= tx_gas_per_pubdata_limit { - // The current pubdata price is small enough - l1_gas_price - } else { - let l1_gas_price = U256::from(fair_l2_gas_price) - * (tx_gas_per_pubdata_limit - U256::from(1u32)) - / U256::from(17); - - l1_gas_price.as_u64() - } -} - /// Takes long integers and returns them in human friendly format with "_". /// For example: 12_334_093 pub fn to_human_size(input: U256) -> String { @@ -259,6 +229,44 @@ pub fn utc_datetime_from_epoch_ms(millis: u64) -> DateTime { DateTime::::from_timestamp(secs as i64, nanos as u32).expect("valid timestamp") } +pub fn into_jsrpc_error(err: Web3Error) -> Error { + Error { + code: match err { + Web3Error::InternalError | Web3Error::NotImplemented => ErrorCode::InternalError, + Web3Error::NoBlock + | Web3Error::PrunedBlock(_) + | Web3Error::PrunedL1Batch(_) + | Web3Error::NoSuchFunction + | Web3Error::RLPError(_) + | Web3Error::InvalidTransactionData(_) + | Web3Error::TooManyTopics + | Web3Error::FilterNotFound + | Web3Error::InvalidFeeParams(_) + | Web3Error::LogsLimitExceeded(_, _, _) + | Web3Error::InvalidFilterBlockHash => ErrorCode::InvalidParams, + Web3Error::SubmitTransactionError(_, _) | Web3Error::SerializationError(_) => 3.into(), + Web3Error::PubSubTimeout => 4.into(), + Web3Error::RequestTimeout => 5.into(), + Web3Error::TreeApiUnavailable => 6.into(), + }, + message: match err { + Web3Error::SubmitTransactionError(_, _) => err.to_string(), + _ => err.to_string(), + }, + data: match err { + Web3Error::SubmitTransactionError(_, data) => { + Some(format!("0x{}", hex::encode(data)).into()) + } + _ => None, + }, + } +} + +pub fn internal_error(method_name: &'static str, error: impl fmt::Display) -> Web3Error { + tracing::error!("Internal error in method {method_name}: {error}"); + Web3Error::InternalError +} + #[cfg(test)] mod tests { use zksync_basic_types::{H256, U256};